Hallo
Die Überprüfung der Tasten muss umfangreicher sein. Bei eurem Ansatz
wird eine Ungleichheit als Tastendruck interpretiert. Besser wäre vielleicht so:Code:int t1=0; while(1) { t1= PollSwitch(); if (PollSwitch()==0 && t1==0) { //mach was } else { //mach was anderes } }
(nicht getestet weil mein asuro eingemottet ist)Code:#include "asuro.h" int main(void) { unsigned int data[2]; int t1; // braucht nicht mit 0 vorbelegt zu werden int t2; Init(); FrontLED(ON); MotorDir(FWD,FWD); while (1) // Hauptschleife { t1= PollSwitch(); t2= PollSwitch(); if(t1==t2) //nur wenn beide Tastenwerte gleich sind ist t1 gültig! { if (t1==0) { LineData(data); if (data[0]>data[1]) {MotorSpeed(120,80);} else {MotorSpeed(80,120);} } // if(t1==0) else { MotorDir(RWD,RWD); MotorSpeed(80,80); } // else von if(t1==0) } // if(t1==t2) } //while(1) return 0; // diese Zeile wird nie erreicht }
Die Struktur und der Ablauf eines Programms wird deutlicher wenn man mit Einrückungen und Kommentaren arbeitet.
Gruß
mic







Zitieren

Lesezeichen