Forum: Compiler & IDEs STRINGS aus dem FLASH aufs LCD


von Otto Richter (Gast)


Lesenswert?

Hallo da draußen,

ich möchte strings aus dem FLASH auf das LCD geben. Aus dem RAM heraus
läuft es. Ich verwende das Programm von Peter Fleury mit einigen
Anpassungen.

Wenn ich den Code so schreibe, wie er im AVR-Tutorial steht, bekomme
ich folgende Fehlermeldung vom gcc:

../lcd.c:71: undefined reference to `PRG_RDB'.

Das bezieht sich auf folgende function:

/***************************************************/
/* schreibt den string aus dem FLASH ins Display   */
/*  input:  string to wtite         */
/***************************************************/

void lcd_puts_p ( const char *progmem_s )
{
    register char c;

    while ( (c = PRG_RDB(progmem_s++)) ) // gibt Fehlermeldung
    { lcd_putc(c); }
}

und hier mein Code:

#include <avr/io.h>
#include <avr/pgmspace.h>
#include <string.h>
#include "lcd.h"   // von Peter Fleury, angepaßt

...
char StringImFlash [ ] PROGMEM = "Erwin Lindemann" ;
lcd_puts_p ( StringImFlash ) ;
...

Was mache ich falsch ?

Danke,

Otto

von johnny.m (Gast)


Lesenswert?

Hallo da drinnen,

> undefined reference to `PRG_RDB'

heißt, dass das Makro PRG_RDB nicht definiert ist. Schau mal in der
Header-Datei pgmspace.h nach, ob das überhaupt so heißt und wenn nicht,
wie es richtig heißt...

von Reiner (Gast)


Lesenswert?

Hallo,

Schau mal ins AVR-libc User Manual!

Suche nach pgm_read (_byte,_word ....) (EEPROM handling)

Reiner

von Otto Richter (Gast)


Lesenswert?

für alle, die es intessiert:

mein Fehler war, dass ich die neuste WINAVR-Software habe, aber mit
einer "alten" LCD-Software von Peter Fleury gearbeitet habe. Neuste
Software von P:F 'runter geladen, dann ging'S.

Vielen Dank an alle, die sich Gedanken gemacht haben !

Otto

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.