The following steps should be taken when configuring the CCP module for standard PWM operation:
- 1.Use the desired output pin RxyPPS control to select CCPx as the source and disable the CCPx pin output driver by setting the associated TRIS bit.
- 2.Load the T2PR register with the PWM period value.
- 3.Configure the CCP module for the PWM mode by loading the CCPxCON register with the appropriate values.
- 4.Load the CCPRx register with the PWM duty cycle value and
configure the FMT bit to set the proper register alignment.
- 5.Configure and start Timer2:
- Clear the TMR2IF interrupt flag bit of the PIRx register.
See Note below.
- Select the timer clock source to be as FOSC/4
using the TxCLKCON register. This is required for correct operation of the PWM
module.
- Configure the T2CKPS bits of the T2CON register with the Timer prescale value.
- Enable the Timer by setting the T2ON bit.
- 6.Enable PWM output pin:
- Wait until the Timer overflows and the TMR2IF bit of the
PIRx register is set. See Note below.
- Enable the CCPx pin output driver by clearing the associated TRIS bit.
Important: In order to send a complete duty cycle and period on the first PWM output, the above steps must be included in the setup sequence. If it is not critical to start with a complete PWM signal on the first output, then step 6 may be ignored.