Follow the next steps when configuring the module for PWM operation
using the PWMx pins:
- 1.Disable the PWMx pin output driver(s) by setting the associated TRIS bit(s).
- 2.Clear the PWMxCON register.
- 3.Load the T2PR register with the
PWM period value.
- 4.Load the PWMxDCH register and bits [7:6] of the PWMxDCL register with the PWM duty cycle value.
- 5.Configure and start Timer2:
- Clear the TMR2IF Interrupt
Flag bit of the PIRx register.(1)
- Select the timer clock source to be as FOSC/4
using the T2CLKCON register. This is required for
correct operation of the PWM module.
- Configure the CKPS bits of the T2CON register with the Timer2 prescale
value.
- Enable Timer2 by setting
the ON bit of the T2CON register.
- 6.Enable the PWM output pin and wait until Timer2 overflows; the TMR2IF bit
of the PIRx register is set.(2)
- 7.Enable the PWMx pin output driver(s) by clearing the associated TRIS bit(s) and setting the desired pin PPS control bits.
- 8.Configure the PWM module by loading the PWMxCON register with the appropriate values.
Notes:
- 1.To send a complete duty cycle and period on the first PWM
output, the above steps must be followed in the given order. If it is not critical to
start with a complete PWM signal, then move step 8 to replace step 4.
- 2.For operation with other peripherals only, disable PWMx pin outputs.