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.

[参考译文] CCS/TMS570LS0432:GIO 中断不工作

Guru**** 2609895 points
Other Parts Discussed in Thread: HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/755753/ccs-tms570ls0432-gio-interrupt-not-working

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

工具/软件:Code Composer Studio

尊敬的所有人:

我想使用 TMS57004的 GIO 中断功能。 因此、我在 halcogen 中完成了以下配置。

1.启用 GIO 驱动程序

2. IN 引脚多路复用器激活 Gio Porta

3.在 GIO 中 、我设置输入中的位7并启用 VIM 低优先级、下降边沿。

4.在 VIM 中启用通道9 Gio int A.

和生成的代码。

在 sys_main 中、我编写了以下代码:

#include

#include "sys_common.h"

#include "Gio.h"
#include "system.h"

int main (空)

/*用户代码开始(3)*/

gioInit();

printf ("Start\n");

vimInit();

gioSetDirection (gioPORTA、0x00);

gioEnableNotification (gioPORTA、7);


_enable_IRQ ();

while (1);
/*用户代码结束*/

返回0;

void gioLowLevelInterrupt (void){
printf ("按下按钮\n");

但是、当我按下按钮时、我没有得到任何响应。

我正在附加我的文件供您参考。

请帮助我解决问题。

此致、

单位

e2e.ti.com/.../2678.gioint.rar

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

    在 GIO 配置中、您启用低优先级中断。 但在 VIM 通道配置中、您只启用高优先级的1级(通道9)。 这就是您没有中断的原因。

    1.在 VIM 配置中选择通道23



    2.在 GIO 配置中选择高优先级
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Wang、

    根据您的建议、我在 VIM 配置中选择了通道23 (在 halcogen 中被写入为 Gio Int B)、但我遇到编译错误。

    错误#10056:重新定义符号"gioLowLevelInterrupt":首先在"./source/gio.obj 中定义;在"./source/sys_main.obj 中重新定义
    错误#10010:链接期间遇到错误;未生成"gioone.out"

    我无法调试此错误的原因。

    请帮助我解决问题。

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

    如果您在 VIM 中启用 GIO 中断(低电平或高电平)、ISR 将在 Gio.c 中生成 如果您需要为此中断添加代码、请将代码添加到 notification.c

    此错误由您的代码引起:

    void gioLowLevelInterrupt (void){
    printf ("按下按钮\n");


    请添加 printf (..) 到 notification.c 中的 gioNotification 函数:

    void gioNotification (gioPORT_t *端口、uint32位)

    /*在用户代码开始和用户代码结束之间输入用户代码。 *
    /*用户代码开始(19)*/
    printf ("按下按钮\n");
    /*用户代码结束*/