Hallo Zusammen,
ich prüfe gerade meine Routine nochmals anhand des Datenprotokoll aus dem I2C-bus specification.
Die Abfrage der Daten (Daten lesen vom atmega) geht mittels folgendem Telegram:
fett = Slave Antwort
<StartCond.><SlaveAdresse/ & Write Bit><Ack><Kommando><Ack>
<Repeated Start><SlaveAdresse + Read bit><Ack>
<Data><Ack><Data>....<Last Data><Nack><StopCond.>
Also jeweils folgende Case Zweige der Interruptroutine:
<StartCond.> = Event: TW_START
<SlaveAdresse + Write Bit>= Event: TW_SR_SLA_ACK
<Kommando> = Event: TW_SR_DATA_ACK
<Repeated Start> = Event: TW_REP_START
<SlaveAdresse + Read Bit>= Event: TW_ST_SLA_ACK
<StopCond.> = Event: TW_SR_STOP
Sehe ich das so richtig, da anhand dieses Ablauf die einzelen Routinen zu prüfen sind.
Gruss R.
Lesezeichen