Hallo,
ich benutze am ATmega8 die TWI-Slave-Bibliothek von Manfred Langemann
und habe den folgenden Code:
1 | TWIS_Init(15, 100000);
|
2 |
|
3 | while (1) {
|
4 | TWIS_Write(0x00);
|
5 | for (int i = 0; i < 8; i++) {
|
6 | TWIS_Write(i);
|
7 | }
|
8 | TWIS_Stop();
|
9 | }
|
Mittels
am Raspberry wird der Chip auch korrekt erkannt und ich kann Bytes
lesen, jeweils einen mit dem Befehl
Allerdings kommen die Bytes in der folgende Reihenfolge an:
0, 2, 4, 6, 0x1f (???), 1, 3, 5, 7
Bis auf die 31 (0x1f) zwischendrin und die fehlende 0 (es sollten ja
eigentlich zwei Nullen sein) also die korrekten Bytes, allerdings in
seltsamer Reihenfolge. Meine Vermutung wäre ja, dass die Clocks nicht
korrekt synchron laufen, aber dagegen spricht, dass ich die Daten
jedesmal zuverlässig lesen kann, nur nicht in der korrekten Reihenfolge.
Hat jemand eine Idee, warum dieses seltsame Verhalten auftritt bzw. wie
ich das abstellen kann? Oder auch, wo die 0x1f her kommt?
Vielen Dank!