Also hier mein Programm:
Ist ein wenig durcheinander, aber der gedanke war der
das ich über den Pollswitch in einzelne Modi´s springe (Demomode, und steuern über Seriell) Ist aber noch nicht ganz fertig![]()
Code:#include "asuro.h" #include "myasuro.h" int x=0; //Zählvariablen für diverse Zählschleifen char emfangene_daten[10]; void Goo(int d,int l) //eigene goturn anweisung { //Nur zum Test!!!!!! if (l>0) MotorDir(FWD,FWD); else MotorDir(RWD,RWD); MotorSpeed(d,d+8); //die +8 sind nur zum gradeaus fahren Msleep(5000); MotorSpeed(BREAK,BREAK); } int main(void) { Init(); //Devinierter Zustand vom ATMEL while(1) { while (PollSwitch() == 0) { StatusLED (GREEN); Msleep (500); StatusLED (RED); Msleep (500); } switch (PollSwitch()) //Auswahlmenü gesteuert über Pollswitch { case 1:emfang(); break; case 4: //Kleine Fahranweisung zu Demo zwecken. StatusLED (YELLOW); Msleep (2000); EncoderInit (); for (x=1; x<=4; x++) //Asuro fährt ein quadrat {GoTurn ( 0, 45, 200); //45° hier entspricht 90° drehung im real, da "grobe" encoderscheibe eingebaut GoTurn (150, 0, 200);} Msleep(1000); for (x=1; x<=2; x++) //Asuro fährt einen kreis vorwärts und rückwärts {if (x==1) GoTurn (300, 90, 255); else GoTurn (-300, -90, 255); Msleep(500);} break; default: //Bei falscheingabe blinkt die Status LED 5x Gelb for(x=1; x<=5; x++) {StatusLED(OFF); Msleep(500); StatusLED(YELLOW); Msleep(500);} break; } return 0; } } int emfang(void) //Steuerung über Seriel { EncoderInit (); StatusLED (YELLOW); BackLED (ON, OFF); Msleep (500); BackLED (OFF,ON); Msleep (500); BackLED (OFF,OFF); //AUS damit!!!! SerWrite ("READY", 10); SerRead (emfangene_daten, 1, 0); //Warte auf Daten, ohne timeout!! switch (emfangene_daten[0]) { case'T': //keine Daten erhalten break; case '1': //Wenn daten =1 fahr vor. GoTurn(10, 0, 150); break; case '2': //wenn daten =2 fahr zurück Goo (200, 1); break; default: //sonst sendefehler 5xgelb for(x=1; x<=5; x++) { StatusLED(OFF); Msleep(500); StatusLED(YELLOW); Msleep(500); } break; } return 0; }
@ ExMachina: einen fehler durch die Radmuffe kann ich ausschließen, da es über Motorspeed keine probleme gibt. Nur bei GoTurn.
Aber danke für die Idee.







Zitieren

Lesezeichen