mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Problem mit der lcd-routines.c Library


Autor: Marcel P. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Hubert G. (hubertg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schön wenn du weist wo der Fehler liegt.
Welchen Kontroller verwendest du.
Sieht eher nach fehlenden define und deklarationen aus.
Meinte nicht define sondern include.

Autor: Marcel P. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich verdwende einen Atmega8.
Auch nach einer Umordnung erhalte ich die selben Fehlermeldungen.

MfG Marcel P.

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Umordnung allein reicht nicht. Hast du die zusätzlichen Includedateien 
drin?

Autor: Marcel P. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
im Tutorial werden doch auch keine zusätzlichen benötigt?

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Marcel P. (Gast)

>im Tutorial werden doch auch keine zusätzlichen benötigt?

Nein? Und was ist dann das?

#include <avr/io.h>
#include "lcd-routines.h"
#include <util/delay.h>

MFG
Falk

Autor: Marcel P. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und die hab ich nicht eigebunden oder was? die stehen doch in der 
lcd-routines.c drinne... grübel

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Marcel P. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmm tatsächlich kam ich jetzt doch auf die Lösung

Vielen Dank

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.