Gast
#40513
Hallo,
sitze seit längerer Zeit an einem eigentlich einfachen Vorhaben - nur
leider kriege ich es nicht hin. :-(
Vielleicht seht ihr ja den Fehler oder habt sogar den ultimativen
Gegenvorschlag.
Die Idee:
- vier globale Variablen für die vier Zeilen meines LCDs
unsigned char line1[15]; //0..15 = 16 chars
unsigned char line2[15];
unsigned char line3[11];
unsigned char line4[11]; //0..11 = 12 chars, erste vier werden von LCD
verschluckt (ist aber anderes Problem)
- einzelne Funktionen ändern die Variablen z.B.
if(init()==1) {
strcpy(line4, "_ready_");
} else {
strcpy(line4, "_error_");
};
- Endlosschleife der main Routine ruft dann ein updatedisplay() auf
damit sich nach jedem sequentiellen Durchlauf eine komplett geänderte
Anzeige ergibt
void updatedisplay(void)
{
lcd_clrscr();
lcd_gotoxy(0,0);
lcd_print(line1);
...
- meine Printfunktion
void lcd_print(const char *string)
{
char *chr;
char buf[15];
chr = string;
while (*chr++) {
strlcat(buf, *chr, 15);
}
lcd_puts(buf);
}
Entweder sehe ich gar nichts oder aber nur Datenmüll z.B.:
J_ea__ready_y oder ähnliches.
Bin für jede Idee ausgesprochen dankbar sonst raufe ich mir noch das
letzte Haar!
Gute Nacht,
Markus