找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1475|回复: 1
打印 上一主题 下一主题
收起左侧

MCU按键长按短按识别的同一程序,在裸奔程序中能正常运行,而在移植了OS的任务中不不能

[复制链接]
跳转到指定楼层
楼主
ID:33544 发表于 2020-3-1 12:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
按键长按短按识别的同一程序,在裸奔程序中能正常运行,而在移植了OS的任务中不能正常运行,就是下面的按键扫描程序
void KEY_Scan(void)

if(KEY2_DOWN)
         {
                key3_cnt=0;
                key3_Lock=0;                //自锁
               
                  if(key3_Flag==1)  //短按触发标志
          {
                      key3_Flag=0;
                 Key3Sec_1=!Key3Sec_1;    //短按值

          }
          }
else if(key3_Lock==0)
                {        
          key3_cnt++;

          if(key3_cnt>20)
                     {
             key3_Flag=1;   //激活按键短按的有效标志
                        
                     }
                     
                if(key3_cnt>3000)
               {
                  key3_Flag=0;             //清除按键短按的有效标志
                          key3_cnt=0;
                key3_Lock=1;            //自锁按键置位,避免一直触发
                        Key3Sec_2++;    //长按值
                        if(Key3Sec_2>6)Key3Sec_2=0;
                        LED_Flag=!LED_Flag;
          }

                };



程序放到带的OS单片机程序中只有长按值有效,短按无效,在裸奔程序中上面程序是放到定时器中间中的,在OS系统的单片机程序是放在任务中执行的


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:697884 发表于 2020-3-4 09:21 | 只看该作者
只能说明一个问题,放的地方不对。短按的时候,只有按键起来后就没有再进你这个任务了。你最好找个时间中断,再去判断一下。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表