Forum: Compiler & IDEs P.FLEURY's lcd compiliert mit Fehlermeldeung


von Otto Richter (Gast)


Lesenswert?

Hallo da draußen,

bin in C nicht wirklich bewandert, aber ambitioniert. Ich möchte
Strings aus dem FLASH auf ein LCD ausgeben (aus dem RAM funktioniert's
gut).

Die Definition des strings mache ich gemäß AVR-gcc-Tutorial ( das
Tutorial ist wirklich gut ! ).

Das Ausgeben auf das LCD möchte ich mit

lcd_puts_p ( const char *progmem_s )

aus P.F's Programm machen. ...und bekomme immer die Fehlermeldung:

../lcd.c:94: Warnung: implizite Deklaration der Funktion »PRG_RDB«

Ich finde auch in pgmspace.h keinen Hinweis, der gcc hat schon recht,
aber was mache ich falsch ?

Danke für die Hinweise ,

Otto

von Felix J. (feejai)


Lesenswert?

Hast du die lcd.c im Makefile eingebunden?

von Otto Richter (Gast)


Lesenswert?

Hi Felix,

ich arbeite mit AVR Studio 4.12. Da muss man nicht explizit ein
makefile schreiben, sondern das Studio macht das. Ich habe aber 'mal
ein makefile erzeugen lassen und da sieht man, dass lcd.c eingebunden
und lcd.o gelinkt wird.

Das LCD funktioniert ja auch, abgesehen davon, dass ich lcd_init()
immer 2 mal an das Display schicken muss, damit es richtig arbeitet,
keine Ahnung, warum.

Danke für Deine Mühe,

Otto

von Peter (Gast)


Lesenswert?

Timingprobleme...

von Felix J. (feejai)


Lesenswert?

Ahja, dann sind es wahrscheinlich Probleme mit dem Displaytiming. Du
musst die CPU-Frequenz reichtig einstellen. Dazu findest du etwas in
der Art: #define CPU_Frequency 8000000UL. dies musst du korrigieren.

von Uwe Nagel (Gast)


Lesenswert?

Das Makro PRG_RDB() ist veraltet und sollte nicht mehr verwendet
werden.
Probier mal in der lcd.c dieses Makro durch pgm_read_byte() zu
ersetzen.
Hängt aber von der Version der avr_libc und der lcd-Bibliothek ab.

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
Noch kein Account? Hier anmelden.