Sleep(72000);
Da sollte zumindest ein Fehler beim Kompilieren auftreten. Programm gespeichert vor dem Kompilieren?
Hallo,
ich hab ein Problem mit den kollisions tastern meines ASUROs: ich muss sie gedrückt halten damit er die schritte ausführt die er soll:
Was mache ich falsch?Code:#include "asuro.h" int main(void) { int n = 0, g = 0; Init(); MotorSpeed(255,250); while (n<100){ if(g>0){ MotorDir(RWD,RWD); Sleep(72000); MotorDir(RWD,BREAK); Sleep(72000); g=0; } MotorDir(FWD,FWD); unsigned char taste; taste = PollSwitch(); if (taste>0){ g=g+1; } } while(1); return 0; }
Geändert von SuperManitu (30.03.2012 um 18:19 Uhr)
Sleep(72000);
Da sollte zumindest ein Fehler beim Kompilieren auftreten. Programm gespeichert vor dem Kompilieren?
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
ja, aber als ich es mit winAVR komplitiert habe gab es kein problem.
Es lies sich auch ohne weiteres auf den asuro übertragen.
Es gibt nur Warnungen, weil der Parameter für Sleep() größer als 8 Bit ist.
So vielleicht?
Code:#include "asuro.h" int main(void) { unsigned char taste; int g = 0, i; Init(); MotorSpeed(255,250); while (1){ if(g>0){ MotorDir(RWD,RWD); i = 1000; while(i--) Sleep(72); MotorDir(RWD,BREAK); i = 1000; while(i--) Sleep(72); g = 0; StatusLED(GREEN); } MotorDir(FWD,FWD); taste = ((PollSwitch() > 0) && (PollSwitch() > 0)); if (taste){ g = g+1; StatusLED(RED); } } while(1); return 0; }
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Danke, es hat funktioniert.
Aber was habe ich falsch gemacht?
Ich vermute, dass eigentliche Problem war Sleep(72000); Hier "weiß" der Kompiler nicht, was er als Wert einsetzen soll, weil der 8-bit Parameter nur von 0 bis 255 reicht. Da ein Sleep(72) eine 1/1000 Sekunde dauert wird es in einer Schleife 1000 mal wiederholt:
i = 1000;
while(i--) Sleep(72);
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Danke, jetzt verstehe ich.
/close
Lesezeichen