Problem mit der lcd-routines.c Library

Gast #1083816
Lesenswert?

Hallo,

ich stehe nun mal wieder vor einem Problem. Und zwar versuche ich die 
Library lcd-routines.c aus dem Tutorial mit weiteren Libraries zu einem 
*.a Packet zusammen zu packen. Allerdings erhalte ich bei dem Versuch 
das zu kompilieren folgende Fehlerliste, deren Grund ich bereits 
ausgibiebig gesucht habe:

bascom.h:12: error: expected ')' before 'x'
bascom.h:13: error: expected declaration specifiers or '...' before 
'uint8_t'
bascom.h:13: error: expected declaration specifiers or '...' before 
'uint8_t'

bezogen auf die kopierte(!) Zeile:

void set_cursor(uint8_t x, uint8_t y);

Und zusätzlich auch noch das hier:

lcd-routines.c:16: error: 'PORTD' undeclared (first use in this 
function)
lcd-routines.c:16: error: (Each undeclared identifier is reported only 
once
lcd-routines.c:16: error: for each function it appears in.)
lcd-routines.c:16: error: 'PD4' undeclared (first use in this function)
lcd-routines.c: In function 'lcd_command':
lcd-routines.c:38: error: 'PORTD' undeclared (first use in this 
function)
lcd-routines.c:38: error: 'PD4' undeclared (first use in this function)
lcd-routines.c: In function 'lcd_enable':
lcd-routines.c:59: error: 'PORTD' undeclared (first use in this 
function)
lcd-routines.c:59: error: 'PD5' undeclared (first use in this function)
lcd-routines.c: In function 'lcd_init':
lcd-routines.c:71: error: 'DDRD' undeclared (first use in this function)
lcd-routines.c:71: error: 'PD4' undeclared (first use in this function)
lcd-routines.c:71: error: 'PD5' undeclared (first use in this function)
lcd-routines.c:76: error: 'PORTD' undeclared (first use in this 
function)
avr-gcc: bconfig.map,--cref: No such file or directory
make.exe: *** [lcd-routines] Error 1


Die relevanten Files anbei

Vielen Dank schon mal vorab

Marcel P.
Angehängte Dateien:
Persönliche Seite #1083835
Lesenswert?

Ordne bascom.h mal um:

#define F_CPU ... ganz an den Anfang.

Anm.: Und du solltest F_CPU nur neu definieren, falls es nicht in der 
IDE oder in der Kommandozeile vom make oder avr-gcc definiert ist. Das 
gibt aber noch ein paar Grübelstunden, wenn du eine Binärlibrary (*.a 
Packet) machst und F_CPU dem User flexibel lassen willst.

Dann das allgemeine

#include <avr/io.h> vor die Funktionsprototypen. Für die neuen Typen 
(uint8_t etc.) brauchst du weitere Includedateien.

Anm.: Hier auch überlegen: Die Binärlibrary ist dann nur für einen AVR 
übersetzt/gültig!

Über beide Anmerkungen kann man eventuell hinwegsehen, wenn es um eine 
ganz spezielle Hardware z.B. Robot o-ä. geht.
Persönliche Seite #1084211
Lesenswert?

Und Antwort schon ergrübelt? Kleiner Tipp: Welche Datei betreffen die 
ersten Fehler? Korrigiere diese Fehler auch als erstes und zwar mit den 
Tipps oben. Du brauchst eine weitere Includedatei für die typedefs von 
uint8_t und Kollegen! Dann schau noch mal, was der Compiler zu 
lcd-routines.c meint, wenn das verbesserte bascom.h includiert wird.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren