Register nach Reset nicht leer?

Gast #599806
Hi..

Mein Programmchen hat mich grade zur verzweiflung gebracht, im Simulator 
funktionierte es wunderbar doch auf meine ATmega8 machte es was es 
möchte..

Habe dann in meinem code u.A. soetwas drin:

sbrc  R4, 7
reti

D.h. der rücksprungbefehl aus dem interrupt wird ausgeführt wenn das 7. 
Bit in R4 gesetzt ist.

wenn ich nun dieses bit setze und die versorgungsspannung komplett 
wegnehme und dann wieder anschließe, passiert es dass in R4 doch wohl 
noch irgendetwas drin ist und der rücksprungbefehl ausgeführt wird 
obwohl er das an dieser stelle noch auf keinen Fall soll...

werden die register beim reset nicht zurückgesetzt? d.h. muss ich alle 
register die ich mal benutzen werde mit 0x00 vorbelegen?

mfg Paul H.
#599814
Man sollte sich generell nicht darauf verlassen, daß beim Start irgendwo 
im Speicher, oder in Registern etwas sinnvolles steht - es sei denn, es 
ist ausdrücklich in den Datenblättern spezifiziert.
Gast #599827
Danke, das hat der Funktionalität meines Programmes schon sehr 
weitergeholfen, leider funktionieren nun andere dinge so überhaupt nicht 
aber ich versuch mich weiterhin..
1
cpr        R28, R2
2
cpr        R29, R3
3
brne       timer1

Ich möchte zwei 16-bit zahlen vergleichen und wenn sie ungleich sind zu 
timer1 springen. Das müsste doch so gehen oder?

mfg Paul H.
Gast #599844
sry, war ein schreibfehler, weiß auch nich wie ich das nun wieder 
hingekrigt hab. Ja genau cp und dann cpc.. so hab ichs gemacht.. mag 
trotzdem irgendwie nicht funktionieren..
Gast #599860
>timer1 ist ein normales label.
OK, dann ist es gut.
Für mich klingt "timer1" etwas nach ISR oder ähnlichem, deshalb war ich 
etwas skeptisch.

Simon Küppers schrieb:

>cp R28, R2
>cpc R29, R3
>brne timer1

Danke für den Hinweis, mein AVR-Assembler ist momentan doch stark 
eingerostet. Ich wollte auch nur darauf hinweisen, dass zwei identische 
"compare" nicht sinnvoll sind.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 19 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.