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.

咨询有关GPIO的中断



大家好:

我用例程包“STK_C6657.7z”里的GPIO程序做测试,6657的评估板上输出如下:

Initialize DSP main clock = 100.00MHz/1x10 = 1000MHz
GPIO interrupt event flag on CorePac INTC = 0x1
GPIO IN_DATA= 0x1

GPIO interrupt event flag on CorePac INTC = 0x1
GPIO IN_DATA= 0x0

GPIO IN_DATA= 0x2                                                  //这里没有进中断

GPIO IN_DATA= 0x0                                                  //这里没有进中断

GPIO interrupt event flag on CorePac INTC = 0x0  //进中断  但INTC不对 应该是0x04才对
GPIO IN_DATA= 0x4

GPIO interrupt event flag on CorePac INTC = 0x0 /进中断  但INTC不对 应该是0x04才对
GPIO IN_DATA= 0x0

GPIO interrupt event flag on CorePac INTC = 0x0 /进中断  但INTC不对 应该是0x08才对
GPIO IN_DATA= 0x8

GPIO interrupt event flag on CorePac INTC = 0x0 /进中断  但INTC不对 应该是0x08才对
GPIO IN_DATA= 0x0

GPIO interrupt event flag on CorePac INTC = 0x10
GPIO IN_DATA= 0x10

GPIO interrupt event flag on CorePac INTC = 0x10
GPIO IN_DATA= 0x0

GPIO interrupt event flag on CorePac INTC = 0x20
GPIO IN_DATA= 0x20

GPIO interrupt event flag on CorePac INTC = 0x20
GPIO IN_DATA= 0x0

GPIO interrupt event flag on CorePac INTC = 0x40
GPIO IN_DATA= 0x40

GPIO interrupt event flag on CorePac INTC = 0x40
GPIO IN_DATA= 0x0

GPIO interrupt event flag on CorePac INTC = 0x80
GPIO IN_DATA= 0x80

GPIO interrupt event flag on CorePac INTC = 0x80
GPIO IN_DATA= 0x0

GPIO interrupt event flag on CorePac INTC = 0x100
GPIO IN_DATA= 0x100

GPIO interrupt event flag on CorePac INTC = 0x100
GPIO IN_DATA= 0x0

GPIO interrupt event flag on CorePac INTC = 0x200
GPIO IN_DATA= 0x200

GPIO interrupt event flag on CorePac INTC = 0x200
GPIO IN_DATA= 0x0

GPIO interrupt event flag on CorePac INTC = 0x400
GPIO IN_DATA= 0x400

GPIO interrupt event flag on CorePac INTC = 0x400
GPIO IN_DATA= 0x0

GPIO interrupt event flag on CorePac INTC = 0x800
GPIO IN_DATA= 0x800

GPIO interrupt event flag on CorePac INTC = 0x800
GPIO IN_DATA= 0x0

GPIO interrupt event flag on CorePac INTC = 0x1000
GPIO IN_DATA= 0x1000

GPIO interrupt event flag on CorePac INTC = 0x1000
GPIO IN_DATA= 0x0

GPIO interrupt event flag on CorePac INTC = 0x2000
GPIO IN_DATA= 0x2000

GPIO interrupt event flag on CorePac INTC = 0x2000
GPIO IN_DATA= 0x0

GPIO interrupt event flag on CorePac INTC = 0x4000
GPIO IN_DATA= 0x4000

GPIO interrupt event flag on CorePac INTC = 0x4000
GPIO IN_DATA= 0x0

GPIO interrupt event flag on CorePac INTC = 0x8000
GPIO IN_DATA= 0x8000

GPIO interrupt event flag on CorePac INTC = 0x8000
GPIO IN_DATA= 0x0

Test complete.

在评估板上试过了 在自己的板子上试过了 输出一样的 难道软件有问题????

  • 在论坛搜了一下 91号事件对应GPIO0/1, 在6657上, core 0的91号事件对应GPIO0, core 1的91号事件对应GPIO1。

    GPIO IN_DATA= 0x2                                                  //这里没有进中断

    GPIO IN_DATA= 0x0                                                  //这里没有进中断

    这个理解了。


    GPIO interrupt event flag on CorePac INTC = 0x0  //进中断  但INTC不对 应该是0x04才对???
    GPIO IN_DATA= 0x4

    GPIO interrupt event flag on CorePac INTC = 0x0 /进中断  但INTC不对 应该是0x04才对???
    GPIO IN_DATA= 0x0

    GPIO interrupt event flag on CorePac INTC = 0x0 /进中断  但INTC不对 应该是0x08才对???
    GPIO IN_DATA= 0x8

    GPIO interrupt event flag on CorePac INTC = 0x0 /进中断  但INTC不对 应该是0x08才对???
    GPIO IN_DATA= 0x0

    这个怎么理解???

  • 进中断后,event清除掉了

  • 什么意思 讲的再详细些 其它的没清掉啊?

    我再看看 谢了!

  • printf("GPIO interrupt event flag on CorePac INTC = 0x%x\n",

    ((eventFlag&(~(1<<(CSL_GEM_GPINTN-64))))>>(10))|((eventFlag>>(CSL_GEM_GPINTN-64))<<DNUM));


    判断有BUG