ATmega168: Fehler nach Power-Up

OP #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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.