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.

[参考译文] TMS570LC4357:TMS570LC43x HDK GIO 中断读取使用 Halcogen 的外部上升沿

Guru**** 2466550 points
Other Parts Discussed in Thread: TMS570LC4357, HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1111627/tms570lc4357-tms570lc43x-hdk-gio-interrupt-read-external-rising-edge-using-halcogen

器件型号:TMS570LC4357
主题中讨论的其他器件: HALCOGEN

您好!

我仍然不熟悉使用 TMS570LC4357 HDK、我的目标 是在 GIOA[2]和[3]上有下降沿或上升沿时触发 ISR。

在下面的 Halcogen 中进行设置后、我需要一些示例代码来调用中断函数。

有没有这方面的示例?

谢谢、此致、

Lukman

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

     尊敬的 Lukman:

    您完成了触发与下降沿交织的第一步:

    第二步是为 GIO 高电平启用 VIM 通道(在您的配置中选择高优先级):

    您将看到 GIO ISR 是在 Gio.c 中生成的

    由于选择了 IRQ、请在您的代码中启用 IRQ 中断:

    /*启用 CPU 中断*/
    _enable_IRQ ();

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

    您好 QJ、

    感谢您的回复,在我启用 _enable_IRQ()后,我应该查找哪个地址来检查事件触发?

    我是否还需要在事件触发后清除这些地址?

    因为我在 Gio.c 中看到了该中断

    void gioHighLevelInterrupt (void)

      uint32 offset = gioREG->OFF1;

      if (偏移!= 0U)
      {
        PIN_BIT= 1;
        偏移=偏移- 1U;
        IF (偏移>= 8U)
        {
         gioNotification (gioPORTB、偏移- 8U);
        }
       其他
        {
         gioNotification (gioPORTA、偏移量);
        }
      }
      其他
      {
       PIN_bit=0;
      }

    但是、当我检查偏移变量时、它永远不会改变或触发。

    或者,我可以使用 gioGetBit (gioPORTA,2);?

    请提供建议。

    感谢你的答复。

    谢谢、此致、

    Lukman

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

    您好 QJ、

    我已经解决了我的问题。

    谢谢、此致、

    Lukman