国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于STM32平臺(tái)的C語言的按鍵處理的研究與應(yīng)用

2019-09-10 07:22李文軍
關(guān)鍵詞:抗干擾按鍵

李文軍

【摘?要】把有限狀態(tài)機(jī)應(yīng)用于按鍵的識(shí)別過程中,能夠識(shí)別按鍵抬起、按鍵短按、按鍵長(zhǎng)按等三個(gè)狀態(tài),并在此三狀態(tài)的狀態(tài)機(jī)上改進(jìn)了按鍵的消除抖動(dòng)的觸發(fā)時(shí)機(jī),綜合考慮了在某些場(chǎng)景下,按鍵有效操作的準(zhǔn)確識(shí)別和按鍵無效操作的干擾甄別的工作,提高了按鍵識(shí)別的準(zhǔn)確性和抗干擾能力,并在單鍵識(shí)別的基礎(chǔ)上,把有限狀態(tài)機(jī)應(yīng)用到雙鍵(兩個(gè)按鍵同時(shí)操作)觸發(fā)邏輯的識(shí)別過程中,同時(shí)完全兼容單個(gè)按鍵的任何操作(單個(gè)按鍵短按、單個(gè)按鍵短按抬起、單個(gè)按鍵長(zhǎng)按、單個(gè)按鍵長(zhǎng)按抬起等),同時(shí)還不會(huì)引起單鍵的誤操作,使之互不干擾,極大地?cái)U(kuò)展了多個(gè)按鍵間邏輯組合的可能性,使之能用最少的按鍵實(shí)現(xiàn)最多的邏輯功能。

【關(guān)鍵詞】有限狀態(tài)機(jī);按鍵;抗干擾;雙鍵識(shí)別

1 引言

目前公司的很多型號(hào)的顯示器中多有按鍵的采集與使用,硬件平臺(tái)有不少是基于STM32平臺(tái)的,代碼是用標(biāo)準(zhǔn)C語言編寫,每個(gè)產(chǎn)品的按鍵需要實(shí)現(xiàn)的功能的難易也基本相同,大多為簡(jiǎn)單的單鍵短按或者單鍵長(zhǎng)按功能,所有其按鍵處理代碼有很大的通用性與相似性。按鍵處理代碼沿用的較多。但是在某型指示器的研發(fā)交付使用過程中,用戶的需求仍在大量頻繁的產(chǎn)生,其中就有必須要用到組合按鍵的邏輯功能,這就對(duì)按鍵的及時(shí)準(zhǔn)確的采集與處理提出了相當(dāng)高的要求,不巧的是,我們偶然發(fā)現(xiàn)此產(chǎn)品在使用過程中,其每一個(gè)按鍵在經(jīng)過若干次按壓后,就會(huì)產(chǎn)生一次按鍵失效,判斷是軟件缺陷導(dǎo)致的問題,這就要求我們必須重新審視、優(yōu)化我們一直以來的通用性的按鍵處理代碼,不僅要保證按鍵每一次采集的準(zhǔn)確性和有效性,同時(shí)也要提高按鍵的抗干擾能力,最終達(dá)到解決組合按鍵功能擴(kuò)展的目的。

2 單個(gè)按鍵的狀態(tài)遷移設(shè)計(jì)

對(duì)于單個(gè)按鍵的狀態(tài)變化,詳見圖1 單個(gè)按鍵的狀態(tài)遷移圖。

我們約定,如果按鍵原先為抬起動(dòng)作,則記它從按下到有效按下的時(shí)間為t0時(shí)間,簡(jiǎn)稱按鍵按下的消除抖動(dòng)時(shí)間;

如果按鍵原先為按下動(dòng)作,則記它從抬起到有效抬起的時(shí)間為t1時(shí)間,簡(jiǎn)稱按鍵抬起的消除抖動(dòng)時(shí)間;

1,一個(gè)按鍵的最初始動(dòng)作記為按鍵抬起(標(biāo)記為狀態(tài)0);

2,狀態(tài)0在按鍵按下持續(xù)時(shí)間小于t0時(shí)間后,仍為狀態(tài)0;

3,狀態(tài)0在按鍵按下持續(xù)時(shí)間不小于t0時(shí)間后,狀態(tài)遷移到按鍵按下(狀態(tài)1);

4,狀態(tài)1在按鍵抬起持續(xù)時(shí)間小于t1時(shí)間后,仍為狀態(tài)1;

5,按鍵按下(狀態(tài)1)在按鍵按下持續(xù)一段時(shí)間(為程序定義的按鍵長(zhǎng)按的最短時(shí)間,一般取值在0.5秒~1.0秒之間)后,狀態(tài)遷移到按鍵長(zhǎng)按(狀態(tài)2);

6,狀態(tài)1在按鍵抬起持續(xù)時(shí)間不小于t1時(shí)間后,設(shè)置短按抬起事件標(biāo)志;

7,狀態(tài)2在按鍵抬起持續(xù)時(shí)間不小于t1時(shí)間后,設(shè)置長(zhǎng)按抬起事件標(biāo)志;

8,在狀態(tài)2下按鍵仍持續(xù)按下,如達(dá)到50×10毫秒時(shí),設(shè)置長(zhǎng)按按下事件標(biāo)志a,如達(dá)到100×10毫秒時(shí),設(shè)置長(zhǎng)按按下事件標(biāo)志b,如達(dá)到150×10毫秒時(shí),設(shè)置長(zhǎng)按按下事件標(biāo)志c,依次類推,這樣就極大地、靈活地?cái)U(kuò)展了按鍵長(zhǎng)按的事件個(gè)數(shù),非常便于移植和修改;

9,在狀態(tài)2下按鍵仍持續(xù)按下,超過了設(shè)定的按鍵按下的最長(zhǎng)時(shí)間后,認(rèn)為按鍵卡死,狀態(tài)遷移到按鍵卡死(狀態(tài)3);

10,在設(shè)置抬起事件標(biāo)志(短按抬起事件標(biāo)志或者長(zhǎng)按抬起事件標(biāo)志)之后,按鍵抬起持續(xù)時(shí)間在小于主程序運(yùn)行周期(一般為40毫秒)的兩倍時(shí)間后,即在小于80毫秒時(shí)間內(nèi),必須清除抬起事件標(biāo)志,如若在應(yīng)用層代碼中沒有人為調(diào)用后清除抬起事件標(biāo)志,則按鍵處理程序會(huì)在規(guī)定時(shí)間內(nèi)強(qiáng)制清除抬起事件標(biāo)志,這就解決了按鍵抬起標(biāo)志的干擾問題(一般由按鍵無效操作的引起)。

3 單鍵處理邏輯、雙鍵處理邏輯及狀態(tài)遷移設(shè)計(jì)

對(duì)于單鍵處理邏輯、雙鍵處理邏輯的綜合考慮以及兩個(gè)按鍵狀態(tài)的(簡(jiǎn)稱雙鍵狀態(tài))變化,詳見圖2單鍵、雙鍵處理以及雙鍵狀態(tài)遷移圖。

關(guān)于圖2中各個(gè)狀態(tài)的解釋說明見下表1 雙鍵狀態(tài)名稱說明。

關(guān)于圖2中雙鍵狀態(tài)間的遷移條件的說明見表2雙鍵狀態(tài)間的遷移條件說明。

結(jié)束語

這樣我們通過合理設(shè)計(jì)的單鍵狀態(tài)機(jī)和雙鍵狀態(tài)機(jī),可以保證按鍵每一次采集的準(zhǔn)確性和有效性,同時(shí)也要提高按鍵的抗干擾能力,最終達(dá)到解決組合按鍵功能擴(kuò)展的目的,極大地?cái)U(kuò)展了多個(gè)按鍵間邏輯組合的可能性,使之能用最少的按鍵實(shí)現(xiàn)最多的邏輯功能,這在目前公司的產(chǎn)品中已得到非常好的運(yùn)用,使用效果良好。

參考文獻(xiàn):

[1] 何劍宇,劉兢兢.有限狀態(tài)機(jī)建模在嵌入式按鍵設(shè)計(jì)中的應(yīng)用[J].沈陽(yáng)師范大學(xué)學(xué)報(bào):自然科學(xué)版,2012,30(2):168-171.

[2] 唐飛,查長(zhǎng)理.基于有限狀態(tài)機(jī)的STM32系統(tǒng)按鍵識(shí)別方法[J].長(zhǎng)春工業(yè)大學(xué)學(xué)報(bào):自然科學(xué)版,2013,34(2):160-164.

(作者單位:太原航空儀表有限公司 顯示技術(shù)研究所)

猜你喜歡
抗干擾按鍵
非觸勿動(dòng) 秒治鍵盤誤觸
熟悉的犬
艦載雷達(dá)面臨的電子對(duì)抗威脅及防范措施分析
變頻器控制回路抗干擾措施及調(diào)試故障處理
未來的筆
異步電動(dòng)機(jī)節(jié)能控制方法及抗干擾技術(shù)
其實(shí)真的很簡(jiǎn)單教你輕松關(guān)閉WP8.1手機(jī)按鍵燈
計(jì)算器
按鍵消抖電路瞬態(tài)分析和設(shè)計(jì)