Woran liegt es, daß ein Atmega8 abstürzt, wenn das RS232 Kabel länger
entfernt wird?
Programmiert ist der Chip mit Bascom. Es wird 1x pro Sekunde über die
UART Schnittstelle etwas gesendet. Ist der Chip am RS232 Port vom
Computer angeschlossen, funktioniert er Tagelang. Wird er nur wenige
Minuten abgezogen, geht er danach auch noch. Wird er aber für einige
Stunden abgezogen, geht danach gar nichts mehr wie es soll.
Manchmal kommt nur noch Unsinn über RS232 rein. Heute war das Problem,
daß der Chip zwar noch lief, aber einzelne Unterfunktionen scheinbar
nicht aufgerufen wurden.
Beispiel:
1 | Temperatur = 0
|
2 | print Temperatur
|
3 | Temperatur = Messe_temperatur(id) // Aktuell Raumtemperatur
|
4 | print Temperatur
|
Hier wurde die Funktion "Messe_temperatur" nur manchmal korrekt
ausgeführt, manchmal wurde sie komplett übersprungen. Am Computer wurde
zwei mal die "0" gesendet. Obwohl die Funktion 20° zurückgeben müsste.
Je nachdem, welche Zahl bei "id" verwendet wird, ging es mal und mal
nicht. (Eine schleife zählt von 1 bis 5).
Wenn dann kurz der Strom weg genommen wird, geht der Chip wieder.
Woran könnte so ein Fehlverhalten liegen? Versucht Bascom die Daten
irgendwie zu Puffern, wenn kein Kabel angeschlossen ist, und dieser
Puffer spinnt? Ich habe in Bascom die RS232 Schnittstelle nicht
gesondert aktiviert, ich verwende aktuell einfach Print.