28335程序按键等待问题

2019-07-26 16:02发布

本帖最后由 halou 于 2015-8-4 10:47 编辑

我是想让按下按键1,电机开始转,主函数中设置等待程序,但是按键后不转,请大家帮帮忙

//主函数中问题句子
    while(GpioDataRegs.GPBDAT.bit.GPIO53);
//将while(GpioDataRegs.GPBDAT.bit.GPIO53);//后电机正常运转
    DELAY_US(50L);
    startmotor();

//IO初始化定义
EALLOW;
    GpioCtrlRegs.GPBPUD.bit.GPIO53 = 0;            // Enable pullup on GPIO53  拉高IO口
    GpioCtrlRegs.GPBMUX2.bit.GPIO53  = 0;           // 设置为一般IO口
    GpioCtrlRegs.GPBDIR.bit.GPIO53   = 0;            // IO口方向为输入   
EDIS;
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
zhangmangui
1楼-- · 2019-07-26 21:53
第一个问题    你的按键先做防抖动处理   
zhangmangui
2楼-- · 2019-07-27 01:10
startmotor();

此函数执行完的后面是什么?
zhangmangui
3楼-- · 2019-07-27 04:11
执行完不会又回到while中去判断了吧   
你一直按着按键看什么情况
halou
4楼-- · 2019-07-27 06:41
本帖最后由 halou 于 2015-8-4 10:22 编辑
zhangmangui 发表于 2015-8-3 21:23
startmotor();

此函数执行完的后面是什么?

这是主函数最后
        while(GpioDataRegs.GPBDAT.bit.GPIO53);

    DELAY_US(50L);
        startmotor();
         // convert and store in 8 results registers
// Enable global Interrupts and higher priority real-time debug events:
    EINT;   // Enable Global interrupt INTM
    ERTM;   // Enable Global realtime interrupt DBGM
while(1)
{};        
}
halou
5楼-- · 2019-07-27 07:07
 精彩回答 2  元偷偷看……
halou
6楼-- · 2019-07-27 12:13
本帖最后由 halou 于 2015-8-4 10:21 编辑
zhangmangui 发表于 2015-8-3 21:22
第一个问题    你的按键先做防抖动处理

这样属于防抖动吧

while(!flag)
    {
            if(GpioDataRegs.GPBDAT.bit.GPIO53 == 0)
            {
                     KeyTime++;
                     if(KeyTime >= 6000)
                     {
                             flag = 1;
                         }
                }
        }
        startmotor();
// Enable global Interrupts and higher priority real-time debug events:
    EINT;   // Enable Global interrupt INTM
    ERTM;   // Enable Global realtime interrupt DBGM
while(1)
{};        
}

一周热门 更多>