打印

按键扫描程序,程序老是执行到按键判断语句时停止??

[复制链接]
1096|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xiaodaiDSP_2812|  楼主 | 2014-8-19 10:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
按键扫描程序

#define S1 GpioDataRegs.GPADAT.bit.GPIOA0
void Scan_Key(void);        //扫描键盘
void Manage_Key1(void);
void main(void)
{   
        InitSysCtrl();  // 系统初始化子程序,在DSP28_sysctrl.c中
        DINT;                                    // 关闭总中断
   IER = 0x0000;                           // 关闭外设中断
   IFR = 0x0000;                           // 清中断标志       
   InitPieCtrl();                        //初始化PIE控制寄存器
   InitPieVectTable();                //使能PIE向量表
//  InitPeripherals();

    EALLOW;
   GpioMuxRegs.GPADIR.bit.GPIOA0=0;
        EDIS;

        while(1)
        {if((S1==0)|(S2==0)|(S3==0)|(S4==0))

                        Scan_Key();
        }   
}
void Scan_Key(void)      
{
        unsigned int i;
        for(i=0;i<10000;i++);    //键盘消抖动
        if(S1==0)
        {
                Manage_Key1();}
}
void Manage_Key1(void)
{
        flag1=flag1+1;
}

相关帖子

沙发
xiaodaiDSP_2812|  楼主 | 2014-8-19 10:15 | 只看该作者
程序执行到if((S1==0)|(S2==0)|(S3==0)|(S4==0)),就执行不下去了,,,,,硬件路GpioDataRegs.GPADAT.bit.GPIOA0通过10K电阻接V3.3,,,另一节点通过按键接 地。已经通过LED灯证明按键按下A0口接 地 了。。。有没有高人指点??谢谢

使用特权

评论回复
板凳
siyida| | 2014-8-19 10:17 | 只看该作者
程序不完整;

使用特权

评论回复
地板
xiaodaiDSP_2812|  楼主 | 2014-8-19 16:38 | 只看该作者
siyida 发表于 2014-8-19 10:17
程序不完整;

没有全部复制上去,我现在主要是在判断按键是否按下那里卡住了,有解决办法没有,谢谢

使用特权

评论回复
5
zhangmangui| | 2014-8-19 22:54 | 只看该作者
最好的办法是你在Scan_Key函数中打个断点   然后全速运行
按下按键测试是否能进入到函数中来
GPIO配置为输入通用IO口   是否配置合理

使用特权

评论回复
6
vivilzb1985| | 2014-8-19 23:17 | 只看该作者
这应该是中断响应的问题的吧,这个不是很灵敏的啊。

使用特权

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

本版积分规则

5

主题

24

帖子

0

粉丝