The following steps should be taken when configuring the module for PWM operation to be used by other device peripherals:
- 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 TxCLKCON register. This is required for correct operation of the PWM
module.
- Configure the T2CKPS bits of the T2CON register with the Timer2 prescale value.
- Enable Timer2 by setting the T2ON bit of the T2CON register.
- 6.Wait until Timer2 overflows, TMR2IF bit of the PIRx register is
set.(1)
- 7.Configure the PWM module by loading the PWMxCON register with
the appropriate values.
Note:
- 1.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.