Forum: Mikrocontroller und Digitale Elektronik SREG-Register


von peter (Gast)


Lesenswert?

Was ist ein statusregister beim avr-controller?
Wie verzweigt man Bedingungen darauf?

von Marc (gierig) Benutzerseite


Lesenswert?

peter schrieb:
> Was ist ein statusregister beim avr-controller?
> Wie verzweigt man Bedingungen darauf?

http://www.mikrocontroller.net/articles/AVR-Tutorial:_Vergleiche

Da steht recht genau beschrieben was das SREG ist und
wie und warum man es so gerne benutzt.

Weitere infomationen findest du dann im Datenblatt.

von Alexander L. (lippi2000)


Lesenswert?

Im Datenblatt bzw. Assembler-Befehlssatz des AVR findest du alle Befehle 
und wie diese das SREG verändern. z.B. Subtraktion a-b; wenn b>a dann 
ist ergebnis negativ --> N-Flag wird automatisch gesetzt. Daher kann 
sich das SREG nach jedem Befehl ändern. Explizite Vergleiche sind mit 
"cmp" möglich. Einige Befehle nutzen nun auch die aktuellen Flags des 
SREG. Größte Bedeutung haben wohl die Sprungbefehle "branch if ???". Auf 
obiges Beispiel a-b mit b>a haben wir nach dem Befehl "sub b,a" das 
N-Flag gesetzt. Nun könntest du dieses auswerten in dem du brne xxx 
(sprung bei negativ zur Marke xxx) verwendest. Andere Beispiele wären: 
adc b,a (addiere a auf b mit carry bit)

So ungefähr. Also bitte ASM Tutorial lesen und mal in den 
Assembler-Befehlssatz schauen.

von Gerhard (Gast)


Lesenswert?

brne = branch if not equal
brlt = branch if less than zero, signed

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.