主题中讨论的其他器件: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.
据我所知、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 看门狗计时器可能是您可以尝试的解决方案。
此致!
马瑞安