This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具与软件:
如图表中所示、TIMA0具有影子函数、但 TIMG14和 TIMG8没有。 区别是什么?
我已经看到了 SDK 的例子: timx_timer_mode_pwm_edge_sleep_shadow
,和占空比值被更新时, DL_TimerA_getPendingInterrupt(PWM_0_INST)
满足的情况 DL_TIMERA_IIDX_CC0_DN
。
如果我要使用 TIMG14或 TIMG8更新占空比值、是否也可以使用 DL_TimerG_getPendingInterrupt(PWM_0_INST)
和情况 DL_TIMERG_IIDX_CC0_DN
? 如果我不能做到、有没有其他方法可以做到这一点?
SDK 中的示例 timx_timer_mode_pwm_edge_sleep_shadow 的工作原理与此类似。 如果我想使用 TIMG14或 TIMG8持续更新占空比值、我该怎么办?
您可以使用相同的代码。 如果没有影子寄存器、则存在一种竞争、这可能会导致在占空比更新的周期中出现多个比较匹配。 除非 CDACT=3 (切换)、否则这将(我认为)可能是不可见的。
当刚刚发生比较匹配时(如上所述)切换占空比(CCx 值)不是一个很好的开始策略。
尊敬的 Rei:
SDK 中的示例 timx_timer_mode_pwm_edge_sleep_shadow 的工作方式与此类似。 [报价]方法仍然有效。 而当您想更新占空比时、其范围是不可靠的。
例如、LOAD 值为1000、这是向下 递增计数模式:
有时、您将 CC 值设置为500、表示50%的占空比。 您尝试将其更新为10、占空比为1%。
但是、当您触发中断并执行更新 CC 值的代码时、计数器可能已经增加到15。 此时、您绝不会在此 PWM 周期中触发 CC 事件、因此 PWD 占空比将为100%或0%。
[/quote]刚刚发生比较匹配时切换占空比(CCX 值)(如上所述)并不是一个一开始就不好的策略。 [报价]这会起作用。 也是类似的情况、如果您将 CC 设置为990、即99%的占空比、则您将在计数器为990时触发中断。
如果要将 CC 设置为10、即1%的占空比、并发现 当您触发中断并执行代码更新 CC 值时、计数器可能已经增加到15、即使将 PWM 占空比设置为0%或100%、也有丢失比较匹配的风险。
->图像 震颤、在向上计数模式下将999更改为1。
因此、您应该为中断触发保留安全范围、
->与中断调用和更新 CC 值之前使用的 CPU 周期相关的错误。
并需要 将计时器中断设置为最高中断优先级。
B.R.
SAL
你好布鲁斯,萨尔,感谢你的详细解释。
现在我可以理解、影子寄存器的功能是为了避免出现这种情况:"如果您希望将 CC 设置为10、即1%的占空比、但计数器可能已经增加到15。"
因此、我将设置一个10%~90%的安全占空比范围、并且针对规格要求、我还将需要更新中断频率。 但是、我认为10Hz~150Hz 也是一个安全范围。
所以我可以使用相同的代码,对于 TIMG14或 TIMG8, 如果情况是 DL_TIMERG_IIDX_CC0_DN
,我将更新占空比和频率。 是这样吗?
在手册中、我得到了一些有用的信息。 因此、对于不支持哪些影子寄存器的 TIMG、我会将向下计数模式设置为 TIMG.LOAD、并设置"写入 TIMx.CC 寄存器的值立即生效。" 至 TIMG.CC
尊敬的 Reim:
所以我可以使用相同的代码、对于 TIMG14或 TIMG8、 如果是、DL_TIMERG_IIDX_CC0_DN
我将同时更新占空比和频率。 这是正确的吗?
是的、您可以。 只需要保留一个安全范围并使其成为最高中断优先级。
[报价用户 id="644290" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1480742/mspm0c1104-pwm-shadow-load-function/5687355 #5687355"]因此、对于不支持影子寄存器的 TIMG、l 将向下计数模式设置为 TIMG.LOAD、并设置"写入 TIMx.CC 寄存器的值立即生效。" 至 TIMG.CC[/报价]正确。
B.R.
SAL