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.
您好 Allison:
很抱歉耽误了很长时间,但我上个月很忙。
我尝试做的是更改 AQ reg 的操作。 当 CTR = 0并且同时将影子 AQ 寄存器加载为活动状态。
更多详细信息、请参阅下图
正如我在上一个问题中提到的、我已经测试了这个机制并且有一段时间、当 CTR = 0时、旧的 AQ 寄存器。 其中一些噪声考虑在内。
那么、我的问题是:
这种设计是否足够安全或避免?
Stephane、您好!
不用担心,谢谢你回来给我! 我将在此处链接您之前的帖子、以便为该主题提供上下文: https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1284279/tms320f28377s-pwm-action-qualifier-submodule-and-shadow-load。
因此、您的程序似乎正在尝试执行动作限定符并同时更新它、这并不理想。 通常、如果您希望在有效的 CTR = 0下发生一些情况、但正在使用影子加载、则可以将其设置为在 CMPA 上发生、然后设置 CMPA = 5。 对于大多数应用程序、5的值足够低、实际上为0、但您不会遇到任何加载问题。 请告诉我您是否能够使用此方法。
另一个选项(不推荐、但仍然可以为您效劳)是、如果您完全确定您的 ISR、更确切地说、将始终在 CTR = PRD 之前更新寄存器中的 AQ、 您可以将 影子加载更改为在 CTR = 0和 PRD 上、以便它在下一个 CTR = 0之前更新 AQ。 但是、 ISR 最有可能包含 if 语句和依赖于状态的函数、因此很难保证始终如此、尤其是在您继续开发/更改程序时。
此致、
艾里森