- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: StudioAVR mit AVRGCC einbinden

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    12.09.2005
    Beiträge
    35

    StudioAVR mit AVRGCC einbinden

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo Zusammen,
    seit 2 Tagen versuche ich WinAVR(WinAVR-20060421) mit StudioAVR(aStudio4b460)einzubinden..... leider hat bei mir nicht geklappt zwar sie sind eingebunden aber bei building bekomme ich folgende Fehler :

    Build started 23.10.2006 at 16:23:18
    *avr-gcc -mmcu=atmega8515 -lc -lm -lprintf_flt -lprintf_min -lscanf_flt -lscanf_min -o test.elf
    *C:/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr4/crtm8515.o: In function `__vectors':
    ../../../../../avr-libc-1.4.4/crt1/gcrt1.S:51: undefined reference to `main'
    make: *** [test.elf] Error 1
    Build failed with 1 errors and 0 warnings...

    danke für die Hilfe

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    12.09.2005
    Beiträge
    35
    die Frage
    was mache ich hier falsch......!

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    21.10.2005
    Ort
    Erde
    Alter
    57
    Beiträge
    1.195
    Du hast keine main() Funktion in Deinem Code (sagt zumindest die Fehlermeldung)

    Vielleicht kannst Du mal Code und Makefile posten.

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    12.09.2005
    Beiträge
    35
    hier ist mein CODE

    Code:
    /*************************************************************************
    *
    * .C
    /*************************************************************************
    *
    * .C
    *
    *************************************************************************/
    
    /*************************************************************************
    * History
    *
    * Date   Name		Description
    *-------------------------------------------------------------------------
    * 05656 CHIS		created
    *
    *************************************************************************/
    #include <avr\io.h>		// Wir brauchen Zugriff auf die I/O's des Controllers
    #include <avr\signal.h>
    #include <avr\interrupt.h>
    #include <avr\eeprom.h>	// Und auf das Flash
    #include <inttypes.h>
    
    volatile int timer_flag, s;
    int i, t1s;
    
    #define FCLOCK   8000000
    
    // Timer 0
    // presc. = 1024
    // incr. = 7.813kHz bzw. 0.12ms
    #define TCNT0_Reload	(256-(FCLOCK/256)/100)
    
    /*************************************************************************
    *
    * für Quartz 8.000MHz
    *
    *************************************************************************/
    SIGNAL(SIG_OVERFLOW0) {
    outb(TCNT0, TCNT0_Reload); // timer neu laden
    
    timer_flag = 1;
    }
    
    
    
    int main(void) {
    
    
    
    	/******* FÜR UART********/
    
    outb(DDRC, 0xff);
    outb(DDRD, 0xff);
    /*
    * MainLoop
    * Timer 1 initialisieren
    */
    	//outb(TCNT0, TCNT0_Reload);
    	outb(TCCR0, 0x03);         //1024= 7.813 KHz
    	outb(TIMSK, inb(TIMSK) | BV(TOIE0));    /* enable T0 IRQ */
    
    // BV (1<<TOIE0)
    
    // gloabel IRQ-Bit setzen
    	sei();
    
    /*************************************************************************
    * MAIN_Loop
    */
    	for(;;) {           // ... ever
    
    		while(!timer_flag) { /* warten auf 1s */
      	}
    		timer_flag = 0;
    
    		t1s++;
    		if(t1s >8000) {
    			t1s = 1;
    
    			if(bit_is_clear(PORTC, PINC0)){
    				sbi(PORTC, 0);
    				s=s+1;
    				if(s==1){
    					s=0;
    					sbi(PORTD, 5);
    
    				}
    				cbi(PORTC, 1);
    				sbi(PORTC, 2);
    				cbi(PORTC, 3);
    
    				cbi(PORTC, 4);
    				sbi(PORTC, 5);
    				cbi(PORTC, 6);
    				sbi(PORTC, 7);
    
    			} else {
    				cbi(PORTC, 0);
    
    				sbi(PORTC, 3);
    				cbi(PORTC, 2);
    				cbi(PORTD, 5);
          		    sbi(PORTC, 1);
    				sbi(PORTC, 4);
    				cbi(PORTC, 5);
    				sbi(PORTC, 6);
    				cbi(PORTC, 7);
    
    		}
    	}
    	} // for(;;)
    	return 0;
    }
    
    
    /* eof */

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    Und wo ist deine main() definiert? Wohl kaum in den Bibliotheken libc.a libm.a libprintf_flt.a libprintf_min.a libscanf_flt.a oder libscanf_min.a

    Du linkst *nur* diese Bibliotheken zu einem ausführbaren elf???
    Disclaimer: none. Sue me.

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    Es heisst immer
    Code:
    #include <avr/io.h>
    Niemals \ verwenden!
    Wo linkst du das Objekt, das aus deieser C-Quelle entsteht, dazu? Ist es zum Projekt hinzugefügt, etc?
    Disclaimer: none. Sue me.

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    12.09.2005
    Beiträge
    35
    vilen danke für deine schnelle Antwort
    ich habe \ korrigiert.
    aber trotzdem bleibt gleiche Fehler...soll ich etwas im MAKEFILE änderen
    Wo linkst du das Objekt, das aus deieser C-Quelle entsteht, dazu? Ist es zum Projekt hinzugefügt, etc?

    wo soll ich das Objekt linken...? und wie ?

    danke

  8. #8
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    21.10.2005
    Ort
    Erde
    Alter
    57
    Beiträge
    1.195
    Ist die C Datei denn in Deinem Projekt drin? Wie heisst die?

  9. #9
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    Ich vermute mal, du verwendest ein automatisch von AVR-Studio erzeugtes Makefile und hast deine Dateien im Studio importiert. Der Makefile-Generator von Studio sollte eigentlich von deinen Quellen Notiz nehmen und sie im Makefile entragen.
    Disclaimer: none. Sue me.

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    12.09.2005
    Beiträge
    35
    Zitat Zitat von ogni42
    Ist die C Datei denn in Deinem Projekt drin? Wie heisst die?
    es heisst test.c

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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

Labornetzteil AliExpress