Bernhard.Erfurt
24.03.2006, 11:45
Ein einfaches Beispiel für einen TWI / I2C Master und Slave.
Es werden 2 Daten-Bytes an den Slave gesendet und anschließend zwei
Daten-Bytes vom Slave empfangen.
Es ist kein fertiges Projekt, aber es hilft hoffentlich,
die Grundmechanismen schneller zu erkennen.
z.B: - Initialisierung
- Adressvergabe
- Interrupt-Handling
- mögliche Error-Routinen
- TWSR / TWCR - Auswertung
Die LEDs vom MASTER zeigen den Zustand der Datenübertragung
(z.B. erfolgreicher START) an und
die LEDs vom SLAVE, welcher TWSR Zustand anliegt, wenn der
TWI-Interrupt aufgerufen wird.
Absichtlich habe ich alle Vorgänge stark durch Warteschleifen und eine
sehr niedrige SCL Frequenz gebremst, damit man besser nachvollziehen
kann, wann was und wo passiert.
Bernhard
Es werden 2 Daten-Bytes an den Slave gesendet und anschließend zwei
Daten-Bytes vom Slave empfangen.
Es ist kein fertiges Projekt, aber es hilft hoffentlich,
die Grundmechanismen schneller zu erkennen.
z.B: - Initialisierung
- Adressvergabe
- Interrupt-Handling
- mögliche Error-Routinen
- TWSR / TWCR - Auswertung
Die LEDs vom MASTER zeigen den Zustand der Datenübertragung
(z.B. erfolgreicher START) an und
die LEDs vom SLAVE, welcher TWSR Zustand anliegt, wenn der
TWI-Interrupt aufgerufen wird.
Absichtlich habe ich alle Vorgänge stark durch Warteschleifen und eine
sehr niedrige SCL Frequenz gebremst, damit man besser nachvollziehen
kann, wann was und wo passiert.
Bernhard