日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

嵌入式实时系统程序开发一:按键程序编写

發(fā)布時間:2024/1/17 windows 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 嵌入式实时系统程序开发一:按键程序编写 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?為了回顧以前的東西,以及把操作系統(tǒng)的思想能用在處理器的多任務(wù)操作上,會持續(xù)連載一些文章,這些思想主要借鑒周慈航《基于嵌入式實時系統(tǒng)程序設(shè)計技術(shù)》一書

鍵盤程序控制技術(shù):

鍵盤作為輸入輸出口,是我們常用的一個模塊,下面把自己總結(jié)的鍵盤程序大體描繪一下。

鍵盤中有兩個問題我們需要解決:一個是防抖,一個是要避免連擊。

對于防抖:通常我們加延時函數(shù),等待按鍵穩(wěn)定后再執(zhí)行后面的步驟,但是具體要延時多長時間只能憑借經(jīng)驗或嘗試的辦法,不可靠,更好的辦法是我們可以設(shè)置兩個狀態(tài)變量,分別保存按鍵上一時刻和這一時刻的狀態(tài),當兩個狀態(tài)一樣時,說明按鍵狀態(tài)穩(wěn)定。

避免連擊:連擊通常也會造成不可預(yù)知的操作,避免連擊就是讓按鍵一次只響應(yīng)一次,為此我們需要檢測按下和釋放兩種狀態(tài),然后再執(zhí)行相應(yīng)的操作。一般有兩種方法,一是按鍵按下,執(zhí)行相應(yīng)操作,然后檢測釋放;二是,檢測按鍵按下并釋放后,然后執(zhí)行相應(yīng)操作。我一般用第二種。

程序流程:

int ? TaskKey(void* pdata)

{

  INT8U key,key0;

  while(1)

  {

    OSTimeDly(1);

    key=keyin(); ? ? ??

    if(key=未按下|key!=key0) ? ? ? ?//如果按鍵沒有按下或者按鍵前后狀態(tài)不一,繼續(xù)檢查按鍵狀態(tài)

    {

      key0=key;

      continue;

    }

    which(key)

    {

      執(zhí)行相應(yīng)按鍵解析函數(shù),并更新顯示消息。 ??

    }

    while(1)

    {

      key=keyin();

      if(key釋放) break; ? ? ? ? ? ? ? ? ? ? //如果按鍵釋放,跳出循環(huán),一次按鍵相應(yīng)操作完成

      OSTimeDly(1);

?

    }

  }

}

轉(zhuǎn)載于:https://www.cnblogs.com/summer-xwq/p/4153894.html

總結(jié)

以上是生活随笔為你收集整理的嵌入式实时系统程序开发一:按键程序编写的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。