Gast
#363169
Hallo,
ich habe im Flash ein Array angelegt
char device_s [] PROGMEM = "**Blabla** ";
Um Zeichen auf einem Display auzugeben habe ich folgende Funktion:
void displayausg (char *txt,byte dispadr,byte length, byte from_flash)
{
byte i;
command2lcd (dispadr);
for (i=0;i<length;i++)
{
if (from_flash)
{
data2lcd (pgm_read_byte(txt));
}
else
{
data2lcd (*txt);
txt++;
}
}
}
Da ich dieser Funktion auch Texte übergebe, die nicht im Flash liegen,
mache ich die Unterscheidung durch die Übergabe "from_flash"
Wenn ich nun die Funktion aufrufe
displayausg ( device_s,0x80,16,1 );
erhalte ich die Warnung:
Warnung: Verarbeiten des Argumentes 1 von »displayausg« streicht
Qualifizierer von Zeiger-Zieltypen.
Dazu folgende Fragen
1. Will mir der Compiler damit sagen, dass ich dafür sorgen muß, in
welcher Speicherklasse der Zieltyp steht (Was ich ja auch mache)?
2. Wie kann ich die Warnung abstellen?
Mit einem Cast geht es, weiss aber nicht wieso.
displayausg ((char*) device_s,0x80,16,1 );
Viele Grüße
Volker