Atmega32 Grund für Reset herausfinden

Gast #2152757
Lesenswert?

Hallo! Gibt es eine Möglichkeit, per SW herauszufinden, warum ein RST 
stattgefunden hat?

für die HW fallen mir nur folgende Möglichkeiten ein:

1) Versorgung nicht konstant/sauber
2) RST-Spannung am Pin nicht konst/sauber

für die SW fallen mir nur folgende Möglichkeiten ein:

1) fehlende ISR wird vers. anzuspringen

Gibt es weitere Resetquellen? Oder gute Möglichkeiten, diese ausfindig 
zu machen?
Gast #2152865
Lesenswert?

Dieses Register hat 4 bits (0....3), die im Datenblatt nicht beschrieben 
sind. Komisch.

ABer es gib anscheinend noch ein Register, was so ähnlich heißt: MCUCSR.

Wann kommt denn ein HW-RESET zustande? Vllt wenn der µC ein einem 
Pin/Port kurzzeitig zu viel Strom treibt?
Gast #2152932
Lesenswert?

Hi

>ABer es gib anscheinend noch ein Register, was so ähnlich heißt: MCUCSR.

Entschuldige, das meinte ich.

>Wann kommt denn ein HW-RESET zustande? Vllt wenn der µC ein einem
>Pin/Port kurzzeitig zu viel Strom treibt?

Da AVRs keinen Software-Reset kennen ist alles, was den AVR in den Reset 
treibt, ein Hardware-Reset.

MfG Spess
Gast #2153031
Lesenswert?

Hi

>Ein SW-REset bei AVR:

>goto *((void**) 0);

Nein. Bei einem Reset setzt der Controller die IO-Register auf 
Default-Werte. Und das passiert hier nicht.

Vielleicht erläuterst du mal dein Problem, bevor das Rumgestochere hier 
noch weiter geht.

MfG Spess
Gast #2154311
Lesenswert?

Mein Problem ist, dass ich einen Reset bekomme, ich aber nicht weiß, 
warum. Am"Anfang" des Programms gebe ich mir den RST über die UART aus. 
Warum ein Reset kommt, ist mir nicht klar. Mit dem µC schalte ich ein 
Relais über einen Transistor. Klappt eig. Wunderbar.

Ab und an bekomme ich halt den RST. Ich hab das Gefühl, der Code hängt 
sich einfach auf. Ich nutze übrigens einen RFM12 Funktreiber hier aus 
dem Forum.
(Firma: Anscheinend Corner-Cases ;-)) #2154630
Lesenswert?

Timo P schrieb:
> Mein Problem ist, dass ich einen Reset bekomme, ich aber nicht weiß,
> warum.
...

Woher weißt Du überhaupt das ein Reset erzeugt wurde ?

Nochmal zur Erinnerung :
Ein Reset wird entweder durch die POR-Steuerung (Power On Reset ), durch 
ein Low-Signal am Reset-Pin oder durch den Watchdog hervorgerufen.

Falls es zu einem Sprung zu Adresse $0 kommt, kann man nicht von einem 
Reset im eigentlichen Sinne reden.

Also, Versorgungsspannung und Pegel am Reset-Pin aufzeichenen oder durch 
ein Fangschaltung feststellen, falls irgendwelche Pegel kurzzeitig 
unterschritten wurden.

Das der Watchdog das Problem ist, ist eher unwahrscheinlich, weil dieser 
nur aktiv ist, wenn er fehlerfrei initialisiert wurde.

Bernd_Stein
Gast #2154661
Lesenswert?

Timo P schrieb:
> Ab und an bekomme ich halt den RST. Ich hab das Gefühl, der Code hängt
> sich einfach auf. Ich nutze übrigens einen RFM12 Funktreiber hier aus
> dem Forum.

Timo P schrieb:
> Nachtrag: So, wie ich das überschaue, gibt es keinen Zeitlichen
> Zusammenhang zwischen der Relaisansteuerung und dem Reset. Dieser kommt
> eher durch die einfließenden Funkdaten. (vllt.....)

Hängt sich die Software auf oder hast du einen echten Reset und alles 
beginnt von vorne?
Wenn es mit den Funkdaten korreliert ist es vieleicht einfach ein 
Softwarefehler mit einer Endlosschleife?

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