I am writing code for the PIC 18f2550 target. Forgot to mension.
On Mon, Feb 16, 2015 at 10:16:20PM +0100, Nordin Tomas wrote:
> Hi
>
> I have a function that look like this:
>
> void set_ccp1_rc2(unsigned int match_cnt)
> {
> T1CONbits.TMR1ON = 0; // Stop timer.
> TMR1 = 0; //Clear timer.
> CCPR1 = match_cnt;
> CCP1CON = 0b00001001; // From here pin will be set. Cleared on match.
> T1CONbits.TMR1ON = 1; // Roll the timer.
> }
>
> It translates after compile to this:
>
> S_timing__set_ccp1_rc2 code
> _set_ccp1_rc2:
> ; .line 87; SRC/timing.c void set_ccp1_rc2(unsigned int
> match_cnt)
> MOVFF FSR2L, POSTDEC1
> MOVFF FSR1L, FSR2L
> MOVFF r0x00, POSTDEC1
> MOVFF r0x01, POSTDEC1
> MOVLW 0x02
> MOVFF PLUSW2, r0x00
> MOVLW 0x03
> MOVFF PLUSW2, r0x01
> ; .line 89; SRC/timing.c T1CONbits.TMR1ON = 0; // Stop timer.
> BCF _T1CONbits, 0
> ; .line 90; SRC/timing.c TMR1 = 0; //Clear timer.
> CLRF _TMR1
> ; .line 91; SRC/timing.c CCPR1 = match_cnt;
> MOVF r0x00, W
> MOVWF _CCPR1
> ; .line 92; SRC/timing.c CCP1CON = 0b00001001; // From here pin
> will be set. Cleared on match.
> MOVLW 0x09
> MOVWF _CCP1CON
> ; .line 93; SRC/timing.c T1CONbits.TMR1ON = 1; // Roll the timer.
> BSF _T1CONbits, 0
> MOVFF PREINC1, r0x01
> MOVFF PREINC1, r0x00
> MOVFF PREINC1, FSR2L
> RETURN
>
> There is a problem with the running code on the device. It occurs to me
> that only one byte is written to the _CCPR1 register (MOVWF _CCPR1).
> Also I am confused to see direct writes to 16-bit equates in the
> assembly code, is that possible?
>
> Should the above translation work as intended or is there something
> funky?
>
> /
>
> Tomas
------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=190641631&iu=/4140/ostg.clktrk
_______________________________________________
Sdcc-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sdcc-user