Assembly PIC/组装,在寄存器之间复制和旋转10位
PIC18F252 在汇编中: 从A/D转换中,我在结果寄存器ADRESH和ADRESL处得到了一个10位左右调整的结果 将这10位从第5位到第4位转换到TMR0H的聪明方法是什么 更具体地说,前面有两个11:Assembly PIC/组装,在寄存器之间复制和旋转10位,assembly,microcontroller,pic,bits,Assembly,Microcontroller,Pic,Bits,PIC18F252 在汇编中: 从A/D转换中,我在结果寄存器ADRESH和ADRESL处得到了一个10位左右调整的结果 将这10位从第5位到第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 bi
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位模式定时器读取和
写得很好。测试:工作!(除了:与调试器“MPLAB SIM”一起使用MPLAB 8.92。TMR0H未在监视列表中更新,但我认为这一定是模拟器的限制/缺陷(?)@bretddog:是可能是缺陷。