2
之间10位PIC18F252PIC /组件,复制和旋转寄存器
在组件:
从A/d转换,我有一个10位的结果的向左或向右调整,在结果寄存器ADRESH和ADRESL。
什么是从位5到TMR0L位4将这10位置入TMR0H的聪明方法?
更具体地说,与前面的两个11S:
XXXX XXXX XX00 0000 ADRESH ADRESL =>
11XX XXXX XXXX 0000 TMR0H TMR0L
之间10位PIC18F252PIC /组件,复制和旋转寄存器
在组件:
从A/d转换,我有一个10位的结果的向左或向右调整,在结果寄存器ADRESH和ADRESL。
什么是从位5到TMR0L位4将这10位置入TMR0H的聪明方法?
更具体地说,与前面的两个11S:
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 8.92与调试器'MPLAB SIM'一起使用.TMR0H不在监视列表中更新,但我认为它必须是仿真器(?)的限制/错误) – bretddog
@bretddog:是的可能是一个错误。 –