3、生成代码,使用PWM
//high level occupy timer period Percentage,example:80 express 80% time high,20% low
void Start_PWM_OUT(uint8_t DutyCycle)
{
DRV_OC0_Start();
PLIB_OC_PulseWidth16BitSet(OC_ID_1, 2000*DutyCycle/100);
/* Initialize Timer Instance0 */
/* Disable Timer */
PLIB_TMR_Stop(TMR_ID_2);
/* Select clock source */
PLIB_TMR_ClockSourceSelect(TMR_ID_2, TMR_CLOCK_SOURCE_PERIPHERAL_CLOCK);
/* Select prescalar value */
PLIB_TMR_PrescaleSelect(TMR_ID_2, TMR_PRESCALE_VALUE_256);
/* Enable 16 bit mode */
PLIB_TMR_Mode16BitEnable(TMR_ID_2);
/* Clear counter */
PLIB_TMR_Counter16BitClear(TMR_ID_2);
/*Set period */
PLIB_TMR_Period16BitSet(TMR_ID_2, 2000);
PLIB_TMR_Start(TMR_ID_2);
}
|