Here is a link for a good tutorial on programming PIC microcontroller in C.
http://harfordhackerspace.org/2010/02/programming-pic-microcontrollers-in-c/
Motor Control using Pulse-Width Modulation (PWM)

In this program, a jumper on Port B directly selects the PWM output. PWM output is only present if a jumper to ground is present on one of the least significant 3 bits of port B.

The program demonstrates the use of control registers to effect PWM operation. One thing to notice is the fact that the program waits for a change on the input pins before selecting a new pulse-width duty cycle and reloading CCPR1.