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.

[参考译文] LAUNCHXL2-TMS57012:Launchpad LAUNCHXL2-TMS57012:GIO 高电平中断

Guru**** 2350610 points
Other Parts Discussed in Thread: LAUNCHXL2-TMS57012, HALCOGEN
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/587029/launchxl2-tms57012-launchpad-launchxl2-tms57012-gio-highlvl-interrupt

器件型号:LAUNCHXL2-TMS57012
主题中讨论的其他器件: HALCOGEN

您好!

我最近购买了 LAUNCHXL2-TMS57012 (其上有 TMS570ls1224PGE)用于原型设计。 我目前正在开始使用它,但我有一些问题:

对于我从 LAUNCHXL2-TMS57012原理图中了解到的内容、其中一个开关按钮(S3)链接到 GIOB_2 (如果配置为输入 I guess)。 因此、我尝试使用 GIO 中断、但即使将所有 GIO 设置为输入、按下按钮也不会在 GIOFLG 寄存器中上升任何标志。 这是我第一次遇到这个问题:有人知道开关按钮和 Gio 是如何相关的?

我的第二个问题是中断:我做了一个基本类似的程序

gioInit();

vimInit()

enable_interrupt ();

while (1)

LED_A_ON ();

LED_A_OFF ();

我将 GIO_INTDET 寄存  器配置为填充"1"、这意味着"在上升和下降沿均启用中断"、启用中断等、并在 gioHighLevelInterrupt 和 gioLowLevelInterrupt 上设置断点。 只有低级功能有效。 我尝试将 INTDET 和 POL 寄存器配置为仅具有上升沿:程序驱动器中断。

因此、我可能错过了阅读数据表的机会、如果可能的话、如果不使用 HALCoGen、而是使用直接寄存器配置、我会非常感谢您的帮助(因此我可以更好地了解它的工作原理)

谢谢

Audry

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

    感谢您使用 E2E 提出问题。

    对于有关 GIOB[2]的初始问题、请确保 IOMM 多路复用器配置被适当设置为接受来自右侧引脚的输入。 通过查看 Wiki 页面 processors.wiki.ti.com/.../LAUNCHXL2-TMS57012上的原理图、您可以找到有关哪个引脚连接到按钮的更多信息

    关于你的中断问题,我将在明天更好地查阅文件并提供更详细的解释时发言。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、感谢您的回答!

    在第10页上阅读原理图(processors.wiki.ti.com/.../LAUNCHXL2-TMS57012)、我可以看到 S3开关应该在 GPIOB_2上链接。 在 HALCOGen 中,在"PINMUX"选项卡上,选中"GIOB"框不起任何作用,因此我假设没有与之相关的特定多路复用器配置?

    感谢您抽出宝贵的时间、期待您的帮助

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

    您好 Audry、

    选中 GPIOB 框会导致引脚55上的"终端"框关闭、从而指示 GPIOB_2功能已引入引脚。 该行为微弱的灰色、因为如果通过复选框启用了 GPIOB、则此引脚没有其他选择、因此必须引出 GPIOB_2。 即、它不能更改、因此灰显。 如果取消选中页面顶部的 GPIOB、您将看到模糊的线条消失。

    即、在未启用 GPIOB 外设的情况下:

    即启用 GPIOB 外设:

    关于中断、我怀疑所发生的情况是、您在配置的两个沿上都获得中断、但只有低级 ISR 被触发、因为中断只有来自 GPIO 引脚的一条中断线(请参阅下图)。

    我认为、中断通道使用的命名规则可能会令人困惑。 即、gioHighLevelInterrupt 和 gioLowLevelInterrupt。 在这种情况下、中断名称中的高电平和低电平并不意味着信号的物理电平、而是基于其默认状态下的中断通道 ID 的通道优先级。 要检查这一点、您是否可以设置一个测试条件、以便在中断期间 GPIOB 为低电平时递增一个低电平计数器、在 ISR 期间 GIOB 为高电平时递增一个高电平计数器? 这应允许您在同一 ISR 中捕获两个边沿。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很抱歉、我回复了之前的讨论、但我使用 LAUNCHXL2-TMS57012开关 B 按钮时遇到了类似的问题。 我最初尝试使用中断、但现在已经转到使用 gioGetBit 在我的无限循环中手动检查 eh 引脚。 我的值更改的唯一时间是我更改 Halcogen 中的上拉/下拉电阻器配置时。 是否有任何有关使用这些按钮的良好说明或示例? 我已经按照上面所述检查了引脚多路复用。

    感谢您的帮助、
    Ryan