Was ist ein statusregister beim avr-controller? Wie verzweigt man Bedingungen darauf?
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.