## c't-Projekte - Mailinglisten

[Voriger (Datum)] [Nächster (Datum)] [Voriger (Thread)] [Nächster (Thread)]
[Nach Datum][Nach Thread]

### [ct-bot] Fehler im I2C Datentransfer

Absender: Marko Bolowski
Datum: Mi, 18.06.2008 13:20:41

    Hallo,

    in twi.c hat sich ein Fehler in der Funktion 'Send_to_TWI' (I2C-Teil) eingeschlichen. Der schlummert da wohl schon seit längerem.

    Dort wird das Senden oder Empfangen auf dem I2C-Bus in einer if-Anweisung verarbeitet. Die Auswertung von 'zusenden' und 'zulesen' ist vertauscht. Für I2C gilt Schreiben->0 (R), Lesen ->1 (W) (vgl. twi.h)!
    Vergleicht man die Funktion in TWI (alt) mit I2C (neu) sieht man:
    'if ((ptr->slave_adr & 0x1) == 1)' ist i. Allg. nicht das Gleiche wie 'if(!(data_pack[i].slave_adr & R))'. Also kann anschließend toWrite, pWrite im if-Zweig und toRead, pRead im else-Zweig von I2C nicht sein, sondern muss getauscht werden.

    Im (alten) TWI-Teil ist es richtig. Das führt u.a. dazu, dass der SRF10 nur mit der alten Methode funktioniert. Nach einem Patch im if-Teil von I2C funktioniert der SRF10 auch damit.

    Grüße
    Marko

- Antworten:
  - Re: [ct-bot] Fehler im I2C Datentransfer
    - From: Marko Bolowski

- Voriger (Datum): [ct-bot] bot-2-bot-Kommunikation -> Senden der Stackdaten, Frank Menzel
- Nächster (Datum): Re: [ct-bot] bot-2-bot-Kommunikation -> Senden der Stackdaten, Timo Sandmann
- Voriger (Thread): Re: [ct-bot] bot-2-bot-Kommunikation -> Senden der Stackdaten, Timo Sandmann
- Nächster (Thread): Re: [ct-bot] Fehler im I2C Datentransfer, Marko Bolowski
- Indizes:
  - Datum
  - Thread