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

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.