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

2019-07-31 16:10发布

按键扫描程序

#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;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
xiaodaiDSP_2812
1楼-- · 2019-07-31 17:51
 精彩回答 2  元偷偷看……
siyida
2楼-- · 2019-07-31 21:57
程序不完整;
xiaodaiDSP_2812
3楼-- · 2019-07-31 22:42
siyida 发表于 2014-8-19 10:17
程序不完整;

没有全部复制上去,我现在主要是在判断按键是否按下那里卡住了,有解决办法没有,谢谢
zhangmangui
4楼-- · 2019-08-01 02:58
最好的办法是你在Scan_Key函数中打个断点   然后全速运行
按下按键测试是否能进入到函数中来
GPIO配置为输入通用IO口   是否配置合理
vivilzb1985
5楼-- · 2019-08-01 08:13
这应该是中断响应的问题的吧,这个不是很灵敏的啊。

一周热门 更多>