View previous topic :: View next topic |
Author |
Message |
Chris Geiger Guest
|
Adding to RTCC |
Posted: Thu Jul 10, 2003 1:42 pm |
|
|
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 |
|
 |
|