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.
工具/软件:
您好 Champ、
我的客户使用 F280039 ePWM、但 有 时间问题。 我们正在尝试进行一些测试以找出根本原因。
以下是测试代码、它在10us 计时器 ISR 内运行、TBCTR 继续计数。 在将 TBCTL、TBPRD、TBCTR 更新为0后、我们会读取 TBCTR 寄存器、但当 ISR 的时间不同时获得不同的值。 有时、 TBCTR=0x0008、我认为这是正常现象。 但我们也可以得到 TBCTR =0xFFF8、这意味着我们没有成功加载 TBCTR=0? 希望得到你对此的评论。谢谢!
z
BR、
Fengyu
尊敬的 Fengyu:
Unknown 说:我的客户使用 F280039 EPWM、但 存在 时序问题。
客户面临的时间问题是什么?
Unknown 说:有时、 TBCTR=0x0008、我认为这是正常的。 但我们也可以得到 TBCTR =0xFFF8、这意味着我们没有成功加载 TBCTR=0? 希望得到您对此的评论。
您能否在 EDIS 之后设置一个断点并通过 CCS 检查寄存器中的值? 我想看看此视图是否与您读回的内容相匹配。
此致、
Marlyn
嗨、 Marlyn
感谢您的支持。
即使我在 EDIS 之后设置了断点、TBCTR 也无法停止计数器。
您能否在 EDIS 之后设置断点并通过 CCS 检查寄存器中的值? 我想看看此视图是否与您读回的内容相匹配。 [/报价]我想下表说明了原因。
我是对的吗? 您是否有其他测试建议?
BR、
Fengyu
尊敬的 Fengyu:
谢谢、您回答正确。 您能解释一下问题是什么吗? 我可能能够提供一种更好的测试方法来找到根本原因。
作为当前测试用例一部分的代码将导致未定义的行为。 TBCTL 被设置为0、这意味着只有当 TBCTR = 0或发生同步事件(PRDLD 位)时、TBPRD 值才会生效。 TBCTL 内的 CTRMODE 位为0是向上计数模式、而不是3、这会冻结计数器并阻止计数器运行。 在所有这些写入都发生之前、您不知道 TBCTR 寄存器中的值是多少。 理想情况下、您应该冻结计数器、更新到 TBCTR、然后解冻和读取。 不过、TBPRD 也会设为0。 不清楚这是在 TBCTR 更改时立即加载、还是需要至少一个周期。 当 TBPRD 设置为0时、我们不会对 ePWM 的行为进行分类。
此致、
Marlyn