Hallo,
ich habe folgendes Programm für die M32 geschrieben, das die Lichtsensorenwerte von der Base ausliest:
Am Anfang bekomme ich immer drei Fehlermeldungen im Terminal:Code:#include "RP6ControlLib.h" #include "RP6I2CmasterTWI.h" #define RP6_I2C_ADDR 10 void I2C_transmissionError(uint8_t errorState) { writeString_P("\nI2C ERROR - TWI STATE: 0x"); writeInteger(errorState, HEX); writeChar('\n'); beep(200, 50); } void readLightSensors(void) { uint8_t Lichtsensoren[4]; I2CTWI_transmitByte(RP6_I2C_ADDR, 13); I2CTWI_readBytes(RP6_I2C_ADDR, Lichtsensoren, 4); clearLCD(); setCursorPosLCD(0,0); writeIntegerLCD(Lichtsensoren[0] + (Lichtsensoren[1]<<8), DEC); setCursorPosLCD(1,0); writeIntegerLCD(Lichtsensoren[2] + (Lichtsensoren[3]<<8), DEC); } int main(void) { initRP6Control(); initLCD(); //I2C-Bus initialisieren I2CTWI_initMaster(100); I2CTWI_setTransmissionErrorHandler(I2C_transmissionError); startStopwatch1(); while(true) { if(getStopwatch1()>100) { readLightSensors(); setStopwatch1(0); } } return 0; }
I2C ERROR - TWI STATE: 0x20
I2C ERROR - TWI STATE: 0x20
I2C ERROR - TWI STATE: 0x48
danach funktioniert das Programm tadellos.
Woran könnte das liegen?
lg
Michi







Zitieren

Lesezeichen