Archiv verlassen und diese Seite im Standarddesign anzeigen : Asuro soll Stufenlos beschleunigen
Sim Robot
09.02.2008, 11:48
Mein Asur soll stufenlos von 0-255 beschleunigen. Dazu habe ich dieses Programm geschrieben
#include "asuro.h"
int main(void){
Init();
int v;
int d;
v=1;
while(v==255){
MotorDir(FWD,FWD);
MotorSpeed(v,v);
for(d=0;d<70;d++){
Sleep(255);
v=v+1;
}
}
return 0;
}
Aber mein Asuro macht garnichts.
Worann liegt das? Kann ich MotorSpeed(v,v); schreiben? Und wenn nich wie muss ich es dann schreiben?
m.a.r.v.i.n
09.02.2008, 12:16
Hallo,
probier mal
while (v<=255){
sonst kommt das Programm nie in die While Schleife.
radbruch
09.02.2008, 12:24
Hallo
-while(v==255) müsste while(v<255) heisen.
-int v sollte ein unsigned char sein
-for return(0) sollte ein while(1) sein
-Sleep()-Schleife zu lang
#include "asuro.h"
int main(void){
Init();
unsigned char v;
int d;
v=50;
MotorDir(FWD,FWD);
while(v<255){
MotorSpeed(v,v);
v++;
if (v & 8) StatusLED(RED); else StatusLED(YELLOW);
for(d=0;d<5;d++){
Sleep(255);
}
}
while(v>0){
v--;
MotorSpeed(v,v);
if (v & 8) StatusLED(RED); else StatusLED(YELLOW);
for(d=0;d<5;d++){
Sleep(255);
}
}
StatusLED(GREEN);
while(1);
return 0;
}
Gruß
mic
damaltor
09.02.2008, 16:06
warum sleepschleife zu lang? 255 ist doch ok... hab ich was übersehen?
Sim Robot
09.02.2008, 16:14
Ich habe das Programm gerade getestet und die for Schleife ist definitif zu kurz. Denn mein Asuro beschleunigt bremmst, Beschleunigt und bremmst und das jede Sekunde(Zeitangabe ist geschätzt). Also sollte ich die schleife größer und nicht kleiner machen
damaltor
09.02.2008, 16:46
dene daan dass 255 der maximalwert für sleep ist.
radbruch
09.02.2008, 16:59
Hallo
Bei 70 in der Zählschleife hat es bei mir ewig gedauert bis er merklich beschleunigt, 5 ist erträglich. Ich verwende allerdings den neueren 36kHz-Takt, bei der orginalen Lib müssten es wohl 10 sein:
for(d=0;d<10;d++){
Sleep(255);
}
Beschleunigt und bremst und das jede Sekunde
Bei meinem Beispiel sollte er nur einmal beschleunigen und wieder abbremsen und dann mit grüner StatusLED endlos warten. Mein asuro macht das auch so.
Gruß
mic
Sim Robot
09.02.2008, 17:01
Ich denke daran. Ich setze Sleep immer in eine for schleife das es so aussieht:
for(d= ;d<????;d++){
Sleep(255);
}
damaltor
09.02.2008, 19:04
ich denke du meintest
for(d=0;d<????;d++){
oder?
Sim Robot
09.02.2008, 19:45
Simmt das meinte ich nur al ich das eingetippt habe ist ein Smilie erschien. deswegen habe ich das so geschrieben (dachte es würde niemanden auffallen).
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.