-
Taster
Hallo,
ich habe folgendes geschrieben um die Taster mal zu testen:
Code:
if (taste) {StatusLED(RED); BackLED(ON,ON); MotorDir(RWD,BREAK); MotorSpeed(100,0); i++; }
while (i > 10)
StatusLED(GREEN);
MotorDir(FWD,FWD);
MotorSpeed(160,165);
Allerdings funtioniert das nur, wenn der Taster immer gedrückt ist. Warum ? Er soll das doch solange machen, bis i > 10 ist.
-
Könntest du mal das komplette Programm reinstellen? Ich denke es liegt dadran, das "i" nur gezzählt wird, wenn der taster gedrückt wird...
-
Hi,
hier das gesamte Programm:
Code:
#include "asuro.h"
int main (void)
{
unsigned char taste;
Init();
int i;
i = 0;
while(1){
taste = PollSwitch();
StatusLED(GREEN);
MotorDir(FWD,FWD);
MotorSpeed(160,165);
if (taste > 1) { StatusLED(RED); BackLED(ON,ON); MotorDir(RWD,BREAK); MotorSpeed(100,0); i++;}
while (i < 10);
}
return 0;
}
-
"i" wird doch nur hochgezählt wenn der Taster gedrückt wird!!!!! Und den sinn deiner While Schleife verstehe ich nicht, die macht doch garnichts....
Und in Zeile 30 die "}" ist überflüssig....
-
Stimmt :D Du sagst es, dass alles passiert nur beim drücken einer Taste :d ohh je da hätte ich auch selber drauf kommen können. Also ich hatte eigentlich vor, dass er dann rückwärts fährt und dann nach einer zeit wieder vorwärts !
-
dafür gibts doch die sleep, bzw. in der erweiterten Lib die Msleep funktion