Die Analogie zum USART ist treffend bzgl. des asynchronen Eintrudelns von Eingangsdaten.
Das "lauschen" erledigt das I2C / TWI-Modul und aktiviert ggf. Statusflags, auf die man einen Interrupt ansetzen oder eben aktiv pollen muss. I2crbyte ist dann der konkrete Befehl, der das Auslesen des Empfangsbuffers und evtl das ACK-Handling plattformunabhängig implementiert. (ich schreib das mal ganz mutig in Analogie zu den PIC-Controllern).
Bei keinem der (wenigen) I2C-Bausteine, die ich bisher verwendet habe, gibt es Clockstretching. Alle liefern auf Anfrage Daten und kennen keine unvorhersehbaren Verzögerungen bei der Buskommunikation, weil sie die I2C-Engine in Hardware haben.
Allerdings sollte man das Auftreten von Busblockierungen einkalkulieren, die durch EMI, unerwartete Resets und Kontaktprobleme entstehen können.
Lesezeichen