Hallo,
so ganz finde ich durch die Codeteile noch nicht durch.
Was mir beim durchschauen aufgefallen ist.
Wo wird LCD_lauftext etwas zugewiesen.
Mit
Code:
for (uint8_t i=0; i<=strlen((const char *)LCD_lauftext); i++) {
LCD_lauftext[i]=LCD_lauftext[i+1];
}
erzeugst du, wenn es dumm läuft, einen Überlauf.
Edit: Die obige Aussage von mir ist Blödsinn. Du greifst zwar ausserhalb von LCD_lauflicht zu, schreibst aber nicht.
Wird Timer2 überhaupt gestartet?
Am Anfang der Funktion rs232_open steht der Kommentar:
//alle unwichtigen interrupts beenden
Wo machst du da was?
Schieße ich auch mal ins Blaue. Passiert der Fehler auch, wenn du sei() auskommentierst?
Gruß
Jens
Lesezeichen