TimerTick on PIC18 port

Studying the PIC18-port I came across the following line in port.c: OpenTimer1( T1_16BIT_RW & T1_SOURCE_INT & T1_PS_1_1 & T1_CCP1_T3_CCP2 ); Reading "MPLAB_C18_Libraries_51297c.pdf" on www.microchip.com to figure out what this function does, confuses me. The argument "T1_CCP1_T3_CCP2" is not defined for OpenTimer1, it’s only defined for OpenTimer3. Can someone enlighten me on this? Marcel

TimerTick on PIC18 port

The C18 header file does not define T1_CCP1_T3_CCP2 for all devices.  Maybe the library documentatin does not take this into account. #if defined(__18F6520) || defined(__18F6620) || defined(__18F6720) ||     defined(__18F8520) || defined(__18F8620) || defined(__18F8720) ||     defined(__18F6620) || defined(__18F6621) ||     defined(__18F8620) || defined(__18F8621) #define T34_SOURCE_CCP             0b11111111 #define T12_CCP12_T34_CCP345    0b11110111 #define T12_CCP1_T34_CCP2345    0b10111111 #define T12_SOURCE_CCP             0b10110111 #else #define T3_SOURCE_CCP         0b11111111 #define T1_CCP1_T3_CCP2       0b10111111 #define T1_SOURCE_CCP         0b10110111 #endif

TimerTick on PIC18 port

My library ref manual (dated 2003) has the CCP section missing for timer 1. The code example is given as: OpenTimer1( TIMER_INT_ON & T1_8BIT_RW & T1_SOURCE_EXT & T1_PS_1_1 & T1_OSC1EN_OFF & T1_SYNC_EXT_OFF & T1_SOURCE_CCP ); But it does not define the T1_SOURCE_CCP options for timer 1. Compare this to timer 3 where the code snippet is almost the same (T1->T3) but just above it there is a section "Use With CCP:" that defines values for T3_SOURCE_CCP. Looks to me just like an omission from the manual.

TimerTick on PIC18 port

The weird thing then is that the datasheet (eg. 18F452) also defines it only for timer3…

TimerTick on PIC18 port

Hi Marcel, This does look odd looking back.  I got the constant value from the header file – and presuming that the timer is working correctly and that the header file is not incorrect – it seems ok. I need to investigate futher and see exactly what the timer function library call does and compare this to the datasheet. Regards.

TimerTick on PIC18 port

Well, I assume it works. So, your call should be correct. I was just wondering, nothing more. It’s of course ok If you like to investigate this, but my quriosity (?) is already satisfied :-)