打印

C2000 按键中断 抖动

[复制链接]
1029|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
beiwaroad|  楼主 | 2013-11-28 22:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
pi, gp, GPIO, IO, se
新手刚开始学c2000 launchpad,设置了S3-GPIO12的按键中断程序,不过开始运行时发现没有按键也会进入中断。而运行几秒钟后就会变好。请问这是什么问题,程序如下:
中断函数:
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;

相关帖子

沙发
beiwaroad|  楼主 | 2013-11-28 22:13 | 只看该作者
请问问题在哪里?

使用特权

评论回复
板凳
zhangmangui| | 2013-11-28 22:38 | 只看该作者
相应模块的时钟有没有使能

使用特权

评论回复
地板
zhangmangui| | 2013-11-28 22:40 | 只看该作者
相应模块的时钟有没有使能

使用特权

评论回复
5
拿起书本| | 2013-11-29 19:31 | 只看该作者
楼主在进行初始化时要清除中断标志 哦

使用特权

评论回复
6
huangfeng33| | 2013-11-30 21:10 | 只看该作者
加这些语句看看:
// Disable CPU interrupts
   DINT;

// Initialize the PIE control registers to their default state.
// The default state is all PIE interrupts disabled and flags
// are cleared.
   InitPieCtrl();

// Disable CPU interrupts and clear all CPU interrupt flags:
   IER = 0x0000;
   IFR = 0x0000;

// Initialize the PIE vector table with pointers to the shell Interrupt
   InitPieVectTable();

使用特权

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

本版积分规则

86

主题

964

帖子

2

粉丝