Ich will die Slave-ID des SRF02 von 0xE0 auf 0xE2 ändern. Dafür habe ich folgenden Code:
Dieser läuft auch schön bis zum Ende durch(Am Ende wird "Done" ausgegeben). Wenn ich jetzt allerdings den Sensor abfragen will funktioniert das immernoch mit 0XE0, nicht mit 0XE2.Code:// Uncommented Version of RP6Base_I2C_Master_01.c // written by Dominik S. Herwald // ------------------------------------------------------------------------------------------ #include "RP6RobotBaseLib.h" #include "RP6I2CmasterTWI.h" #define PCF8574_8LEDS_ADR 0x70 void I2C_requestedDataReady(uint8_t dataRequestID) { } void I2C_transmissionError(uint8_t errorState) { writeString_P("\nI2C ERROR - TWI STATE: 0x"); writeInteger(errorState, HEX); writeChar('\n'); } int main(void) { initRobotBase(); writeString_P("Hello!\n"); mSleep(3000); I2CTWI_initMaster(100); I2CTWI_setRequestedDataReadyHandler(I2C_requestedDataReady); I2CTWI_setTransmissionErrorHandler(I2C_transmissionError); powerON(); writeString_P("Starting to change Slave-ID\n"); task_I2CTWI(); I2CTWI_transmitByte(0xE0, 0xA0); mSleep(50); I2CTWI_transmitByte(0xE0, 0xAA); mSleep(50); I2CTWI_transmitByte(0xE0, 0xA5); mSleep(50); I2CTWI_transmitByte(0xE0, 0xE2); mSleep(50); writeString_P("Done\n"); return 0; }
Lesezeichen