找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1862|回復: 1
打印 上一主題 下一主題
收起左側

MCU按鍵長按短按識別的同一程序,在裸奔程序中能正常運行,而在移植了OS的任務中不不能

[復制鏈接]
跳轉到指定樓層
樓主
ID:33544 發(fā)表于 2020-3-1 12:28 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
按鍵長按短按識別的同一程序,在裸奔程序中能正常運行,而在移植了OS的任務中不能正常運行,就是下面的按鍵掃描程序
void KEY_Scan(void)

if(KEY2_DOWN)
         {
                key3_cnt=0;
                key3_Lock=0;                //自鎖
               
                  if(key3_Flag==1)  //短按觸發(fā)標志
          {
                      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;            //自鎖按鍵置位,避免一直觸發(fā)
                        Key3Sec_2++;    //長按值
                        if(Key3Sec_2>6)Key3Sec_2=0;
                        LED_Flag=!LED_Flag;
          }

                };



程序放到帶的OS單片機程序中只有長按值有效,短按無效,在裸奔程序中上面程序是放到定時器中間中的,在OS系統(tǒng)的單片機程序是放在任務中執(zhí)行的


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:697884 發(fā)表于 2020-3-4 09:21 | 只看該作者
只能說明一個問題,放的地方不對。短按的時候,只有按鍵起來后就沒有再進你這個任務了。你最好找個時間中斷,再去判斷一下。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表