Why does the following code compile such a large group of assembly instructions when it can be done in much fewer? Is there any way to make it so that it doesn't check for a carry?
C-code
#int_rtcc
void rtcc_isr() {
set_rtcc(get_rtcc()+73); //Set RTCC timeout
...
}
Listing Produced
0105: MOVF 01,W
0106: ADDLW 49
0107: MOVWF 64 //64=rtcc_isr.@SCRATCH
0108: CLRF 65 //65=rtcc_isr.@SCRATCH
0109: BTFSC 03.0
010A: INCF 65,F
010B: MOVF 64,W
010C: MOVWF 01
Why does it take 8 instructions when it could be done with the following 2 instructions?
MOVLW 0x49
ADDWF TMR0, F
Is there any way to get the compiler to be smarter and ignore the carry out check?
___________________________
This message was ported from CCS's old forum
Original Post ID: 144515856
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
Re: Adding to RTCC
Posted: Thu Jul 10, 2003 3:17 pm
:=Is there any way to get the compiler to be smarter and ignore the carry out check?
--------------------------------------------------------------
To get the asm code that you requested, use this C code:
#byte TMR0 = 0x01
#int_rtcc
void rtcc_isr()
{
TMR0 += 73;
}
___________________________
This message was ported from CCS's old forum
Original Post ID: 144515858
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum