- 12V Akku mit 280 Ah bauen         
Seite 1 von 6 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 55

Thema: ASURO neuling (noob) hat mal Programiert

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    25.05.2009
    Ort
    Cleebronn
    Alter
    30
    Beiträge
    80

    ASURO neuling (noob) hat mal Programiert

    Anzeige

    Praxistest und DIY Projekte
    Hallo
    ich habe zwei Programme geschrieben, und da mein ASURO, dank Conrad noch nicht Fertig ist weis ich nicht ob es geht, deshalb wollte ich euch fragen ob da überhaubt gehten kann.

    1 Programm:

    #include "asuro.h"

    int main(void)
    {
    Init(1);

    MotorDir(FWD,FWD);
    MotorSpeed(120,120);
    StatusLED(GREEN)
    while (PollSwich(1)==0){
    Motorspeed(0,0);
    SatusLED(Red);
    MotorDir(RWD,BREAK);
    StatusLED(GREEN)
    MotorDir(FWD,FWD);
    MotroSpeed(240,240);
    While (PollSwich(1)==0)
    while(1)

    }


    2 Programm:

    #include "asuro.h"
    int main(void){
    Init();
    MotorDir(FWD,FWD);
    MotorSpeed (200,200);
    sleep(216)*1750;
    MotorSpeed (200,100);
    sleep(216);
    Motordir (FWD,BREAk);
    Sleep(216);
    Motordir(Break,Break);
    while(1);
    }

    Gruß
    Jonas Weber

    Ps. nicht auslachen wenn die komplett falsch ist *g*

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2008
    Ort
    Niederlanden
    Beiträge
    1.170
    Deine Asuro ist vieleicht noch nicht fertig aber du kannst den Programmers Notepad/make/compiler functionen schon ausprobieren. Nur kannst du nicht den HEX-Datei flashen auf deinen Asuro.

    Da sind sicher schon einiger Fehler in deine Programmen wovon den Compiler nichts machen kann. (Schreibfehler auch , aber auslachen, nee... nie! [-X ) Ich kann sie anzeigen fur dich, aber es wurde vielleicht ein besser Lehrmoment sein den Compiler-Fehlerliste anzuschauen und davon zu lernen. Weil den Compiler genau sagt wenn er etwas nicht versteht. (nur in etwas cryptische Sprache) Wie du das compilieren kann steht in den Asuro Anleitung. Leider nicht mit einer Tutorial uber das finden und beheben einer Fehler. Postet bitte hier den Error-liste im Programmers Notepad nach du das Compiliert hat. (nur die Tekst hier reinfugen, keine Monitor Abbildung machen)

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    17.05.2009
    Beiträge
    46
    Hey
    Habe noch ein einige Fragen zum Programmieren,…
    Ich bin mir nicht sicher was die einzelnen Befehle bedeuten.

    #include „asuro.h“ //einbinden einer anderen Datei
    int main (void){ //beginnen des Hauptprogrammes
    init() //Prozessor zurücksetzten? Aber wieso?
    StatusLED(RED); //StatusLED auf rot stellen
    while(1); //Endlosschleife, weswegen, LED schaltet sich nicht aus, bis ich den Befehl gebe?
    return 0; // Beenden des Prozesses? Wieso?
    } //Beenden des MainTasks

    Ist dies Korrekt, was ich annehme?
    Wie kann ich diese Codes In ein eigenes Fenster eingeben?

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    25.05.2009
    Ort
    Cleebronn
    Alter
    30
    Beiträge
    80
    Also

    Programm1:

    C:\ASURO_src\FirstTry>make all
    set -e; avr-gcc -MM -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=asuro.lst asuro.c \
    | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > asuro.d; \
    [ -s asuro.d ] || rm -f asuro.d
    set -e; avr-gcc -MM -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.lst test.c \
    | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > test.d; \
    [ -s test.d ] || rm -f test.d
    -------- 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.

    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
    avr-gcc -c -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=asuro.lst asuro.c -o asuro.o
    avr-gcc -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.o test.o asuro.o --output test.elf -Wl,-Map=test.map,--cref -lm
    avr-objcopy -O ihex -R .eeprom test.elf test.hex
    avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" \
    --change-section-lma .eeprom=0 -O ihex test.elf test.eep
    avr-objdump -h -S test.elf > test.lss
    Size after:
    C:\Users\Jonas\AppData\Local\Temp\make60966.sh: /c/WinAVR/bin/avr-size: Invalid argument
    make: *** [sizeafter] Error 126

    > Process Exit Code: 2





    Programm 2:

    C:\ASURO_src\FirstTry>make all
    set -e; avr-gcc -MM -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=asuro.lst asuro.c \
    | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > asuro.d; \
    [ -s asuro.d ] || rm -f asuro.d
    set -e; avr-gcc -MM -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.lst test.c \
    | sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > test.d; \
    [ -s test.d ] || rm -f test.d
    -------- 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.

    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
    avr-gcc -c -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=asuro.lst asuro.c -o asuro.o
    avr-gcc -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=test.o test.o asuro.o --output test.elf -Wl,-Map=test.map,--cref -lm
    avr-objcopy -O ihex -R .eeprom test.elf test.hex
    avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" \
    --change-section-lma .eeprom=0 -O ihex test.elf test.eep
    avr-objdump -h -S test.elf > test.lss
    Size after:
    C:\Users\Jonas\AppData\Local\Temp\make42206.sh: /c/WinAVR/bin/avr-size: Invalid argument
    make: *** [sizeafter] Error 126

    > Process Exit Code: 2


    ich hoffe ihr könnt mir helfen

    Gruß Jonas Weber

    ps. könnte mir vllt jemand ein fertiges programm geben, da ich morgen den ASURO mal fahren sehen will *g* (so eins wo, wenn der ASURO irgend wo gegen fährt dann automatisch sich dreht und dann weiter fährt)
    wär toll :P =D>

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

    Init() initialisiert den Mega8, z.b. die Timer, PWM, ADC... und setzt Startwerte wie StatusLED oder MotorDir und löscht die LEDs.

    Normalerweise springt ein Programm am Ende zurück zum aufrufenden Programm (und nimmt einen Übergabewert mit return mit). Da beim asuro aber kein aufrufendes Programm existiert würde man ins Nirwana springen. Genau dies verhindert die finale Endlosschleife while(1);

    Gruß

    mic

    Die Funktion Init():
    Code:
    /* Init function Processor will be initalized to work correctly */
    void Init (void)
    {
    	//-------- seriell interface programmed in boot routine and already running -------
    	//  prepare 36kHz for IR - Communication
    	TCCR2 = (1 << WGM20) | (1 << WGM21) | (1 << COM20) | (1 << COM21) | (1 << CS20);
    	OCR2  = 0x91; // duty cycle for 36kHz
    	TIMSK |= (1 << TOIE2); // 36kHz counter for sleep
    	
    	// prepare RS232 
    	UCSRA = 0x00;
    	UCSRB = 0x00;	
    	UCSRC = 0x86; // No Parity | 1 Stop Bit | 8 Data Bit
    	UBRRL = 0xCF; // 2400bps @ 8.00MHz
    	
    	// I/O Ports
    	DDRB = IRTX | LEFT_DIR | PWM | GREEN_LED; 
    	DDRD = RIGHT_DIR | FRONT_LED | ODOMETRIE_LED | RED_LED;
    	
    	// for PWM (8-Bit PWM) on OC1A & OC1B
    	TCCR1A = (1 << WGM10) | (1 << COM1A1) | (1 << COM1B1);
    	// tmr1 running on MCU clock/8 
    	TCCR1B = (1 << CS11);
    	
    	// A/D Conversion
    	ADCSRA = (1 << ADEN) | (1 << ADPS2) | (1 << ADPS1); // clk/64 
    	ODOMETRIE_LED_OFF;
    
    	FrontLED(OFF);
    	BackLED(ON,ON);
    	BackLED(OFF,OFF);
    	StatusLED(GREEN);
    	
    	MotorDir(FWD,FWD);
    	MotorSpeed(0,0);
    	sei();
    }
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    25.05.2009
    Ort
    Cleebronn
    Alter
    30
    Beiträge
    80
    radbruch danke aber ich vertseh das net richtig (bin noch noob *g*)

    könntest du meine beiden programme so ändern das ich funktonieren :P

    gruß Jonas Weber

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    30.12.2008
    Beiträge
    1.427
    versteh ich das richtig "könntest du meine beiden programme so ändern das ich funktonieren Razz "
    du oder der Asuro???

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    25.05.2009
    Ort
    Cleebronn
    Alter
    30
    Beiträge
    80
    hääääääääääää
    *g*
    raffs grad net so richtig

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    25.05.2009
    Ort
    Cleebronn
    Alter
    30
    Beiträge
    80
    hilft mir bitte

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

    Dein Makefile scheint nicht zu funktionieren, aber damit kenne ich mich leider nicht aus und kann deshalb nicht helfen. Wenn alles klappt erhält man eine Ausgabe ähnlich denen im Anhang.

    Prog1:

    5: Init(1); zuviele Argumente (die 1 muss weg)
    10: Semikolon ; nach StatusLED(GREEN) in Zeile 9 fehlt
    10: PollSwich(1) falsch geschrieben und zuviele Argumente (die 1 muss weg)
    12: SatusLED falsch geschrieben
    15: Semikolon fehlt am Ende von Zeile 14
    16: MotroSpeed falsch geschrieben, dadurch auch Fehler in 17 (while)
    17: PollSwich(1) falsch geschrieben und zuviele Argumente (die 1 muss weg)

    Prog2:

    6: sleep falsch geschrieben (großklein) und *1750 ist Quatsch
    9: Motordir und BREAk falsch geschrieben (großklein)
    11: Break falsch geschrieben (großklein)


    Ganz ehrlich, es ist eine Frechheit solch hingeschluderte Programme einzureichen. Das ist mit "ASURO neuling (noob)"-Sprüchen nicht zu entschuldigen. Bitte mehr anstrengen und in code-Tags posten.

    Gruß

    mic

    [Edit]Auch ich hatte als Kind eine enorme Rechtschreibschwäche, trotzdem war Mathe mein Lieblingsfach und programmieren konnte ich auch. Da gibt es keinen Freiraum für eigene "Interpretationen", da muss man Buchstabe für Buchstabe und Ziffer für Ziffer kopieren. Und wenn's dann gar nicht klappt kann man die Befehle direkt aus der Anleitung kopieren und im Editor einfügen. Verschreiben ist dann unmöglich.
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken prog1.jpg   prog2.jpg  
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

Seite 1 von 6 123 ... LetzteLetzte

Berechtigungen

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

Solar Speicher und Akkus Tests