您好!
我有一个28335电路板、我在 PWM 通道上遇到了异常行为。 我需要挑选一些大脑来了解可能的原因。 电路板不使用 TZ、并且 TZ 寄存的未初始化。
PWM 设置为10kHz、在某个特定的 PWM 占空比下、它会跳过整个周期并输出0超过100us。 邻近脉冲是正常的。 这种行为最初发生在大约70%的占空比时、我自动给计数器在5800-5900之间振铃、偶尔我会看到这种脉冲跳跃。
当我将某个优化级别从 none 开启到-O2后、行为发生改变。 现在、它非常接近99%的占空比发生、并且是零星的。 这意味着99%的占空比在一个周期内变为零、然后再次变为99%。
我的问题是、在代码中没有 PWM 寄存器的占空比变化的地方、占空比寄存器 CMPA.Half 从不变为零、那么有什么可能改变 PWM 的行为?
我让 PWM 触发中断、并运行占空比更新。 在该 ISR 中、将禁用所有其他中断。 定时器 ISR 是项目中唯一的其它中断。
由于这与时序相关、我使用切换 IO 测试了 PWM ISR 的执行、该 IO 显示仅约50%使用。
无论如何、还有什么提示可能影响 PWM 模块的逐周期行为? 不使用 TZ、在没有电源开关的情况下会发生这种情况...
谢谢
此致
gz