PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit denTastern!



FredericStep
04.01.2008, 14:01
Hi!
Ich habe jetzt seit einiger Zeit einen Asuro.
Wenn ich die Taster mit folgendem Programm programmieren will funktioniert es allerdings nicht.
Der ASURO fährt einfach geradeaus und hält nochnichtmal an.



#include "asuro.h"

int main(void)
{
Init();
unsigned char ta;
int z;

for(;;)
{

ta = PollSwitch() ;
for(;ta==0;)
{
MotorDir(FWD,FWD);
MotorSpeed(150,150);
}
MotorDir(RWD,BREAK);
MotorSpeed(190,0);
for (z=0;z<300;z++)
{Sleep(216);}
}
while(1);
return 0;
}
[/code]

Ceos
04.01.2008, 14:12
dir ist schon klar, das "ta" während deiner
for(;ta == 0;) schleife nie wieder ausgelesen wird ? d.h. der wert bleibt IMMER = 0

FredericStep
04.01.2008, 14:23
warum ist ta immer 0?
ta ist doch gleich PollSwitch ()

radbruch
04.01.2008, 17:57
Hier ist ta immer 0, weil die Schleife endlos läuft, wenn sie mal betreten wurde:

for(;ta==0;)
{
MotorDir(FWD,FWD);
MotorSpeed(150,150);
}

Keine Chance für PollSwitch(), weil es außerhalb dieser Schleife ist.

Ceos
04.01.2008, 18:06
kann es sein, das dir die c syntax nicht sehr geläufig ist ?


ta = PollSwitch();

heisst nur das du die methode PollSwitch(); aufrufst, die die werte der taster abruft .... und nach BEENDEN des aufruf in die variable ta (variable = wertespeicher) zurückliefert.

das bedeutet nicht das wenn du ta == 0 machst automatisch die methode PollSwitch(); aufgerufen wird .... für den fall dass du all das schon weisst, tut mir leid aber es machte mi den eindruck als ob du da was grundlegend falsch verstanden hast

radbruch
04.01.2008, 18:41
Tja, ich bin nun auch nicht mehr sicher, wie ich das interpretieren soll, trotzdem mal ein Vorschlag:

for(;ta==0; ta=PollSwitch())

sollte im Rahmen der Ungenauigkeiten von PollSwitch() halbwegs funktionieren.

mic

FredericStep
04.01.2008, 20:14
wie würde denn dann ein programm aussehen bei dem der ASURO nach vorne fährt und dann bei einer Kollision einige Zeit zurück?
Danke im Vorraus!

JensK
13.01.2008, 20:31
nutz mal die sufu :) gibt gaaanz viele.... auch ist so ein Programm bei den Examples von Arexx dabei.... sogar mit Code...

mfg