For example, to get a 500 Hz PWM signal:
NC = 
where 
and 
PWPER 
For 500 Hz PWM,
For PWPER = 249, you get 2N = 64, N = 6.
where 
,
and 
PWPER 
For 500 Hz PWM,
For PWPER = 199,
There are several values which will work: N = 1, M = 39; N = 2, M = 19 and N = 3, M = 9
If using N only:
| Action | Register | Channel 0 | Channel 1 | Channel 2 | Channel 3 | 
| 8-bit mode | PWCLK | Bit 6 = 0 | Bit 6 = 0 | Bit 7 = 0 | Bit 7 = 0 | 
| High Polarity | PWPOL | Bit 0 = 1 | Bit 1 = 1 | Bit 2 = 1 | Bit 3 = 1 | 
| Left Aligned | PWCTL | Bit 3 = 0 | Bit 3 = 0 | Bit 3 = 0 | Bit 3 = 0 | 
| Clock Select | PWPOL | Bit 4 = 0 | Bit 5 = 0 | Bit 6 = 0 | Bit 7 = 0 | 
| N | PWCLK | Bits 5:3 = N | Bits 5:3 = N | Bits 2:0 = N | Bits 2:0 = N | 
| Enable PWM | PWEN | Bit 0 = 1 | Bit 1 = 1 | Bit 2 = 1 | Bit 3 = 1 | 
If using N and M:
| Action | Register | Channel 0 | Channel 1 | Channel 2 | Channel 3 | 
| 8-bit mode | PWCLK | Bit 6 = 0 | Bit 6 = 0 | Bit 7 = 0 | Bit 7 = 0 | 
| High Polarity | PWPOL | Bit 0 = 1 | Bit 1 = 1 | Bit 2 = 1 | Bit 3 = 1 | 
| Left Aligned | PWCTL | Bit 3 = 0 | Bit 3 = 0 | Bit 3 = 0 | Bit 3 = 0 | 
| Clock Select | PWPOL | Bit 4 = 1 | Bit 5 = 1 | Bit 6 = 1 | Bit 7 = 1 | 
| N | PWCLK | Bits 5:3 = N | Bits 5:3 = N | Bits 2:0 = N | Bits 2:0 = N | 
| M | PWSCALx | PWSCAL0 = M | PWSCAL0 = M | PWSCAL1 = M | PWSCAL1 = M | 
| Enable PWM | PWEN | Bit 0 = 1 | Bit 1 = 1 | Bit 2 = 1 | Bit 3 = 1 | 
PWDTYx = (duty cycle 
(PWPERx + 1)) - 1
For example, with PWPERx = 199, and a duty cycle of 25%,
PWDTYx = (0.25 
(199 + 1)) - 1 = 49
To progam Channel 0 for 500 Hz PWM with a 25% duty cycle (using N = 3, M = 9, and PWPER = 199 from Part 3):
 
    /* Choose 8-bit mode */
    PWCLK = PWCLK & ~0x40;
    /* Choose high polarity */
    PWPOL = PWPOL | 0x01;
    /* Choose left-aligned */
    PWCTL = PWCTL & ~0x08;
    /* Select clock mode 1 (use N and M) for Channel 0 */
    PWPOL = PWPOL | 0x10;
    /* Select N = 2 and M = 2 for Channels 1 and 0 */
    PWCLK = (PWCLK | 0x18) & ~0x20;   /* PWCLK = X X 0 1 1 X X X */
    /* Select and M = 9 for Channels 1 and 0 */
    PWSCAL0 = 9; 
    /* Select period of 199 for Channels 1 and 0 */
    PWPER0 = 199;
    /* Enable PWM on Channels 1 and 0 */
    PWEN = PWEN | 0x03;
    /* 25 % duty cycle on Channel 0 */
    PWDTY0 = 49;