Hallo,
ich habe mein Asuro erfolgreich auf Bluetooth umgebaut, habe nun ein Programm geschrieben mit er sich über Bluetooth fernsteuern lässt. Dieses funktioniert auch ohne Problem, allerdings hat es eine Schönheitsfehler.
Wenn ich eine Taste drücke, dann fährt er so lange in die selbe Richtung, bis ich eine andere Taste drücke oder "q" um zu stoppen. Ich möchte allerdings, dass er so lange fährt wie man die Taste gedrückt, und sobald man sie los lässt soll er anhalten.
Hab schon versucht nach jeder if-Bedingung den Speicher "empfangen" wieder auf 0 zu setzen "empfangen [0] = 0;". Allerdings ändert das nichts.
Hat jemand eine Idee wie ich das machen kann?
Vielen Dank für eure Hilfe!Code:#include "asuro.h" int main(void) { unsigned char empfangen[0]="000"; Init(); /* Menü Anzeige */ { SerPrint("\n\r"); SerPrint("Fernsteruerung:\n\r"); SerPrint("[w] => Geradeaus fahren\n\r"); SerPrint("[s] => Rueckwaerts fahren\n\r"); SerPrint("[a] => Linkskurfe\n\r"); SerPrint("[d] => Rechtskurfe\n\r"); SerPrint("[q] => Stopp\n\r"); } while(1) { SerRead(empfangen, 1, 2); //1 Zeichen über UART einlesen, TimeOut 2ms if (empfangen [0] == 'w') //Geradeaus fahren { MotorSpeed(205,200); MotorDir(FWD,FWD); } if (empfangen [0] == 's') //Rückwärts fahren { MotorSpeed(130,120); MotorDir(RWD,RWD); } if (empfangen [0] == 'a') //Linkskurfe { MotorSpeed(100,185); MotorDir(FWD,FWD); } if (empfangen [0] == 'd') //Rechtskurfe { MotorSpeed(190,100); MotorDir(FWD,FWD); } if (empfangen [0] == 'q') //Stopp { MotorDir(BREAK,BREAK); } } return 0; }
Gruß Schleicha







Zitieren

Lesezeichen