请问论坛的同仁们,我用30f4011产生58k方波,具体PWM控制程序如下,调试可通过,但是烧到片子里去,用示波器测无PWM波形,请大家耐心一起探讨看看是否程序问题,谢谢!
#pragma config FPR = HS
#pragma config FOS = PRI
#pragma config WDT=WDT_OFF
void PwmInit()
{
PWMCON1=0x0044; //PWM为互补模式,并使能pwm3L产生PWM输出
PTPER=0X1F; //设置PWM频率为58k
PDC3=0X0F;
DTCON1=0x0040; //死区2us
OVDCON=0x1000; //由PWM发生器控制PWM输出
SEVTCMP=0; //不使用特殊事件比较寄存器
PWMCON2=0; //允许占空比更新
FLTACON=0; //不使用故障引脚
PTCON=0x8002; //使能pwm时基,1:1预分频比,连续向上/向下计数模式
}
int main(int argc, char** argv)
{
TRISE=0;
TRISEbits.TRISE1=0;
TRISEbits.TRISE2=0;
TRISEbits.TRISE3=0;
TRISEbits.TRISE4=0;
void PwmInit();
while(1);
return (EXIT_SUCCESS);
}
|