[PSOC™] PWM 修改比较值的常用方法

[复制链接]
 楼主| IFX_Lingling 发表于 2024-9-2 15:51 | 显示全部楼层 |阅读模式

直接调用的PWM_WriteCompare()对比较值进行修改,这不是一个规范的操作,会导致glitch的产生。PWM 运行状态下,修改PWM比较值的正确方法是使能PWM的Switch 功能和Compare的SWAP功能,然后把PWM的OV输出与Switch输入短接在一起,然后每次都把要修改的Compare值写到Compare buffer中(writeCompareBuffer)去,这样在当前周期结束后,OV信号会触发之前写入的compare 值复制到compare register 并且马上起效。

comparebuf的数据是switch事件发生的时候才会被交换到compare寄存器,也就是我们控制的API:PWM_WriteCompare(CompareVal); 所以设计代码的时候考虑在CC事件发生的时候SWAP这个数,也就是把buffer里面的数据copy出来,然后下一个周期生效。如果需要写入新的数,
那就是TC事件发生的时候写入,CC事件发生之后交换。这样时序上面比较清晰(这个功能的示例代码看Archive02)。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

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

本版积分规则

认证:
简介:关于英飞凌——我们致力于打造一个更加便利、安全和环保的世界,在赢得自身成功发展的同时,积极践行企业社会责任。

120

主题

208

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部