PIC/assembly,在寄存器之间复制并旋转 10 位
PIC/assembly, copy and rotate 10-bits between registers
PIC18F252
在汇编中:
从 A/D 转换,我在结果寄存器 ADRESH 和 ADRESL 中有一个左调整或右调整的 10 位结果。
将这 10 位从第 5 位到 TMR0L 第 4 位放入 TMR0H 的聪明方法是什么?
更具体地说,前面有两个 11:
XXXX XXXX XX00 0000 ADRESH ADRESL =>
11XX XXXX XXXX 0000 TMR0H TMR0L
未测试...
bsf STATUS, _C ;Set Carry
rrcf ADRESH, f ;Do 16 bit shift right of ADRES
rrcf ADRESL, f
bsf STATUS, _C ;Set Carry
rrcf ADRESH, w ;Do high byte shift right
movwf TMR0H ;Copy WREG to destination
rrcf ADRESL, w ;Do low byte shift right
movwf TMR0L ;Copy WREG to destination
另请阅读数据表如何更新 TMR0:10.4 16 位模式定时器读取和
写
PIC18F252
在汇编中:
从 A/D 转换,我在结果寄存器 ADRESH 和 ADRESL 中有一个左调整或右调整的 10 位结果。
将这 10 位从第 5 位到 TMR0L 第 4 位放入 TMR0H 的聪明方法是什么?
更具体地说,前面有两个 11:
XXXX XXXX XX00 0000 ADRESH ADRESL =>
11XX XXXX XXXX 0000 TMR0H TMR0L
未测试...
bsf STATUS, _C ;Set Carry
rrcf ADRESH, f ;Do 16 bit shift right of ADRES
rrcf ADRESL, f
bsf STATUS, _C ;Set Carry
rrcf ADRESH, w ;Do high byte shift right
movwf TMR0H ;Copy WREG to destination
rrcf ADRESL, w ;Do low byte shift right
movwf TMR0L ;Copy WREG to destination
另请阅读数据表如何更新 TMR0:10.4 16 位模式定时器读取和 写