Um nochmal etwas konkreter zu werden, ich benutze dieses Beipsiel für des Controler auf dem Hauptboard:
Code:#include "RP6RobotBaseLib.h" #include "RP6I2CslaveTWI.h" // I2C Library Datei einbinden (!!!) // ACHTUNG: Das muss auch im Makefile eingetragen werden (!!!) #define CMD_SET_LEDS 3 // LED Kommando, das über den I2C Bus // empfangen werden soll. int main(void) { initRobotBase(); I2CTWI_initSlave(10); // TWI initialisieren und Adresse 10 einstellen powerON(); while(true) { // irgendein Kommando empfangen und KEIN Schreibzugriff aktiv? if(I2CTWI_writeRegisters[0] && !I2CTWI_writeBusy) { // Register speichern: uint8_t cmd = I2CTWI_writeRegisters[0]; I2CTWI_writeRegisters[0] = 0; // und zurücksetzen (!!!) uint8_t param = I2CTWI_writeRegisters[1]; // Parameter if(cmd == CMD_SET_LEDS) // LED Kommando empfangen? setLEDs(param); // LEDs mit dem Parameter setzen } if(!I2CTWI_readBusy) // Kein Lesezugriff aktiv? // Dann aktuellen LED Zustand ins Register 0 schreiben: I2CTWI_readRegisters[0] = statusLEDs.byte; } return 0; }







Zitieren

Lesezeichen