PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : frage zu den PollSwitch()



kungfuman
22.06.2006, 19:41
Ich weiss ich nerf langsam mit meinen fragen aber ab morgen nerv ich nimmer, versprochen !

ich glaub das wird jetzt echt ne blöde frage aber nungut....

ich will mein asuro so programmieren dass wenn er gegen eine wand fährt ( es ist egal welcher taster reagiert) dann soll er umdrehen und weiterfahren...das mit dem umdrehen und weiterfahren funktioniert ein wand frei... aber der taster meldet einfach keine berührung.... mein code sieht wie folgt aus :


#include "asuro.h"
#include "Zusammenfassung.h"


int wandprogramm()
{
Init();

MotorDir(FWD,FWD);
MotorSpeed(150,150);
BackLED(ON,ON);
while(1)
{
if (PollSwitch()>0)
{
BackLED(OFF,OFF);
kurzhinter();
links();
links();
kurzvor();
}
return 0;
}

return 0;
}

ich hab die LEDs reingemacht damit ich weiss wie weit mein programmm funktioniert....die BackLEDs gehn an...wenn er gegen ne wand fährt und die taster gedrückt werden bleiben die imernoch an also funktioniert die PollSwitch()-funktion nicht....
ich vermute mal dass ich entweder einen denkfehler habe oder ich mich so wenig mit der funktion pollswitch auskenne dass ich sie flasch hinschreibe...

bitte hilft mir ! ich muss morgen ein programm vorführen und ich brauch die taster dafür... es wäre echt nett wenn mir jemand helfen könnte oder wenigstens ein hinweis geben könnte.

MfG kungfuman

izaseba
22.06.2006, 19:45
Schmeiss das erste return 0 raus

Gruß Sebastian

EDIT: Ups, ich sehe es gerade erst, wo ist die main() Funktion ?

kungfuman
22.06.2006, 19:51
danke ;) es funktioniert !

kann es sein dass das erte retun 0 die schleife beendet hat ? war das mein fehler ?

danke izaseba !

mfg kungfuman

izaseba
22.06.2006, 20:02
kann es sein dass das erte retun 0 die schleife beendet hat ?

Es hat nicht nur die Schleife beendet sondern die ganze Funktion verlassen.

Vergiss mein edit von oben, ich dachte nur das der Fehler möglicherweise irgendwo anders stecken kann.

P.S.

Eleganter als:


while(1)
{
if (PollSwitch()>0)
{

wäre vielleicht sowas:



while (pollSwitch()) {
BackLED(OFF,OFF);
...


oder


while (pollSwitch() > 0) {
BackLED(OFF,OFF);
...


Gruß Sebastian