Hallo zusammen,
ich bin Neuling auf dem Gebiet der uC. Seit neustem beschäftige ich mich mit dem TWI. Der Code von bhm hat mir schon seehr viel geholfen, allerdings hab ich ihn teilweise noch nicht ganz durchschaut. Wer hat Lust, mir folgende Zeilen (den Knackpunkt der Funktion) zu erklären:
Auszug aus Master-Receiver von bhm's TWI-Lib
Meine Fragen dazu:Code:while (1) { // endlos, verlassen via break in if TW_Status if (len<lenmax) { TWCR = _BV(TWEA) | _BV(TWEN) | _BV(TWINT); //receive, ACK, } else { TWCR = _BV(TWEN) | _BV(TWINT); //receive, NACK, } waitTWINT(); if (TW_STATUS != TW_MR_DATA_ACK) break; // LOOP VERLASSEN *Data++ = TWDR; len++; // Daten verarbeitet }
- was hat es mit der Längengeschichte (Variablen len und lenmax) auf sich
- gesamte funktionsweise der while-Schleife
Toll wäre eine kurzer, verständlicher Abriss über die Schritte, die in der while-Schleife passieren. Das würde mir sehr weiterhelfen und zum Gesamtverstädnis beitragen.
Vielen Dank im voraus für Euere Hilfe!






Zitieren

Lesezeichen