单片机/MCUwilliam hill官网
直播中

caosurround

11年用户 839经验值
私信 关注
[问答]

ADuc841的PWM占空比设置,为什么设置当前的占空比生效的却是上一次设置的占空比值?

目前本人采用ADuC841,利用内部自带PWM输出波形,实现占空比与周期实时变化,但是现在发现占空比为什么设置当前的占空比,生效的却是上一次设置的占空比值,我用的模式是为1,请高手帮忙解答一下,谢谢!

回帖(1)

李超

2024-1-15 16:48:58
在ADuC841中,PWM的占空比设置是通过修改TMR2的寄存器来实现的。具体来说,将占空比值写入PWM2寄存器,并且在下一个溢出事件之前时,将它加载到TMR2寄存器中。因此,只有在下一个溢出事件发生之前,新的占空比值才会生效。

如果发现占空比为当前设置的占空比,生效的却是上一次设置的值,可能是因为两次设置之间的时间间隔过短,没有等待到下一个溢出事件。在设置占空比之后,建议等待至少一个完整的PWM周期,以确保新的占空比值得以生效。

另外,确保你的代码没有其他地方导致占空比值的更改。可能存在其他的中断或代码逻辑,会在设置新的占空比之前修改PWM2寄存器的值,导致上一次设置的占空比值仍然生效。

如果仍然无法解决问题,建议检查ADuC841的数据手册,查看PWM相关寄存器的配置和使用方式,确保正确设置并理解相关工作原理。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分