2016-11-06 22 views
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 

回答

2

沒有測試...

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位模式定時器讀寫 寫道

+0

不錯。測試:工作! (除了:MPLAB 8.92與調試器'MPLAB SIM'一起使用.TMR0H不在監視列表中更新,但我認爲它必須是仿真器(?)的限制/錯誤) – bretddog

+0

@bretddog:是的可能是一個錯誤。 –