-         

Ergebnis 1 bis 10 von 10

Thema: Asuro soll Stufenlos beschleunigen

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    30.11.2007
    Beiträge
    152

    Asuro soll Stufenlos beschleunigen

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Mein Asur soll stufenlos von 0-255 beschleunigen. Dazu habe ich dieses Programm geschrieben
    Code:
    #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?
    [schild=14 fontcolor=000000 shadowcolor=C0C0C0 shieldshadow=1]Roboter sind cool[/schild]

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von m.a.r.v.i.n
    Registriert seit
    24.07.2005
    Ort
    Berlin
    Beiträge
    1.247
    Hallo,

    probier mal

    Code:
    while (v<=255){
    sonst kommt das Programm nie in die While Schleife.

  3. #3
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8
    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


    Code:
    #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

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  4. #4
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Jena
    Alter
    31
    Beiträge
    3.912
    warum sleepschleife zu lang? 255 ist doch ok... hab ich was übersehen?
    kleinschreibung ist cool!

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    30.11.2007
    Beiträge
    152
    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
    [schild=14 fontcolor=000000 shadowcolor=C0C0C0 shieldshadow=1]Roboter sind cool[/schild]

  6. #6
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Jena
    Alter
    31
    Beiträge
    3.912
    dene daan dass 255 der maximalwert für sleep ist.
    kleinschreibung ist cool!

  7. #7
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8
    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

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    30.11.2007
    Beiträge
    152
    Ich denke daran. Ich setze Sleep immer in eine for schleife das es so aussieht:
    Code:
    for(d= ;d<????;d++){
           Sleep(255);
    }
    [schild=14 fontcolor=000000 shadowcolor=C0C0C0 shieldshadow=1]Roboter sind cool[/schild]

  9. #9
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Jena
    Alter
    31
    Beiträge
    3.912
    ich denke du meintest
    for(d=0;d<????;d++){
    oder?
    kleinschreibung ist cool!

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    30.11.2007
    Beiträge
    152
    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).
    [schild=14 fontcolor=000000 shadowcolor=C0C0C0 shieldshadow=1]Roboter sind cool[/schild]

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •