@Ezalo:
Das Beispiel ist zwar wenig kommentiert, aber man kann ja wohl davon ausgehen, dass nicht unbedingt "Unnützes" da drin ist, so dass man das Programm so verkürzen könnte, wie Philip es gemacht hat.
Wenn man die M32 als Master betreibt, ist ja auf der "anderen Seite" immer die Base mit dem Slave-Programm "RP6Base_I2CSlave".
Master und Slave müssen zusammen passen, um sich unterhalten zu können. Der Slave in der Base hat z.B. einen "Watchdog" (Wachhund), der den RP6 stoppt, wenn die I2C-Verbindung zum Master irgendwie gestört ist. Dazu braucht es z.B. im Master den "Watchdog-Handler" (WDT_setRequestHandler(watchDogRequest). Damit reagiert der Master auf Watchdog-Anfragen des Slave.
Genauso braucht es einen Handler für "Daten eingetroffen" (I2CTWI_setRequestedDataReadyHandler(I2C_requested DataReady).
Verwendet wird auch noch ein Handler (I2CTWI_setTransmissionErrorHandler(I2C_transmissi onError) für die Anzeige von I2C-Kommunikationsfehlern, den könnte man aber weglassen.
Also: Der Master in der M32 funktioniert nur, wenn er passend zum Slave im RP6 programmiert wird.
Lesezeichen