怀疑可能是你写的代码, 由于数据类型混乱引起的溢出问题.
可以参考:
void EPWM1_LoadDutyValue(uint16_t dutyValue)
{
// Writing to 8 MSBs of pwm duty cycle in CCPRL register
CCPR1L = ((dutyValue & 0x03FC)>>2);
// Writing to 2 LSBs of pwm duty cycle in CCPCON register
CCP1CON = ((uint8_t)(CCP1CON & 0xCF) | ((dutyValue & 0x0003)<<4));
}
|