主题中讨论的其他器件: TM4C123
您好 Tiva 社区、
当我尝试立即施加新的 PWM 周期(即 PWM 输出的新频率)时、我的 TM4C123GH6PM 控制器出现问题。 情况是、我们以100Hz 的输出频率运行 PWM、然后我们希望立即将输出频率更改为100kHz、而不会延迟。 问题在于、PWM 会一直等到计数器恢复为零后再应用新频率、这对于我们来说太长了、因为计数器的频率为100Hz (我们需要在初始状态下设置)。
我们尝试的解决方案是重置计数器、该计数器应立即应用新设置、但遗憾的是、它不起作用。 我们将 PWM 配置为"PWMGenConfigure (PWM0_BASE、PWM_GEN_0、PWM_GEN_MODE_DOWN |PWM_GEN_MODE_DBG_RUN| PWM_GEN_MODE_NO_SYNC | PWM_GEN_MODE_GEN_NO_SYNC);"、下面是我们尝试更改 PWM 频率的方法:
PWMSyncTimeBase (PWM0_BASE、PWM_GEN_0_BIT); //将计时器复位为零
PWMGenPeriodSet (PWM0_BASE、PWM_GEN_0、CYCLE 时间);
PWMPulseWidthSet (PWM0_BASE、PWM_OUT_0、5);
PWMSyncUpdate (PWM0_BASE、PWM_GEN_0_BIT); //在下次定时器到达零时更新周期变化
PWMSyncTimeBase (PWM0_BASE、PWM_GEN_0_BIT); //将计时器复位为零
当观察示波器、在我们发送命令更改频率时捕获并捕获实际 PWM 输出时、我们仍然最多得到0.01秒的延迟、这是计数器在100Hz 时恢复为零所需的时间、 这太长了、我们希望将延迟至少降低10倍。