C2000 按键中断 抖动怎么办

[复制链接]
1519|6
 楼主| acer4736 发表于 2014-2-28 21:50 | 显示全部楼层 |阅读模式
GPIO, AD, hp, IO, pi
c2000 launchpad,设置了S3-GPIO12的按键中断程序,不过开始运行时发现没有按键也会进入中断。而运行几秒钟后就会变好。请问这是什么问题
 楼主| acer4736 发表于 2014-2-28 21:50 | 显示全部楼层
中断函数:
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 发表于 2014-2-28 22:37 | 显示全部楼层
我曾经遇到的问题类似  是第一次能进中断  
接下来进不去了   
最后发现是外设的时钟没有使能
firstblood 发表于 2014-2-28 23:01 | 显示全部楼层
这个是需要加入延时程序消抖的
firstblood 发表于 2014-2-28 23:04 | 显示全部楼层
zhangmangui 发表于 2014-2-28 22:37
我曾经遇到的问题类似  是第一次能进中断  
接下来进不去了   
最后发现是外设的时钟没有使能 ...

哦,这个也会出现这个问题的?外设时钟没用的应该就不准确的
zhangmangui 发表于 2014-2-28 23:10 | 显示全部楼层
firstblood 发表于 2014-2-28 23:04
哦,这个也会出现这个问题的?外设时钟没用的应该就不准确的

我好想曾经遇到的是ADC的中断   硬件调试的时候  每次只能进去一次
后面发现是忘记打开ADC的时钟了   是这个意思
zhangjin_comeon 发表于 2014-2-28 23:20 | 显示全部楼层
这还奇怪了  没有遇到过
您需要登录后才可以回帖 登录 | 注册

本版积分规则

175

主题

1500

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部