Hallo, Ich hab eine Frage und zwar ich möchte ein Bit in einem definierten Register setzen aber das avr Studio zeigt mir einen Fehler. Tim1OFISR: sbi DlyZust, up ldi Temp1, Bit2 OUT TCCR1B, Temp1 clr Temp1 reti invalid number -> DlyZust, up kann jemand mir helpen:-)
Dieter schrieb: > invalid number Sagt's doch schon. Statt "DlyZust" muss dort eine Zahl (bit-nummer) stehen.
?? Aber ich möchte in diesem Register das erste Bit setzen. Ich hab so geschrieben .equ Bit1 = 0 .def DlyZust = r5 ....
Εrnst B✶ schrieb: > Dieter schrieb: >> invalid number > > Sagt's doch schon. > Statt "DlyZust" muss dort eine Zahl (bit-nummer) stehen. Sollte das nicht "statt up muss dort..." heißen?
0x42 schrieb: > Sollte das nicht "statt up muss dort..." heißen? Ja, klar. Die Bitnummer ist hinten. Und wenn DlyZust ein Alias für ein Register ist, muss es dann auch noch "SBR" statt "SBI" sein?
Ich hab das gleiche Problem gehabt : Ich möchte die ersten 2 Bits in einem defienierten Register setzen : .equ Bit0 = 0 .equ Bit1 = 1 . . .def FktOff = r16 ... .... sbi FktOff, Bit0 Ich bekomme den gleichen Fehler
aber ich will das erste Bit(up) von diesem Register "DlyZust" setzen Wie mache ich das denn ? Danke
Indem du ein paar Dinge realisierst * SBI ist für I/O Register Für normale Register, also die r.. Sachen, ist SBR gedacht Also
1 | SBI PORTB, 0 |
aber
1 | SBR r16, 0 |
* .def DlyZust = r5 Die kleiner Register (r0 bis r15, daher auch r5) sind in ihren Möglichkeiten eingeschränkt. Man kann nicht alle Operationen auf sie anwenden. * Wenn du nicht genau weißt, was ein Befehl macht und welche Nebenbedingungen es gibt, dann stell den Cursor auf den Befehl und drücke F1. Dann geht die Hilfe auf und positioniert sich gleich auf den Befehl, wo du in aller Ruhe die Details nachlesen kannst.
Karl Heinz Buchegger schrieb: > * SBI ist für I/O Register > Für normale Register, also die r.. Sachen, ist SBR gedacht > > Also
1 | SBI PORTB, 0 |
> aber
1 | SBR r16, 0 |
Allerdings ist das Zweite ein NOP. Das SBR-Äquivalent wäre
1 | SBR r16, 1<<0 |
Stefan Ernst schrieb:
1 | SBR r16, 0 |
> > Allerdings ist das Zweite ein NOP. Nicht wirklich. Im Gegensatz zu einem NOP setzt SBR=ORI Flags wie [Z]ero und [N]egative.
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.