-
Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 28

Thema: [Wichtig]Was ist falsch?

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    05.02.2012
    Beiträge
    13

    Ausrufezeichen [Wichtig]Was ist falsch?

    Könnt ihr mir helfen?
    Ich hab den Asuro mal wieder ausgepackt und wollte malwieder ein Programm draufwerfen. Aber der sagt mir ein error! Hier mal das Programm:

    [#include "asuro.h"
    int main(void){
    Init();
    while(1){
    do {
    MotorSpeed(112,100);
    MotorDir(RWD,RWD);
    StatusLED(RED);
    BackLED(ON,ON);
    }
    while (PollSwitch()==0);
    {
    else
    MotorSpeed(112,100);
    MotorDir(FWD,FWD);
    StatusLED(GREEN);
    FrontLED(ON);}
    }
    }


    Und den error wenn ich "make" mache:

    avr-gcc -c -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.lst test.c -o test.o
    test.c: In function `main':
    test.c:13: error: parse error before "else"
    make: *** [test.o] Error 1

    > Process Exit Code: 2]--> Gelöst

    Bitte um schnelle Hilfe ist für meine Technik Fachinterne.
    Geändert von NicMaxFen (05.02.2012 um 17:11 Uhr)

  2. #2
    Erfahrener Benutzer Roboter-Spezialist Avatar von Thegon
    Registriert seit
    21.01.2011
    Beiträge
    535
    Wer oder was sagt Error?
    Der Compiler? Oder der Programmer? Oder der Asuro, wie auch immer?
    Eine etwas genauere Fehlerbeschreibung könnte es einfacher machen, den Fehler zu erkennen

    Mfg Thegon

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    05.02.2012
    Beiträge
    13
    habs editiert sag einfach wenn was fehlt

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied Avatar von masasibe
    Registriert seit
    21.01.2011
    Beiträge
    181
    Hallo NicMaxFen,
    hab den Code gerade überflogen.
    Bei der 2. While-Schleife hast du zuerst
    einen Strichpunkt gemacht und dann eine
    geschweifte Klammer auf, aber das While ist mit dem
    Strichpunkt schon abgeschlossen, also lösche den Strichpunkt einmal
    weg!
    Außerdem fällt mir auf, dass vor dem Else gar kein if steht!

    mfg masasibe

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    05.02.2012
    Beiträge
    13
    [WICHTIG] Ah ok ty und könnt ihr mir pls sagen wie ich das mach, das Der roboter mehr als 2 Befehle ausfürt:
    z.B:
    Er fäht nach vorne----> Stößt an----> Dreht sich---->Stößt wieder an----> Fährt rückwärts

    Ich weis nicht wie ich das machen soll und find nichts . Ich weiß auch garnicht wie sowas aussieht
    IIIIIIIIIIIIIII
    IIIIIIIIIIIIIII
    IIIIIIIIIIIIIII
    VVVVVVVV
    Bitte Hier beschäftigen
    Geändert von NicMaxFen (05.02.2012 um 17:14 Uhr)

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied Avatar von masasibe
    Registriert seit
    21.01.2011
    Beiträge
    181
    Bitte keine solche Eile!

    Du kannst das z.B. mit einer Wartefunktion der delay.h Bibliothek machen.
    Wenn der Asuro vorne angestoßen ist, setzt du die Motoren so, dass der Asuro
    die Kurve fährt und führst dann einen Wartebefehl aus. Du musst halt ausprobieren
    wieviel Zeit dein Asuro braucht um sich so weit zu drehen wie du möchtest.
    Nach dem Wartebefehl setzt du dann die Motoren wieder auf vorwärts oder rückwärts
    oder wie du das halt möchtest usw.
    Vorteil der Wartefunktion ist, dass man das sehr schnell und einfach programmieren kann.
    Der Nachteil ist aber, dass der Asuro sich´, während der Wartebefehl ausgeführt wird,
    um nichts anderes kümmern kann.


    Die andere Möglichkeit wäre die Verwendung eines Timers. Ein Timer löst immer nach einer
    gewissen Zeit eine bestimmte Routine die sogenannte Interrupt-Service Routine aus und so
    könntest du auch den Asuro eine gewisse Zeit drehen und dann wieder vorwärts fahren lassen.
    Über die genaue Verwendung eines Timers liefert dir Google die Antwort!

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    05.02.2012
    Beiträge
    13
    Muss ich für delay.h ihrgend eine Dati runterladen oder einfach nur einfugen: #include "delay.h" und dann wo ichs brauch
    "void _delay_ms(double ms)"

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied Avatar von masasibe
    Registriert seit
    21.01.2011
    Beiträge
    181
    Das solle eigentlich auch ohne etwas herunterzuladen mit dem Befehl: #include <avr/delay.h> gehen,
    aber probiere es doch einfach aus und schau, ob der Compiler
    eine Fehlermeldung ausspuckt!

    Das kannst du dir übrigens auch noch durchlesen:
    http://www.rn-wissen.de/index.php/Warteschleife
    Da geht es um Warteschleifen und wann sie vom Compiler wegoptimiert wird.
    Ganz unten steht auch etwas über die delay.h

    mfg masasibe

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    05.02.2012
    Beiträge
    13
    So ich hab mal des mit der delay.h und so probiert und der Compiler hat mir dann ein Error rausgegeben:

    Programm:
    #include "asuro.h"
    #include <avr/delay.h>
    int main(void){
    Init();
    while(1)
    MotorSpeed(112,100);
    MotorDir(FWD,FWD);
    StatusLED(GREEN);
    while (PollSwitch()==0)
    {
    _delay_ms(200);
    MotorSpeed(112,0);
    MotorDir(FWD,FWD);
    StatusLED(YELLOW);
    FrontLED(ON);
    if (PollSwitch()>0){
    _delay_ms(200);
    MotorDir(RWD,RWD);
    MotorSpeed(112,100);
    StatusLED(RED);
    BackLED(ON,ON);
    FrontLED(ON);}
    else
    _delay_ms(200);
    MotorDir(FWD,FWD);
    MotorSpeed(112,0);
    StatusLED(YELLOW);
    FrontLED(ON);}
    }


    /edit: ok habs problem gelöst.
    Könnte jeman trotzdem noch drüber schauen

    /edit: mhmm er macht nur das was in dem Ersten befehl steht
    Geändert von NicMaxFen (07.02.2012 um 19:25 Uhr)

  10. #10
    Erfahrener Benutzer Roboter Experte Avatar von ePyx
    Registriert seit
    14.05.2008
    Ort
    Falkensee
    Beiträge
    700
    Probier mal #include <util/delay.h> dann wirds was. Btw. benutz mal die Code-Tags.

    Außerdem fehlen noch geschweifte Klammern bei den if/else-Blöcken.

    Bin in dem Ganzen noch unerfahren!
    Dann solltest du, wenn du es ernst meinst, dir die Tutorials anschauen.
    Grüße,
    Daniel

Seite 1 von 3 123 LetzteLetzte

Ähnliche Themen

  1. Antworten: 5
    Letzter Beitrag: 07.08.2008, 16:38
  2. Zeitschaltuhr ( Wichtig )
    Von Enten Züchte im Forum Elektronik
    Antworten: 9
    Letzter Beitrag: 23.06.2008, 16:44
  3. WICHTIG!! Problem mit AVR-GCC
    Von Nigthlord im Forum C - Programmierung (GCC u.a.)
    Antworten: 5
    Letzter Beitrag: 28.10.2007, 20:36
  4. Spannungsregler wichtig!
    Von csommi im Forum Elektronik
    Antworten: 4
    Letzter Beitrag: 10.03.2006, 13:07
  5. Teamspek für RN WICHTIG!!!!!
    Von dundee12 im Forum Offtopic und Community Tratsch
    Antworten: 7
    Letzter Beitrag: 27.09.2005, 22:50

Stichworte

Berechtigungen

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