工具与软件:
您好!
我正在使用4个 PWM。
PWM8在 CPU1上运行、PWM1、3、5在 CPU2上运行。 CPU2上的 PWM8 ISR 连接到 CPU2/CLA 任务1 ISR。
PWM8是主同步(将来我需要 PWM8与 EtherCAT Sync0脉冲同步)。
PWM1连接到 PWM8的输出信号、PWM3&5连接到 PWM 1输出信号
PWM1在50下运行、PWM8在200下运行速度慢4倍。
PWM8正递增计数、PWM1、3、5正递增/递减计数。
当 PWM8达到0时、我希望 PWM1同步到0、这会使3&5同步到0、 PWM1 0计数会导致处理器中断。
我已经在这里启用了所有 PWM、并且还启用了影子模式。
我可以看到 PWM8达到零时 PWM1变为零并导致 ISR、因此我知道它们是同步的。
我遇到问题的原因如下:
- 如果我们要配置系统、我在 PWM1 ISR 处理程序中有一个标志、几乎只是确认 ISR 信号并离开。
- 所有 PWM 均在运行、在配置完成前、当我们获取 PWM1 ISR 时、我们什么都不做。
- 当配置完成并且当调用 CLA 任务1完成 ISR (第一次)时、它将启用标志(在项目1中)。
- 在下一个 PWM1 ISR 中、我们将处理数据。 我可以看到、启用此功能后、我们稍后会得到一个大约1 USEC 的 ISR、并且我们将正常处理该 ISR。 我正在查看计数器。
接下来发生的事情是奇怪的。 我们将获得另一个 PWM1 ISR、在该 ISR 中、PWM 计数在18秒后而不是接近零。
仅当 PWM1中的计数器为零时、我们才应获得 ISR、
似乎没有任何待处理内容。
出现这种情况的原因有什么?

