- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 5 von 5

Thema: Fehler beim kompilieren von LCD-Programmen

  1. #1

    Fehler beim kompilieren von LCD-Programmen

    Anzeige

    E-Bike
    Hallo

    Ich versuche gerade, mein Display für den Asuro selbst zu programmieren.
    Beim kompilieren erhalte ich folgende Fehler:

    Code:
    > "make" 
    set -e; avr-gcc -MM -mmcu=atmega8 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-ahlms=i2c.lst i2c.c \
    	| sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > i2c.d; \
    	[ -s i2c.d ] || rm -f i2c.d
    -------- begin --------
    avr-gcc --version
    avr-gcc (WinAVR 20080610) 4.3.0
    Copyright (C) 2008 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=i2c.lst i2c.c -o i2c.o
    i2c.c:41: warning: function definition has qualified void return type
    i2c.c: In function 'i2c_init':
    i2c.c:52: warning: implicit declaration of function 'cbi'
    i2c.c: In function 'i2c_start':
    i2c.c:64: warning: implicit declaration of function 'sbi'
    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 i2c.o pcf8574.o lcd.o   --output test.elf -Wl,-Map=test.map,--cref -lm
    i2c.o: In function `i2c_read':
    C:\ASURO_src\FirstTry/i2c.c:150: undefined reference to `sbi'
    C:\ASURO_src\FirstTry/i2c.c:151: undefined reference to `cbi'
    C:\ASURO_src\FirstTry/i2c.c:154: undefined reference to `cbi'
    C:\ASURO_src\FirstTry/i2c.c:160: undefined reference to `sbi'
    C:\ASURO_src\FirstTry/i2c.c:162: undefined reference to `cbi'
    C:\ASURO_src\FirstTry/i2c.c:163: undefined reference to `sbi'
    C:\ASURO_src\FirstTry/i2c.c:166: undefined reference to `cbi'
    i2c.o: In function `i2c_write':
    C:\ASURO_src\FirstTry/i2c.c:115: undefined reference to `sbi'
    C:\ASURO_src\FirstTry/i2c.c:117: undefined reference to `cbi'
    C:\ASURO_src\FirstTry/i2c.c:118: undefined reference to `sbi'
    C:\ASURO_src\FirstTry/i2c.c:121: undefined reference to `cbi'
    C:\ASURO_src\FirstTry/i2c.c:126: undefined reference to `sbi'
    C:\ASURO_src\FirstTry/i2c.c:127: undefined reference to `cbi'
    C:\ASURO_src\FirstTry/i2c.c:130: undefined reference to `cbi'
    i2c.o: In function `i2c_start':
    C:\ASURO_src\FirstTry/i2c.c:64: undefined reference to `sbi'
    i2c.o: In function `i2c_stop':
    C:\ASURO_src\FirstTry/i2c.c:97: undefined reference to `sbi'
    C:\ASURO_src\FirstTry/i2c.c:98: undefined reference to `sbi'
    C:\ASURO_src\FirstTry/i2c.c:100: undefined reference to `cbi'
    C:\ASURO_src\FirstTry/i2c.c:102: undefined reference to `cbi'
    i2c.o: In function `i2c_rep_start':
    C:\ASURO_src\FirstTry/i2c.c:77: undefined reference to `sbi'
    C:\ASURO_src\FirstTry/i2c.c:79: undefined reference to `cbi'
    C:\ASURO_src\FirstTry/i2c.c:81: undefined reference to `cbi'
    C:\ASURO_src\FirstTry/i2c.c:83: undefined reference to `sbi'
    i2c.o: In function `i2c_init':
    C:\ASURO_src\FirstTry/i2c.c:51: undefined reference to `cbi'
    C:\ASURO_src\FirstTry/i2c.c:53: undefined reference to `cbi'
    C:\ASURO_src\FirstTry/i2c.c:54: undefined reference to `cbi'
    C:\ASURO_src\FirstTry/i2c.c:55: undefined reference to `cbi'
    lcd.o: In function `lcd_puts_p':
    C:\ASURO_src\FirstTry/lcd.c:173: undefined reference to `PRG_RDB'
    make: *** [test.elf] Error 1
    
    > Process Exit Code: 2
    > Time Taken: 00:01

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    38
    Beiträge
    4.255
    Da scheint irgendeine nötige Datei nicht inkludiert zu sein... und was steht in Zeile 41?

  3. #3
    Hier die i2c.c Datei
    Angehängte Dateien Angehängte Dateien
    • Dateityp: c i2c.c (5,7 KB, 4x aufgerufen)

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    38
    Beiträge
    4.255
    i2c.c:41: warning: function definition has qualified void return type
    Heißt: Die Funktion gibt void zurück, dieses void iist bei dir aber noch mit einem Qualifier als volatile gekennzeichnet. Das darf eigentlich nicht sein...

    Und die Funktionen sbi und cbi sind bloß veraltet. Entweder du ersetzt sie duch die aktuelle PORT |= (1<<BIT) - Schreibweise, oder du inkludierst noch #include <compat/deprected.h>

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    29.05.2005
    Beiträge
    1.018
    Hallo Vistakiller,

    erst einmal willkommen im Forum.

    Keine Ahnung, wo du den Source her hast.
    Ich hänge dir mal die beiden (halbwegs) aktuellen Dateien i2c.c und i2c.h aus der Asuro-LIB an.
    ACHTUNG: Die Funktionsnamen sind anders. (Deshalb bin ich mir auch relativ sicher, dass deine Datei nicht aus einer alten Asuro-LIB kommt.)

    Viel Erfolg mit dem Asuro.

    Gruß Sternthaler
    Angehängte Dateien Angehängte Dateien
    Lieber Asuro programieren als arbeiten gehen.

Berechtigungen

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

12V Akku bauen