打印

C2000 按键中断 抖动怎么办

[复制链接]
1245|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
acer4736|  楼主 | 2014-2-28 21:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
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 | 只看该作者
这个是需要加入延时程序消抖的

使用特权

评论回复
5
firstblood| | 2014-2-28 23:04 | 只看该作者
zhangmangui 发表于 2014-2-28 22:37
我曾经遇到的问题类似  是第一次能进中断  
接下来进不去了   
最后发现是外设的时钟没有使能 ...

哦,这个也会出现这个问题的?外设时钟没用的应该就不准确的

使用特权

评论回复
6
zhangmangui| | 2014-2-28 23:10 | 只看该作者
firstblood 发表于 2014-2-28 23:04
哦,这个也会出现这个问题的?外设时钟没用的应该就不准确的

我好想曾经遇到的是ADC的中断   硬件调试的时候  每次只能进去一次
后面发现是忘记打开ADC的时钟了   是这个意思

使用特权

评论回复
7
zhangjin_comeon| | 2014-2-28 23:20 | 只看该作者
这还奇怪了  没有遇到过

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

175

主题

1500

帖子

3

粉丝