-
        

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 24

Thema: Programm hilfe

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    10.03.2007
    Alter
    30
    Beiträge
    26

    Programm hilfe

    Anzeige

    kann mir bitte einer ein programm schreiben
    wo sich der asuro 30cm vorwärts dreht und die leds
    nacheinander leuchten und wieder rückwärts fährt

    ist sehr wichtig bitte bin eine niete in programmieren

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    23.02.2007
    Ort
    Erlangen
    Alter
    23
    Beiträge
    322
    also. du solltest ers einmal erklären was du genau meinst.
    1. Wie kann sich der Asuro nach vorwärts ****drehen****?
    2. Welche LED's sollen nacheinander leuchten, und wielange?
    3. Das mit den 30cm musst du von der Zeit her dann selbst rauskriegen, da jeder asuro anders geölt ist und so was.

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    10.03.2007
    Alter
    30
    Beiträge
    26
    hallo also ich hab mich hingehockt und dieses programmchen
    mit hilfe von dem selbsttest programm geschrieben
    #include "asuro.h"
    int main(void)
    {
    Init();
    MotorDir(FWD,FWD);
    MotorSpeed(255,0);
    while(1)
    return 0;

    }

    {
    unsignet int i;
    Init();
    while(1)
    StatusLED(RED);
    for (i = 0; i < 282; i++) {
    Sleep(10); }
    StatusLED(GREEN);
    for (i = 0; i < 282; i++) {
    Sleep(10); }
    StatusLED(OFF);
    }
    {
    Init();
    MotorDir(RWD,RWD);
    MotorSpeed(0,255);
    while(1)
    return 0;
    }
    FrontLED(ON);
    for (i = 0; i < 282; i++) {
    Sleep(10); }
    FrontLED(OFF);
    BackLED(ON,OFF);
    for (i = 0; i < 282; i++) {
    Sleep(10); }
    BackLED(ON,OFF);
    for (i = 0; i < 282; i++) {
    Sleep(10); }
    BackLED(OFF,OFF);
    StatusLED(GREEN);
    for (i = 0; i < 282; i++) {
    Sleep(10); }
    }
    return 0;
    }

    also das programm soll mit maximaler drehzahl das linker Motor vorwärts fahren und danach das rechter motor aber und in dem quellcode geschriebene leds sollen leuchten

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    10.03.2007
    Alter
    30
    Beiträge
    26
    und wenn es klappen sollte könntet ihr mir des compalieren bei mir geht
    es irgendwie nicht brauch bitte dan die hex datei

  5. #5
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Jena
    Alter
    31
    Beiträge
    3.912
    so, das sieht schon nicht schlecht aus. mal ein paar kleinigkeiten:

    1. Ein thread, der WICHTIG! BITTE HELFEN heisst, wird garantiert in keiner Suche gefunden. bitte editiere deinen ersten beitrag, dann kannst du den titel ändern.
    2. Ein Forum ist zum Helfen. NICHT UM FERTIGE PROGRAMME SCHREIBEN ZU LASSEN. Gut, dass du es selbst wenigstens Probiert hast.
    3. Es heisst "kompilieren" und nicht kompalieren =)
    4. Wenn du vor dem Programmcode den button "code" über dem textfenster drückst, und danach auch nochmal, dann sieht das ganze so aus: Hier dein Programm mit ein paar anmerkungen.

    Code:
    #include "asuro.h" //OK
    int main(void) //OK
    { //OK
    Init(); //OK
    MotorDir(FWD,FWD); //OK
    MotorSpeed(255,0); //OK
    while(1) //Hier fehlt was. was soll passieren? entweder {anweisungen}; oder nur ein Semikolon (;) muss hier hinter
    return 0; //OK
    
    } //diese klammer zeigt das ende des programms an. schau immer, welche geöffnete klammer zu welcher geschlossenen gehört. diese gehört zur klammer hinter "int main(void)", und schliesst damit das programm.
    
    { //hier ist eine geöffnete klammer... einfach so. das geht zwar theoretisch, aber in diesem fall ist es witzlos: das programm ist ja schon beendet =(
    unsignet int i; //es heisst "unsigned"
    Init(); //haste schon am beginn des programms
    while(1) //dies ist eine endlosschleife. ab hier passiet nix mehr.
    StatusLED(RED); //OK
    for (i = 0; i < 282; i++) { //OK
    Sleep(10); } //OK
    StatusLED(GREEN);
    for (i = 0; i < 282; i++) { //OK
    Sleep(10); } //OK
    StatusLED(OFF); //OK
    } //Wieder ein ende... naja
    { //und wieder ein öffnen =)
    Init(); //haste schon
    MotorDir(RWD,RWD); //OK
    MotorSpeed(0,255); //OK
    while(1) //Endlosschleife
    return 0; //muss am ENDE des programmes stehen...
    } //einfach so ne ende klammer... wozu gehört die?
    FrontLED(ON); //OK
    for (i = 0; i < 282; i++) { //OK
    Sleep(10); } //OK
    FrontLED(OFF); //OK
    BackLED(ON,OFF); //OK
    for (i = 0; i < 282; i++) { //OK
    Sleep(10); } //OK
    BackLED(ON,OFF); //OK
    for (i = 0; i < 282; i++) { //OK
    Sleep(10); } //OK
    BackLED(OFF,OFF); //OK
    StatusLED(GREEN); //OK
    for (i = 0; i < 282; i++) { //OK
    Sleep(10); } //OK
    } // noch ne ende klammer... keine geöffnete zu sehen
    return 0; //OK
    //hier fehlt eine endlosschleife
    }  //OK
    AAAlso:

    bitte fang nochmal an. zusammenkopierte quelltexte funktionieren zu 99,9% nicht.

    lies die anleitung genau. versuche dei beispiele zu verstehen. gerade am beginn des teils der programmierung in der anleitungen stehen wichtige grundlagen, welche hier mehr oder weniger vorausgesetzt werden.

    Wenn der compiler fehlermeldungen ausgibt, kopiere sie und poste sie hier. Ebenfalls mit dem "code" button natürlich.

    mach langsam, versuche, nichts fertiges zu kopieren. niemand wird dir einfach so ein programm schreiben. dadurch lernste nix, das hört man hier dauernd.

    Versuche, die Programme der anleitung abzutippen (!) und sie dabei zu verstehen. sie sind ganz gut erklärt. und lies vor allen dingen den entsprechenden teil der anleitung genau, dir fehlen die grundlagen!!

    Nicht aufgeben, ist alles garantiert nicht böse gemeint, aber das alles ist gar nicht so schwer, wenn man sich damit beschäftigt und nicht fertiges verlangt. ausserdem kann man dann viel stolzer darauf sein! Viel Erfolg weiterhin...
    kleinschreibung ist cool!

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    10.03.2007
    Alter
    30
    Beiträge
    26
    Code:
    #include "asuro.h" //OK 
    int main(void) //OK 
    { //OK 
    Init(); //OK 
    MotorDir(FWD,FWD); //OK 
    MotorSpeed(255,0); //OK 
    while(1);
    return 0; //OK 
    
    
    unsigned int i; 
    
    
    StatusLED(RED); //OK 
    for (i = 0; i < 282; i++) { //OK 
    Sleep(10); } //OK 
    StatusLED(GREEN); 
    for (i = 0; i < 282; i++) { //OK 
    Sleep(10); } //OK 
    StatusLED(OFF); //OK 
    } //Wieder ein ende... naja 
    {
    
    MotorDir(RWD,RWD); //OK 
    MotorSpeed(0,255); //OK 
    
    
    FrontLED(ON); //OK 
    for (i = 0; i < 282; i++) { //OK 
    Sleep(10); } //OK 
    FrontLED(OFF); //OK 
    BackLED(ON,OFF); //OK 
    for (i = 0; i < 282; i++) { //OK 
    Sleep(10); } //OK 
    BackLED(ON,OFF); //OK 
    for (i = 0; i < 282; i++) { //OK 
    Sleep(10); } //OK 
    BackLED(OFF,OFF); //OK 
    StatusLED(GREEN); //OK 
    for (i = 0; i < 282; i++) { //OK 
    Sleep(10); } //OK 
    
    return 0; //OK 
    while(1) 
    }  //OK
    hier mein verbessertes programm hoffe es geht

  7. #7
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Jena
    Alter
    31
    Beiträge
    3.912
    sieht schon besser aus. kompiliere es mal, dann kannst du durch die fehlermeldungen etwas ändern.

    Fehler:
    - Am anfang des programms ist noch eine endlos schleife. mach die raus.
    Die beiden klammern in der mitte können weg. wozu sollen sie gut sein?
    - return(0) muss nur ein einziges mal, und zwar NACH der (einzigen) endlosschleife am ende stehen. hinter diese kommt ein semikolon. return(0) wird also nie ausgeführt, sondern muss nur der form wegen dastehen.
    - sortiere nochmal die klammern {}: eine zu beginn der main funktion, eine als ende des quelltextes. ansonsten nur für die for() funktion und schleifen verwenden. klammern allein im quelltext haben wenig sinn.
    - unsigned int i; diese zeile muss am anfang stehen, direkt vor Init();

    ansonsten: viel besser =)

    ändere das alles passend, und dann versuche, es zu kompilieren. was gibt der compiler aus?
    die kommentare könenn drin stehen bleiben, durch die beiden schrägstriche // sind sie als kommentar gekennzeichnet und werden vom compiler ignoriert.
    kleinschreibung ist cool!

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    10.03.2007
    Alter
    30
    Beiträge
    26
    Code:
    { //OK 
    Init(); //OK 
    MotorDir(FWD,FWD); //OK 
    MotorSpeed(255,0); //OK 
    
    
    unsigned int i; 
    
    
    StatusLED(RED); //OK 
    for (i = 0; i < 282; i++) { //OK 
    Sleep(10); } //OK 
    StatusLED(GREEN); 
    for (i = 0; i < 282; i++) { //OK 
    Sleep(10); } //OK 
    StatusLED(OFF); //OK 
    
    
    MotorDir(RWD,RWD); //OK 
    MotorSpeed(0,255); //OK 
    
    
    FrontLED(ON); //OK 
    for (i = 0; i < 282; i++) { //OK 
    Sleep(10); } //OK 
    FrontLED(OFF); //OK 
    BackLED(ON,OFF); //OK 
    for (i = 0; i < 282; i++) { //OK 
    Sleep(10); } //OK 
    BackLED(ON,OFF); //OK 
    for (i = 0; i < 282; i++) { //OK 
    Sleep(10); } //OK 
    BackLED(OFF,OFF); //OK 
    StatusLED(GREEN); //OK 
    for (i = 0; i < 282; i++) { //OK 
    Sleep(10); } //OK 
    
     //OK 
    while(1);
    return 0; 
    }  //OK
    und wie ist es jetzt

  9. #9
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Jena
    Alter
    31
    Beiträge
    3.912
    bitte kompiliere dein programm selbst. dann siehst du schon die meisten fehler, weil der compiler zeilennummern zu den fehlern angibt.

    jetzt fehlt der kopf (das #include), es fehlt der beginn der main funktion, und das unsigned int i steht noch immer an der falschen stelle.
    kleinschreibung ist cool!

  10. #10
    Neuer Benutzer Öfters hier
    Registriert seit
    10.03.2007
    Alter
    30
    Beiträge
    26
    Code:
    #include "asuro.h" //OK 
    int main(void) //OK 
    { //OK 
    Init(); //OK 
    MotorDir(FWD,FWD); //OK 
    MotorSpeed(255,0); //OK 
    
    
    unsigned int i; 
    
    
    StatusLED(RED); //OK 
    for (i = 0; i < 282; i++) { //OK 
    Sleep(10); } //OK 
    StatusLED(GREEN); 
    for (i = 0; i < 282; i++) { //OK 
    Sleep(10); } //OK 
    StatusLED(OFF); //OK 
    
    
    MotorDir(RWD,RWD); //OK 
    MotorSpeed(0,255); //OK 
    
    
    FrontLED(ON); //OK 
    for (i = 0; i < 282; i++) { //OK 
    Sleep(10); } //OK 
    FrontLED(OFF); //OK 
    BackLED(ON,OFF); //OK 
    for (i = 0; i < 282; i++) { //OK 
    Sleep(10); } //OK 
    BackLED(ON,OFF); //OK 
    for (i = 0; i < 282; i++) { //OK 
    Sleep(10); } //OK 
    BackLED(OFF,OFF); //OK 
    StatusLED(GREEN); //OK 
    for (i = 0; i < 282; i++) { //OK 
    Sleep(10); } //OK 
    
     //OK 
    while(1);
    return 0; 
    }  //OK
    ich habs compalier und des kam raus
    Code:
    C:\ASURO_src\FirstTry>make all 
    -------- begin --------
    avr-gcc --version
    avr-gcc (GCC) 3.3.1
    Copyright (C) 2003 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    
    Size before:
    test.elf  :
    section    size      addr
    .text      1512         0
    .data         0   8388704
    .bss          1   8388704
    .noinit       0   8388705
    .eeprom       0   8454144
    .stab      3120         0
    .stabstr   1698         0
    Total      6331
    
    
    Size after:
    test.elf  :
    section    size      addr
    .text      1512         0
    .data         0   8388704
    .bss          1   8388704
    .noinit       0   8388705
    .eeprom       0   8454144
    .stab      3120         0
    .stabstr   1698         0
    Total      6331
    
    
    Errors: none
    -------- end --------
    
    > Process Exit Code: 0
    es hat keine hex datei erstellt

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

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