2016-11-06 12 views
2

사이의 10 비트를 회전 : A/D 변환에서PIC/어셈블리, 어셈블리 PIC18F252</p> <p>복사 레지스터

, I는 결과 레지스터에서 왼쪽 또는 오른쪽으로 조정 10 비트 결과가 ADRESH 및 ADRESL.

이 10 비트를 비트 5에서 TMR0L 비트 4까지 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'사용, watch-list에서 TMR0H가 업데이트되지 않지만 시뮬레이터의 제한/버그 여야한다고 가정) – bretddog

+0

@bretddog : yes가 버그 일 수 있습니다. –

관련 문제