问答

汇集网友智慧,解决技术难题

21ic问答首页 - HC32F030如何实现不用中断更新CCR调节互补PWM占空比?

HC PWM TI se ev

HC32F030如何实现不用中断更新CCR调节互补PWM占空比?

fafen2020-12-23
因为要使用互补PWM控制H桥来驱动电机,参考HC32F030驱动下的产生互补PWM的例子“HC32F030_DDL_Rev1.2.0\example\timer3\timer3_m23_tpcmp_pwm”,可以产生控制互补PWM占空比控制电机转动。但问题是这种方式需要在定时器溢出中断频繁更新CCR的值,频繁的中断服务程序频繁占用系统处理时间,而我只需要输出互补PWM而已。
尝试在参考例子中关掉中断,使能PWM自动输出。
//stcTim3BaseCfg.pfnTim3Cb  = Tim3_LRMotorPWM_Int;                      //中断函数入口
//Tim3_ClearAllIntFlag();                                   //清中断标志
//Tim3_Mode23_EnableIrq(Tim3UevIrq);                        //使能TIM3 UEV更新中断
//EnableNvic(TIM3_IRQn, IrqLevel0, TRUE);                   //TIM3中断使能
Tim3_M23_EnPWM_Output(TRUE, TRUE);                      //端口输出使能

应用程序中改变CCR的值,试图改变PWM占空比:
Init_LRMotor_PWM();
Tim3_M23_CCR_Set(Tim3CCR0A, 250);
Tim3_M23_CCR_Set(Tim3CCR0B, 750);
Tim3_M23_CCR_Set(Tim3CCR1A, 250);
Tim3_M23_CCR_Set(Tim3CCR1B, 750);
Tim3_M23_Run();
Delay_MS(2000);
Tim3_M23_Stop();
Delay_MS(2000);
Tim3_M23_CCR_Set(Tim3CCR0A, 750);
Tim3_M23_CCR_Set(Tim3CCR0B, 250);
Tim3_M23_CCR_Set(Tim3CCR1A, 750);
Tim3_M23_CCR_Set(Tim3CCR1B, 250);
Tim3_M23_Run();
      
      下载视频         
回答 +关注 17
1515人浏览 2人回答问题 分享 举报
2 个回答

您需要登录后才可以回复 登录 | 注册