PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Taster



janoschandre
23.06.2006, 17:19
Hallo,

ich habe folgendes geschrieben um die Taster mal zu testen:




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.

wanderer
23.06.2006, 17:59
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...

janoschandre
23.06.2006, 19:06
Hi,

hier das gesamte Programm:


#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;
}

wanderer
23.06.2006, 19:21
"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....

janoschandre
23.06.2006, 19:27
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 !

wanderer
23.06.2006, 20:09
dafür gibts doch die sleep, bzw. in der erweiterten Lib die Msleep funktion