Other Parts Discussed in Thread: C2000WARE
主题中讨论的其他器件:C2000WARE
据我所知、eCAP 模块中中断源的 Counter equals Compare ISR Source 选项在计数器寄存器值等于比较寄存器值时将触发 ISR。 我们使用此特性、我无法在.syscfg 文件中设置比较寄存器值以及使用任何 API 调用。 您能否为我提供 API 函数或代码片段的说明?
谢谢。
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.
Other Parts Discussed in Thread: C2000WARE
据我所知、eCAP 模块中中断源的 Counter equals Compare ISR Source 选项在计数器寄存器值等于比较寄存器值时将触发 ISR。 我们使用此特性、我无法在.syscfg 文件中设置比较寄存器值以及使用任何 API 调用。 您能否为我提供 API 函数或代码片段的说明?
谢谢。
尊敬的 Kaustuv:
我们最新的 C2000Ware SDK 5.02.00中已支持该功能。 这是您可以在发生计数器比较相等事件时用于中断的 driverlib API。 此函数位于 C2000WARE SDK 中的 ecap.h 文件中。

您可以传入 eCAP 基础、计数器比较等效事件以生成中断。
静态内联 void ecap_enableInterrupt (eCAPBase、ECAP_ISR_SOURCE_COUNTER_COMPARE );
此致!
马瑞安
我们不使用任何计时器、因为这可能需要 CPU 周期、并且 ISR 将在每个周期中提出。 主要目的是避免频繁的 ISR 调用、并且在没有脉冲时(脉冲卡在0或1)只会发出一次 ISR 调用。 我们主要是尝试通过硬件来解决问题。 有没有其他方法可以使用 eQEP、ePWM 等任何其他模块来解决确切的问题?
问题:
我们假设任何 GPIO 上的连续脉冲为1Hz。 如果有脉冲、则不会启动 ISR、否则如果脉冲卡在零或一秒、则应立即启动中断。
在 eCAP 解决方案中、通过调整比较寄存器值、我们可以获得1秒的延迟、并在比较寄存器值等于计数器寄存器时升高中断。
尊敬的 Kaustuv:
让我们继续本主题、因为 eQEP 看门狗计时器可能是您可以尝试的解决方案。
此致!
马瑞安