Ich kenne deine lcd-rotuines.h nicht, aber ich gehe stark davon aus,
dass
lcd_string
als Parameter einen String aus dem Progmem erwartet, du aber mit
lcd_string( Buffer );
einen Array übergibst. Hier wundert es mich, dass der Compiler nicht
meckert, denn normalerweise hätte zumindest ein Zeiger übergeben werden
müssen ...
Du brauchst also fuer die Ausgabe eines Strings im Ram eine
entstprechende Funktion !
Wenn es in lcd-routines.h etwas in der Art wie:
void lcd_putchar(char ch)
gibt (so in der Art halt), dann lässt sich eine Ausgaberoutine leicht
selbst implementieren.
void lcd_ramstring(char *c)
{
while (*c)
{
lcd_putchar(*c++);
}
}
Der Aufruf in deinem Programm würde dann erfolgen mit:
lcd_ramstring(&Buffer[0]);
Im übrigen:
Du reservierst füf <Buffer> 5 Bytes. Ein Integer kann maximal den Wert
65535 annehmen (und ist somit 5 stellig). Ein abschließendes Zero Byte
(als Endekennung des Strings) wird bei <itoa> automatisch mit angehängt,
sodass ein Ergebnis im schlimmen Fall 6 Bytes Speicher benötigt !
Gruß am Morgen,
Ralph