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:是的可能是一個錯誤。 –