- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 2 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 11 bis 20 von 32

Thema: bin zu doof für WinAVR...

  1. #11
    Gast
    Anzeige

    LiFePo4 Akku selber bauen - Video
    #include "simple_delayroutinen.c"

    Wenn die C-Datei und deine blinker.c im selben Verzeichnis liegen, wenn du das Compilieren startest, dann dürfte keine Fehlermeldung kommen.
    Gib mal ne Info dazu! Makefile Anpassungen sind dafür nicht nötig, gesetzt dem Fall du verwendest bspw. das bei WinAVR mitgelieferte Beispielmakefile.

  2. #12
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    22.11.2003
    Beiträge
    991
    Zitat Zitat von Anonymous
    Makefile Anpassungen sind dafür nicht nötig, gesetzt dem Fall du verwendest bspw. das bei WinAVR mitgelieferte Beispielmakefile.
    Doch. Es muss dem Compiler mitgeteilt werden das er noch die Datei "simple_delayroutinen.c" verwenden soll. Man müsste das Makefile also folgendermaßen ergänzen:
    Code:
    # Target file name (without extension).
    TARGET = blinker
    
    # List C source files here. (C dependencies are automatically generated.)
    SRC = $(TARGET).c simple_delayroutinen.c
    Alle weiteren .c-Dateien einfach da eintragen....

    MfG Kjion

  3. #13
    Gast
    Tja, dann ist es wohl immer Glück bei mir gewesen, dass es auch ohne diese Eintragungen im Makefile funktioniert hat. Das zerlegen der Bibliotheken in C-Dateien und H-Dateien musste ich erst anfangen, als diese auch untereinander aufeinander zugreifen sollten.
    Ansonsten hat es immer auch so funktioniert.

  4. #14
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    16.03.2004
    Beiträge
    259
    ok hab jetz die simple_delayroutinen.c (die hatte ich garnich am rechner )

    jetzt kommt aber immernoch:
    avr-gcc -c -mmcu=atmega8 -I. -gstabs -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=blinker.lst -std=gnu99 -Wp,-M,-MP,-MT,blinker.o,-MF,.dep/blinker.o.d blinker.c -o blinker.o
    make.exe: *** No rule to make target `SRC', needed by `blinker.elf'. Stop.

    wie bekomm ich das weg?!

    MfG
    Grind

  5. #15
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    22.11.2003
    Beiträge
    991
    Poste doch mal den gesamten Quellcode den du benutzt ( auch das Makefile )...

    MfG Kjion

  6. #16
    Neuer Benutzer Öfters hier
    Registriert seit
    21.07.2004
    Ort
    Luxemburg
    Beiträge
    12
    Zitat Zitat von grind
    ok hab jetz die simple_delayroutinen.c (die hatte ich garnich am rechner )

    jetzt kommt aber immernoch:
    avr-gcc -c -mmcu=atmega8 -I. -gstabs -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=blinker.lst -std=gnu99 -Wp,-M,-MP,-MT,blinker.o,-MF,.dep/blinker.o.d blinker.c -o blinker.o
    make.exe: *** No rule to make target `SRC', needed by `blinker.elf'. Stop.

    wie bekomm ich das weg?!

    MfG
    Grind
    Das sieht so aus wie wenn ein $ vor dem SRC im Makefile fehlt. Ich kenne das Makefile nicht aber oft wird SRC als Variable im Makefile benutzt um die jeweilige Quelldatei anzugeben. Um den
    Wert der Variable im Makefile zu bekommen muss dann ein $SRC benutzt werden

  7. #17
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    16.03.2004
    Beiträge
    259
    MakeFile (nur mal die wichtigsten Zeilen):

    # MCU name
    MCU = atmega8

    # Output format. (can be srec, ihex, binary)
    FORMAT = ihex

    # Target file name (without extension).
    TARGET = blinker


    # List C source files here. (C dependencies are automatically generated.)
    SRC = $(TARGET).c simple_delayroutinen.c


    Source:

    #include <avr/io.h> //Zugriff auf IO's des Controllers
    #include <simple_delayroutinen.c>

    int main (void) {
    DDRB = 0xff; //PB0...PB7 als Ausgänge definieren
    for (;;) { //Endlosschleife
    PORTB = 0x00; //LEDs leuchten
    delay_ms (750); //warte
    PORTB = 0xff; //LEDs aus
    delay_ms (750);
    }}


    Fehler:

    > "make.exe" all

    -------- begin --------
    avr-gcc (GCC) 3.4.1
    Copyright (C) 2004 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.


    Linking: blinker.elf
    avr-gcc -mmcu=atmega8 -I. -gstabs -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=blinker.o -std=gnu99 -Wp,-M,-MP,-MT,blinker.o,-MF,.dep/blinker.elf.d blinker.o simple_delayroutinen.o --output blinker.elf -Wl,-Map=blinker.map,--cref -lm
    simple_delayroutinen.o(.text+0x0): In function `delay_us':
    simple_delayroutinen.c:9: multiple definition of `delay_us'
    blinker.o(.text+0x0):./simple_delayroutinen.c:9: first defined here
    simple_delayroutinen.o(.text+0xa): In function `delay_ms':
    simple_delayroutinen.c:14: multiple definition of `delay_ms'
    blinker.o(.text+0xa):./simple_delayroutinen.c:14: first defined here
    make.exe: *** [blinker.elf] Error 1

    > Process Exit Code: 2



    Oh man ich muss schon sagen ihr seid mächtig geduldig mir da so durch zu helfen ;) danke auf jeden fall viellmals!

    Grind

  8. #18
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    16.03.2004
    Beiträge
    259
    was mir grad einfällt ich include die io.h ausm AVR verzeichnis aber in meinem projekt ordner gibts kein verzeichnis das AVR heisst... weiss der wo er die datei findet?!

    hab jetzt auf jeden fall auf die io.h verwiesen wo sie wirklich ist.

  9. #19
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    22.11.2003
    Beiträge
    991
    Die "io.h" lädt er aus dem Standartverzeichniss des Compilers, da wo auch die ganzen anderen Bibiliotheken liegen. Das "#include <avr/io.h>" stimmt also schon und sollte auch so gelassen werden...

    Deshalb solltest du auch --> #include "simple_delayroutinen.c" ( mit Anführungszeichen ) schreiben, da der Compiler dann zuerst in deinem Projektverzeichniss sucht.

    So wie es aussieht liegt der Fehler in der simple_delayroutinen.c. Von daher meinte ich ja auch allen Quellcode, also auch den davon Du solltest übrigens den Code Tag ( [ code ] bzw. [ /code ], nur halt zusammengeschrieben ) benutzen.

    Oh man ich muss schon sagen ihr seid mächtig geduldig mir da so durch zu helfen danke auf jeden fall viellmals!
    kein Problem

    MfG Kjion

  10. #20
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    16.03.2004
    Beiträge
    259
    also wenn ich das simple_delayroutine in anführungszeichen schreibe ändert sich der fehler!

    jetzt:
    Code:
    > "make.exe" all
    
    -------- begin --------
    avr-gcc (GCC) 3.4.1
    Copyright (C) 2004 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.
    
    make.exe: *** No rule to make target `"simple_delayroutinen.c"', needed by `blinker.elf'.  Stop.
    
    > Process Exit Code: 2
    und hier der inhalt der datei:
    Code:
    /***********************************************************
    	Simple Delayroutinen für den Atmega 8
    	- empfohlene Taktfrequenz ist 4 MHz
    	- prinzipiell ist die Verwendung der integrierten Timer
    	  eine wesentlich bessere, genauere und elegantere Lsg.
    ***********************************************************/
    void delay_us(unsigned short us) {
        while ( us ) us--;}
    void delay_ms(unsigned short ms) {
        unsigned short outer1, outer2;
        outer1 = 200;    while (outer1) {
        outer2 = 500;        while (outer2) {
                while ( ms ) ms--;
                outer2--;
            }        outer1--;    }}
    also die simple_delayroutinen.c is ja auch nur von ner internetseite runtergeladen.

    Grind

    P.s. wusste bis grad eben nicht wie man so ne "Code-Box" erstellt danke dafür

Seite 2 von 4 ErsteErste 1234 LetzteLetzte

Berechtigungen

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

12V Akku bauen