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.

[参考译文] TMS320F2800157:ECAP -中断源-计数器等于比较 ISR 源

Guru**** 2524550 points
Other Parts Discussed in Thread: C2000WARE

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1357275/tms320f2800157-ecap---interrupt-source---counter-equals-compare-isr-source

器件型号:TMS320F2800157
主题中讨论的其他器件: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 );

    此致!

    马瑞安

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Ryan。

    感谢您的讲解! 但我们需要 eCAP 捕获模式的功能、在该模式下、上升沿用于复位计数器。 如果我们假设1秒内没有发生计数器复位、则应启动 ISR。 如果我们使用溢出选项、在提出 ISR 之前大约需要42秒、通过使用比较寄存器、可以通过设置寄存器值来解决该问题、这可以给我1秒的延迟且不会使计数器寄存器值溢出。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Kaustuv:

    很遗憾、在捕获模式下无法使用 CMP 事件。 您是否有任何计时器或其他 ISR 每1s 发生一次、以便您可以检查 TSCTR、如果它高于1、则强制执行 eCAP 中断?

    此致!

    马瑞安

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们不使用任何计时器、因为这可能需要 CPU 周期、并且 ISR 将在每个周期中提出。 主要目的是避免频繁的 ISR 调用、并且在没有脉冲时(脉冲卡在0或1)只会发出一次 ISR 调用。 我们主要是尝试通过硬件来解决问题。 有没有其他方法可以使用 eQEP、ePWM 等任何其他模块来解决确切的问题?

    问题:

    我们假设任何 GPIO 上的连续脉冲为1Hz。 如果有脉冲、则不会启动 ISR、否则如果脉冲卡在零或一秒、则应立即启动中断。

    在 eCAP 解决方案中、通过调整比较寄存器值、我们可以获得1秒的延迟、并在比较寄存器值等于计数器寄存器时升高中断。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Kaustuv:

    我希望了解是否有 使用硬件实现此目的的可行方法。  

    此致!

    马瑞安

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Kaustuv:

    让我们继续本主题、因为 eQEP 看门狗计时器可能是您可以尝试的解决方案。

    https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1358260/tms320f2800157-eqep-timer-period-and-value/5183160#5183160

    此致!

    马瑞安