I²C (TWI) Master-Slave-Bibliothek für den AVR

Hierbei handelt es sich um eine TWI-Bibliothek, die sowohl als Master, als auch als Slave arbeiten kann.
Das Umschalten zwischen Master und Slave geschieht automatisch, man ist also automatisch ein Slave Device, das auf seine Adresse hört, wenn man nicht gerade als Master den Bus kontrolliert.
Der gesamte Ablauf wurde mit Call-Back-Routinen realisiert - also komplett Interruptgesteuert! Die Hauptschleife eines Devices bleibt also üblicherweise leer, was oft von Vorteil ist, z.B. wenn man Strom sparen will.

Mit im Archiv ist ein kleines Demo-Projekt: Wenn zwei Mega8 mit dem gleichen Programm programmiert werden (und einer davon mit einem Jumper versehen wird, damit die beiden Devices unterschiedliche Adressen bekommen) senden sie sich abwechselnd Nachrichten, sobald der Prozess durch eine UART-Nachricht angestoßen wurde.

Wichtig für die Benutzung ist, dass alle Funktionen, die in der Header-Datei als "extern" definiert wurden, auch implementiert werden, wenn sie gar nicht benutzt werden sollen. Sie müssen dann eben leer bleiben.

Download
twi_masterslave.zip (Revision 680, 17.8.2007)