野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2906|回复: 0

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

[复制链接]
发表于 2020-3-1 12:38:25 | 显示全部楼层 |阅读模式
按键长按短按识别的同一程序,在裸奔程序中能正常运行,而在移植了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系统的单片机程序是放在任务中执行的


回复

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-21 23:45 , Processed in 0.035710 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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