Ich hab das Ganze nun probiert, hat aber leider nicht funktioniert.
Mein Code sieht jetzt so aus:
M32 - Master:
Base - Slave:Code:#include "RP6ControlLib.h" #include "RP6I2CmasterTWI.h" int main(void) { initRP6Control(); initLCD(); I2CTWI_initMaster(50); int key; while(true) { key=0; showScreenLCD("Bitte Taster","druecken"); do { key=getPressedKeyNumber(); I2CTWI_transmitByte(10,0); } while (key==0); switch(key) { case 1: //T1 - vorwärts showScreenLCD("Daten werden","uebertragen"); I2CTWI_transmitByte(10,1); showScreenLCD("...erfolgreich",""); break; case 2: //T2 - rückwärts showScreenLCD("Daten werden","uebertragen"); I2CTWI_transmitByte(10,2); showScreenLCD("...erfolgreich",""); break; case 3: //T3 - 20° rechts showScreenLCD("Daten werden","uebertragen"); I2CTWI_transmitByte(10,3); showScreenLCD("...erfolgreich",""); break; case 4: //T4 - 20° links showScreenLCD("Daten werden","uebertragen"); I2CTWI_transmitByte(10,4); showScreenLCD("...erfolgreich",""); break; default: I2CTWI_transmitByte(10,0); break; } showScreenLCD("","Bitte warten"); mSleep(200); key=0; } while(true) { showScreenLCD("Endlosschleife", ""); } return 0; }
Code:#include"RP6RobotBaseLib.h" #include "RP6I2CslaveTWI.h" int main(void) { initRobotBase(); powerON(); setACSPwrOff(); uint8_t i; I2CTWI_initSlave(10); while (true) { if(I2CTWI_writeRegisters[0] && !I2CTWI_writeBusy) { // Register speichern: i = I2CTWI_writeRegisters[0]; I2CTWI_writeRegisters[0] = 0; } switch (i) { case 1: task_motionControl(); move(30,FWD,DIST_MM(50),false); break; case 2: task_motionControl(); move(30,BWD,DIST_MM(50),false); break; case 3: task_motionControl(); rotate(30,LEFT,20,false); break; case 4: task_motionControl(); rotate(30,RIGHT,20,false); break; default: setLEDs(0b111111); mSleep(200); setLEDs(0b000000); break; } } while (true) { writeString_P("\n In Endlosschleife\n"); } return 0; }







Zitieren

Lesezeichen