C2000 按键中断 抖动怎么办

2019-08-03 18:05发布

c2000 launchpad,设置了S3-GPIO12的按键中断程序,不过开始运行时发现没有按键也会进入中断。而运行几秒钟后就会变好。请问这是什么问题
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
acer4736
1楼-- · 2019-08-03 22:47
中断函数:
interrupt void S3_GetPressed_isr(void)
{
        S3_GetPressed_Flag=1-S3_GetPressed_Flag;

        PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;

}

注意:以下程序 EALLOW/EDIS未写出,实际程序中没问题的。
gpio初始化:
        GpioCtrlRegs.GPAPUD.bit.GPIO12 = 0;
        GpioCtrlRegs.GPAMUX1.bit.GPIO12 = 0;
        GpioCtrlRegs.GPADIR.bit.GPIO12 = 0;  
        GpioCtrlRegs.GPAQSEL1.bit.GPIO12 = 2;
        GpioCtrlRegs.GPACTRL.bit.QUALPRD1 = 0xff;
        GpioIntRegs.GPIOXINT1SEL.bit.GPIOSEL = 12;
连接中断函数:
PieVectTable.XINT1 = &S3_GetPressed_isr;
中断使能:
   XIntruptRegs.XINT1CR.bit.POLARITY = 1;
   XIntruptRegs.XINT1CR.bit.ENABLE = 1;
IER |= M_INT1;
PieCtrlRegs.PIEIER1.bit.INTx4 = 1;
zhangmangui
2楼-- · 2019-08-04 01:03
 精彩回答 2  元偷偷看……
firstblood
3楼-- · 2019-08-04 02:01
这个是需要加入延时程序消抖的
firstblood
4楼-- · 2019-08-04 05:24
zhangmangui 发表于 2014-2-28 22:37
我曾经遇到的问题类似  是第一次能进中断  
接下来进不去了   
最后发现是外设的时钟没有使能 ...

哦,这个也会出现这个问题的?外设时钟没用的应该就不准确的
zhangmangui
5楼-- · 2019-08-04 08:24
firstblood 发表于 2014-2-28 23:04
哦,这个也会出现这个问题的?外设时钟没用的应该就不准确的

我好想曾经遇到的是ADC的中断   硬件调试的时候  每次只能进去一次
后面发现是忘记打开ADC的时钟了   是这个意思
zhangjin_comeon
6楼-- · 2019-08-04 09:56
这还奇怪了  没有遇到过

一周热门 更多>