器件型号: TMS320F28388D
关于何时开始读取 ADC、我们有一些特定的时序要求。 我们使用 PWM 触发 ISR 并启动 ADC。 我们使用 PWM 计数并验证我们是否接受计数的前 1usec 以开始读取。
但是、我们所做的是以 48usec 计时器运行 PWM、当被告知将 PWM 同步到 EtherCAT(以 250 个用例运行)上的 SYNC0 ISR 脉冲时。 我们看到和预期的是、在发生时、PWM 将有一个挂起的中断。 因为我们从技术上可以获取 PWM 计数器 ISR、然后用例数稍后会获取 Sync0 Pusle、它应该将 PWM 计数重新设置为零(顺便说一下,这是否正确?)
我认为执行 EPWM_clearEventTriggerInterruptFlag 可以清除当前中断和任何挂起的中断、但在论坛中进行一些读取操作看起来并不是这样。 如果在我们执行 EPWM_clearEventTriggerInterruptFlag 之后 PWM 有一个挂起的 ISR、则会触发挂起的中断、一旦我们离开中断处理程序、就会立即再次回到中断处理程序中(同步任何其他更高的中断)。
由于我们根据时序知道我们可以得到 1 个中断、所以我们正在处理它并具有一个挂起(因为收到 Sync0 脉冲)、我们将返回到 ISR 处理程序中、其中 PWM 计数为高电平、以启动我们的 ADC 读取、并产生抛出和错误。 我们知道我们会进入这种情况是否有办法解决这个问题。
我们要做的是在离开 ISR 之前清除当前 PWM 中断和任何挂起的 PWM 中断。 这样就没有任何待处理的内容。 是否有正确的方法?
Dorion

