Hallo
Die Überprüfung der Tasten muss umfangreicher sein. Bei eurem Ansatz
Code:
int t1=0;
while(1)
{
t1= PollSwitch();
if (PollSwitch()==0 && t1==0)
{
//mach was
} else {
//mach was anderes
}
}
wird eine Ungleichheit als Tastendruck interpretiert. Besser wäre vielleicht so:
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
}
(nicht getestet weil mein asuro eingemottet ist)
Die Struktur und der Ablauf eines Programms wird deutlicher wenn man mit Einrückungen und Kommentaren arbeitet.
Gruß
mic
Lesezeichen