Liebe alle,
ich mach gerade ein bisschen ASM/C (wegen Arduino-Zeugs) und stolpere
über diese Notationen "0<<irgendwas"
Auszug aus dem Datenblatt des Tiny85, Kapitel 8.4.2 ASM Code example:
1 | ...
|
2 | ; Write logical one to WDCE and WDE
|
3 | ; Keep old prescaler setting to prevent unintentional Watchdog Reset
|
4 | in
|
5 | r16, WDTCR
|
6 | ori
|
7 | r16, (1<<WDCE)|(1<<WDE)
|
8 | out
|
9 | WDTCR, r16
|
10 | ; Turn off WDT
|
11 | ldi
|
12 | r16, (0<<WDE)
|
13 | out
|
14 | WDTCR, r16
|
15 | ret
|
Wie sollen diese letzten 4 Zeilen funktionieren um ein einzelnes Bit auf
0 zu setzen? Also was bedeutet "ldi r16, (0<<WDE)" ? Ist das ein Fehler
im Datenblatt oder habe ich es nicht verstanden? Denn eigentlich sollen
die oben mühsam erhaltenen prescaler-Bits ja weiterhin erhalten bleiben,
oder?