ATmega168: Fehler nach Power-Up

#1910168
Lesenswert?

Hallo zusammen,

ich habe ein Problem mit meinem Programm/Hardware und bin ein wenig 
ratlos, vielleicht kann mir ja jemand helfen.

Ich habe ein Atmega168 mit Rtc, Display und CAN-Kommunikation aufgebaut. 
Mein Programm funktioniert auch soweit wunderbar. Allerdings habe ich 
einen sonderbaren Fehler, wenn ich die Schaltung vom Netz trenne und 
nach ca. 10 Sekunden sie wieder versorge (Power-Up). Ein Teil der 
Funktionalität geht problemlos aber beim Darstellen einer Variable auf 
dem Display erscheinen nur Hyroglyphen...
Es scheint so als wurde durch den Power-Up irgendwelche variablen oder 
Adressen zerschossen. Kann das sein?
Am Display alleine liegt es nicht, denn andere Werte werden angezeigt,

Wenn ich das gleiche Programm dann einspiele geht es problemlos. Reset 
am Controller geht auch. Aber nach dem Power-Up hilft nicht mal mehr ein 
Reset, also muss ich immer neu einspielen...Echt komisch.

Hat jemand ein Tip für mich woran es liegen könnte? Was ist der 
Unterschied zwischen Reset und Power-Up?
(Firma: TravelRec.) Persönliche Seite #1910251
Lesenswert?

Das liegt am Aufwecktiming. Das Display darf frühestens 200ms nach 
erfolgreichem internen RESET mit Befehlen angesprochen werden. Kommt der 
Controller früher als das Display aus der Hüfte, versackt die Init des 
Displays. Deshalb geht es auch, wenn die Schaltung an bleibt und das 
Programm neu geladen wird. Ein verlängerter RESET des Controllers beim 
Eingeschalten der Versorgung würde es wahrscheinlich auch tun.
Gast #1910271
Lesenswert?

Hi

>Das liegt am Aufwecktiming. Das Display darf frühestens 200ms nach
>erfolgreichem internen RESET mit Befehlen angesprochen werden.

>Ein Teil der Funktionalität geht problemlos aber beim Darstellen einer
>Variable auf dem Display erscheinen nur Hyroglyphen...

Das sieht aber mehr nach einer fehlerhaften Initialisierung der 
Variablen aus. Ein fehlerhaft initialisiertes Display erzeugt meist noch 
nicht einmal Hieroglyphen.

MfG Spess
Gast #1910292
Lesenswert?

Hi

>Aber warum geht es nach dem Flashen und nicht mehr nach dem Power-Up?

Weil bei bestehender Stromversorgung der RAM-Inhalt nicht verändert 
wird. Bei einem Power-Up ist er RAM-Inhalt zufällig.

MfG Spess
#1910449
Lesenswert?

Hagen L. schrieb:
> Habe die globalen Strukturen als statisch definiert. Dadurch werden sie
> im Ram priorisiert und landen weiter vorne.
>
> echt doofer Fehler.

Nö.
Der Fehler ist, daß Du Deinen Fehler noch nicht gefunden hast.

Durch das Ändern der Speicheraufteilung kann man keinen Fehler 
beseitigen!
Du hast den Fehler nur an eine andere Stelle verschoben, wo er 
vielleicht (noch) nicht auffällt.

Einem fehlerfreien Programm ist es egal, wo die Variablen stehen, SRAM 
bleibt SRAM.


Peter

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren