Forum: Mikrocontroller und Digitale Elektronik Registerzustand nach Reset


von Ivan der Schrecklichste (Gast)


Lesenswert?

Hallo!

Nachdem ich ein paar Stunden mit Fehlersuche verbracht habe, habe ich
nun endlich gemerkt dass der Fehler an nicht initialisierten Registern
aus dem General Purpose Register File lag.
Leider finde ich im Datenblatt keine Infos dazu (ATMega 8, z.B. S.35ff
"System Control and Reset" od. S.10 "General Purpose Register File"
od S.49ff "I/O-Ports").
In der Artikelsammlung unter "AVR-Checkliste" steht, daß die
I/O-Register (also ab 0x20) initialisiert werden müssen, logisch, aber
auch hier hab ich nix über die Register 0-31 gefunden.
Wer weiß, wo ich was im Datenblatt dazu finden kann?

MfG
Ivanhoe

von A.K. (Gast)


Lesenswert?

Da steht nichts drin weil da nichts ist. Die werden durch Reset nicht
initialisiert.

von Ivan der Schrecklichste (Gast)


Lesenswert?

Ja, schon klar. Aber was bedeutet "nichts" ? Alle Bits auf 0?
Anscheinend nicht, sondern auf zufälligen Pegeln, nicht definiert eben.
Find dazu aber leider keine Info im Datenblatt, drum wollt ich wissen,
ob jemand vielleicht ne Seitenangabe parat hat.

Ciao
Ivanhoe

von A.K. (Gast)


Lesenswert?

Nochmal: Es gibt keine Regel! Genausowenig wie für's RAM.

von Olaf_K (Gast)


Lesenswert?

Sämtliche I/O-Register werden beim Reset automatisch auf ihren "Initial
Value" (meist Null) gesetzt, steht bei jedem einzelnen I/O-Register im
Datenblatt dabei.

General Purpose-Register wie auch der restliche freie SRAM sind dagegen
nach einem Reset undefiniert, davon würde ich generell ausgehen.
Falls sich kein Hinweis zu einer Initialisierung der Register im
Datenblatt findet (ich habs mir jetzt nicht so genau angeguckt), dann
heißt das automatisch, daß es sowas nicht gibt. Und der Inhalt einer
SRAM-Zelle ist nach dem Einschalten nunmal zufällig.

Es ist eigentlich ohnehin üblich, daß man in einem Programm jede
Variable (bzw. jedes Register) vor der Verwendung erstmal
initialisiert. Das ist auch in jeder Hochsprache so.

MfG Olaf

von Ivan der Schrecklichste (Gast)


Lesenswert?

Danke für Eure schnellen Antworten!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.