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.
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.
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.
Ich verdwende einen Atmega8. Auch nach einer Umordnung erhalte ich die selben Fehlermeldungen. MfG Marcel P.
Umordnung allein reicht nicht. Hast du die zusätzlichen Includedateien drin?
im Tutorial werden doch auch keine zusätzlichen benötigt?
@ Marcel P. (Gast)
>im Tutorial werden doch auch keine zusätzlichen benötigt?
Nein? Und was ist dann das?
1 | #include <avr/io.h> |
2 | #include "lcd-routines.h" |
3 | #include <util/delay.h> |
MFG Falk
und die hab ich nicht eigebunden oder was? die stehen doch in der lcd-routines.c drinne... grübel
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.
hmm tatsächlich kam ich jetzt doch auf die Lösung Vielen Dank
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.