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
Sdcc-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sdcc-user

Reply via email to