hallo
das hängt damit zusammen, dass dieses programm nur einmal durchlaufen wird. dh wenn du nicht gleich am anfang einen taster drückst wird er es nie erkennen.
am einfachsten ist es, wenn du einfach eine endlosschleife um die tasterabfrage machtst:
Code:
#include "asuro.h"
int main(void) {
unsigned char taste;
Init();
while(1)
{
FrontLED(ON);
MotorDir(FWD,FWD);
MotorSpeed(150,140);
taste = PollSwich();
if (taste>0) {MotorSpeed(0,0);}
}
while(1);
return 0;
}
somit wird der teil, der von der endlosschleife umschlossen ist immer wieder ausgeführt
da aber bei laufendem motor pollswitch öfters falsche werte liefert sollte man es mindestens zwei mal aufrufen:
Code:
#include "asuro.h"
int main(void) {
unsigned char taste;
Init();
while(1)
{
FrontLED(ON);
MotorDir(FWD,FWD);
MotorSpeed(150,140);
taste = PollSwich();
if (taste==PollSwitch() && taste>0) {MotorSpeed(0,0);}
}
while(1);
return 0;
hier wird die if-abfrage nur dann TRUE, wenn Pollswitch zweimal hintereinander den selbenwert liefert (taste == PollSwitch()) und taste >0
so, ich glaube das sollte genügen
Lesezeichen