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.

EVMK2H GPIO8(Set dir as input) interrupt 不按预期触发的问题(调试两天了)

Other Parts Discussed in Thread: 66AK2H14, 66AK2E05

您好:

      在使用TI 官方的EVMK2H的开发板(VER4,66AK2H14),把GPIO8配置成输入,上升沿和下降沿都触发, 中断的周期不按预期触发。

      但是如果把GPIO8 配置成输出,然后在定时器周期中断服务函数中切换GPIO8的输出寄存器,这时GPIO8的中断周期按预期触发、

     实验步骤:

       1.关闭所有中断使能

     2.配置好GPIO8的输入输出,中断沿的设置,使能GPIO Z中断

      3.直接把82 GPIO_INT8 Local GPIO interrupt 映射到CPU INT4,

      4.配置TIMER 寄存器及相关中断,直接映射到CPU INT12. 

      5.使能所有的相关中断寄存器期.     

       6.1:如果把GPIO8 配置成输出,在Timer ISR 中切换GPIO8 的状态,GPIO ISR 触发周期正常。

         用示波器观察120Pin 接口的Pin78(SOC_GPIO_08),波形符合预期。

      6.2:如果把GPIO8 配置成输入,失效掉Timer ISR 中切换GPIO8的程序,原则上不应该有中断发生,

           GPIO8 没有外部输入源,下拉到地,用示波器观察120Pin 接口的Pin78(SOC_GPIO_08),没有波形,

           奇怪的是GPIO8 ISR 不停的在触发,也没有什么周期可言。

            也试过其他GPIO9/10,当配置成输入时,同样的情况发生。

     6.3:通过120 PIN Expending Header 外接GPIO8输入源(FPGA 产生中期信号),也是同样的情况发生。

              确定过GPIO8 的PIN没有搞错,在main函数中while(1){  readGPIO8 IN_DATA,set it to GPIO12(DBG RED LED),示波器显示波形和输入同步。

   7.实在是没办法了,就使用官方提供的K2_STK_DSP_v1.1/GPIO 的例子,使用的Combine Interrupt,我自己的直接把GPIO8映射到DSP INT4,把MCSDK 改成ProcesserSDK,只combine GPIO8 interrupt,去掉GPIO9/10/11/12 防止干扰分析问题,把x#define GPIO_LOOP_BACK_TEST 1 改成 #define GPIO_LOOP_BACK_TEST 0 把GPIO设为输入,情况也是一样。

    已经调试2 天了,实在想不到哪里出错,请大家帮帮忙,感谢!

    等会去公司上传代码。

硬件及软件版本如下:

DSP Core0 的裸机程序

EVMK2E VER 4 开发板

CCS7.3 + 8.1 Compiler

PROCESSER-SDK-RTOS-K2HK v4.01