- 12V Akku mit 280 Ah bauen         
Seite 4 von 7 ErsteErste ... 23456 ... LetzteLetzte
Ergebnis 31 bis 40 von 62

Thema: Anfänger hat probleme mit Asuro

  1. #31
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    Anzeige

    Powerstation Test
    btw bedeutet nebenbei bemerkt (by the way) und bezog sich auf das fehlende Seikolon das zu einem Absturz führen würde wenn es sich um die finale while()-Schleife handeln sollte. Die Funktion main() darf nie verlassen werden! Das würde aber geschehen wenn das while(1) ohne ; ausgeführt werden würde.
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  2. #32
    Benutzer Stammmitglied
    Registriert seit
    16.06.2009
    Beiträge
    38
    srry aber irendwie versteh ich das jetzt nicht..

  3. #33
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2008
    Ort
    Niederlanden
    Beiträge
    1.170
    Shorty93:

    Deine code

    while (1)
    return 0;

    meint etwas wie: "fur immer blasse deine letzte atem aus". Aber das ist unmöglich.

    Das sollte sein:

    while(1);
    return 0;

    Weil das ist gleich wie: "tu immer nichts, aber danach blasse deine letzte atem aus". Das hört kommisch an, aber stimmt doch fur Asuro. Weil er immer in der while schleife bleidt, und deshalb immortal (ist das auch einer deutscher wort??) ist. Dammit endet main() nie.

    Wenn den cpu doch bei "return 0" angekommen ist geht er einfach weiter weil Main das hauptprogram ist. Normale funktionen geben hier ein wert zuruck zum hauptprogram, oder zu einem funktion der sie angerufen hat. Und den cpu geht weiter in dem code der ihn angerufen had. Aber das kann nicht mit Main, weil es ein Uber-uber-uber-(Gott)-funktion is. Den instruktionszahler geht einfach weiter und arbeitet den 'instruktion' im nachsten programspeicherplatz. Deshalb hast du gesehen deine Asuro spielt alte programmen ab. Den sind noch drin und nicht uberschrieben beim flaschen. Wenn du ein grosses program geflashet hattet wurde er danach in verbotenes code gehen (wie den bootloader der am ende sitzt, wen ich mich nicht irre) oder den instruktionszahler geht durch den maximum wert und startet wieder am anfang bei 0. Aber das ist auch nicht erlaubt. Deshalb muss er immer den selbe gedanke machen.

    Ich hoffe diesen analogie hat das ein bisschen erklärt.

  4. #34
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2008
    Ort
    Niederlanden
    Beiträge
    1.170
    hmm, ich habe gerade einer post von radbruch gesehen. Aber das ist nun verschwunden.

  5. #35
    Benutzer Stammmitglied
    Registriert seit
    16.06.2009
    Beiträge
    38
    jetzt hab ichs einiger maßen verstandenn DANKE!
    Nächstes Problem kommt bestimmt...^^*

    Ich hab keine Nachricht von Radbruch nach deiner gesehn..

  6. #36
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    Ich hatte auch was zum Verlassen von main() mit return(0) geschrieben. Da Valen dies in seinem (editierten ;) Beitrag schon erwähnt und ich deshalb zu langsam war habe ich meinen Beitrag wieder zurückgezogen :)
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  7. #37
    Benutzer Stammmitglied
    Registriert seit
    16.06.2009
    Beiträge
    38
    achso.. trotzdem danke für die antwort

  8. #38
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2008
    Ort
    Niederlanden
    Beiträge
    1.170
    Zitat Zitat von radbruch
    Ich hatte auch was zum Verlassen von main() mit return(0) geschrieben. Da Valen dies in seinem (editierten Beitrag schon erwähnt und ich deshalb zu langsam war habe ich meinen Beitrag wieder zurückgezogen
    Ach so, hatte ich mir auch gedacht. Aber vielleicht hatte den forum server sich auch verschluckt oder so. Ja leider brauche ich manchmal so einer halbe stunde mit editieren meiner post. Warum ich das nicht gleich bemerken kannst ist mir ein rädsel.

  9. #39
    Benutzer Stammmitglied
    Registriert seit
    16.06.2009
    Beiträge
    38
    Hi ab schon wieder ein neues problem..
    der asuro soll gerade aus fahren, wenn er anstoößt rückfahrn und sih drehen, danach soll er wieder vorwaärtsfahren und so weiter..

    Hier ist mein Programm:

    while (1) {
    if(PollSwitch()>0) {
    StatusLED(RED);
    BackLED(ON,ON);
    MotorDir(RWD,RWD);
    for(i=0; i<1000; i++) Sleep(144);
    MotorSpeed(100,150);
    for(i=0; i<1000; i++) Sleep(144);
    }

    else { StatusLED(GREEN);
    BackLED(OFF,OFF);
    MotorDir(FWD,FWD);
    MotorSpeed(150,150);


    }

    }
    while (1);
    return 0;

    }


    Irgendwie funktioniert das so nicht..( er fährt nur rückwärts und fährt ne kurve..) kkann mir jemand die sleep funktin erklären und mir einen tipp geben was an meinem programm falsch ist?
    Danke schonmal

    Gruß
    shorty

  10. #40
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2008
    Ort
    Niederlanden
    Beiträge
    1.170
    Das ist nicht das kompleten program! [-X

    Er denkt er erfuhrt ein anstoss. Aber das sind den störungen von den motoren. Du muss mehrfach Pollswitch nacheinander benutzen und den werten vergleichen ob sie stabiel sind.

Seite 4 von 7 ErsteErste ... 23456 ... LetzteLetzte

Berechtigungen

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

LiFePO4 Speicher Test