Verständnisproblemm, ATmega88, ext. RESET vs. BROWN-Out

Gast #1069343
Hallo Leute!

Ich habe ein Verständnisproblem bei dem Atmega 88. Es geht um den ext. 
Reset und den Brown-Out-Reset. Aus dem Datenblatt geht hervor(meiner 
Meinung nach!), dass die beiden Resetmöglichkeiten im Endeffekt das 
gleiche bewirken. (siehe Anhang :Auszug aus dem Datenblatt --- 
RESET-LOGIK).

Problem:

Nach einem ext. Reset werden alle Variablen richtig initialisiert, bzw. 
die Variablen sind nicht mit Müll gefüllt. Und das Programm läuft ohne 
Probleme weiter.
Wird allerdings ein Brown-Out-Reset ausgelöst (Die Spannung = 0V,  die 
int. Kapazitäten werden entladen!!!) steht nach der Initialisierung in 
den Variablen, die nicht explizit auf einen bestimmten Wert gesetzt 
wurden, nur Müll. Und das führt natürlich zu unerwünschten Effekten.

Ok, man könnte sagen die Variablen sollten immer einen Default-Wert 
haben.
Trotzdem bleibt es für mich erst mal ein Rätsel warum die RESET – 
Varianten sich so unterscheiden!?!
Angehängte Dateien:
Persönliche Seite
Sergej wrote:

> Wird allerdings ein Brown-Out-Reset ausgelöst (Die Spannung = 0V,  die
> int. Kapazitäten werden entladen!!!) steht nach der Initialisierung in
> den Variablen, die nicht explizit auf einen bestimmten Wert gesetzt
> wurden, nur Müll.

Ja, und? Variablen, die Du nicht initialisiert hast sind undefiniert. 
Das ist auf anderen Plattformen genau so. Und die Resets unterscheiden 
sich konzeptionell nicht (bzw. es wuerde mich sehr schwer wundern).
Gast
Hi

Wenn du dir dein Bild ansiehst, wirst du bemerken, das alle Resetquellen 
in einer Leitung enden. Also ist die Wirkung identisch. Lediglich im 
MCUSR kann man die Resetquelle erkennen.
Die IO-Register werden beim RESET auf einen Defaultwert (siehe 
Datenblatt) gesetzt. Der µC kennt keine Variablen. Nach dem Reset fängt 
er einfach von vorn an. Die Veriablen des Programms werden von dem 
selber initialisiert.

> die nicht explizit auf einen bestimmten Wert gesetzt
>wurden, nur Müll. Und das führt natürlich zu unerwünschten Effekten.

Das ist Unsinn. Der Controller verhält sich nach jedem Reset identisch. 
Nur wenn man das MCUS-Register auswertet kann eine unterschiedliche 
Reaktion erzeugt werden.

MfG Spess
Gast
Beim Reset per reset-Pin wird hier anscheinend die Betriebsspannung 
nicht oder nur kurz auf Null gebracht. Die Register zund Speicher 
behalten da eben noch ihre Information.
Beim Brown-Out-Reset geht aber die Spannung ganz runter und da verlieren 
die Speicher / Register ihren Inhalt.
Wobei das SRAM den Inhalt auch noch bei weitaus geringerer Spannung 
beibehält, als der Brownout-Level suggeriert.

Brownout heisst nur, dass der betreffende Spannungspegel unterschritten 
wurde. Wie weit tiefer das war geht daraus nicht hervor, aber wenns zu 
niedrig wird, dann wird abschliessend ein Power-Up Reset draus.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.