經典按鍵演算法使用心得

2021-09-23 20:23:18 字數 1397 閱讀 8900

大神按鍵處理程式:原著

另一位大神詳細對上面的博文發表的個人看法,並加入防抖

1、未加防抖

unsigned char trg;

unsigned char cont;

void keyread( void )

#define key_mode 0x01 // 模式按鍵

#define key_plus 0x02 // 加

void keyproc(void)

if (cont & key_plus) // 如果「加」按鍵被按著不放

}}

2、加入防抖

//按鍵變數

unsigned char keypressdown=0x00;

unsigned char keyrelease=0x00;

unsigned char lastkey=0x00;

//按鍵掃瞄,定時10ms執行一次

void keyscan(void)

我是新手,看了半天才領會演算法防抖的奇妙

我對程式加注釋

void key_check(void)

void io_read(void)

typedef union

onebits;

}key_type;

currreadkey   currkey   keytrg    keyrel    lastkey   lastreadkey

初始值: 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000

按下消抖: 0x0001 0x0000 0x0000 0x0000 0x0000 0x0001

確認按下: 0x0001 0x0001 0x0001 0x0000 0x0001 0x0001

長按按鍵: 0x0001 0x0001 0x0000 0x0000 0x0001 0x0001

釋放消抖: 0x0000 0x0001 0x0000 0x0000 0x0001 0x0000

確認釋放: 0x0000 0x0000 0x0000 0x0001 0x0000 0x0000

這樣看是不是更能理解了?我只要判斷lastkey、keyrel、keytrg的值就能判斷按鍵所處的狀態,而且通過建立乙個共同體就能不受限制的使用任何乙個引腳,只要 #define key1_in _ra8,巨集定義一下。這裡只需要注意共同體的值就可以了。

frameset 使用心得

欲明白本篇 html徹底剖析 之標記分類,請看 標記一覽 也請先明白圍堵標記與空標記的分別,請看 html概念 框架概念 謂框架便是網頁畫面分成幾個框窗,同時取得多個 url。只需要 即可,面所有框架標記需要放在乙個總起的 html 檔,這個檔案只記錄了該框架如何分割 不會顯示任何資料,所以不必放入...

Access使用心得

今天臨時用access做資料庫,長期用sql server開發習慣了,總結一下現在為止用到的比較大的差異,以後有新的再補了 1 返回字串長度 len s lenb s 前者返回字元數,後者返回位元組數,並且access中text型別字元統一為2位元組,與sql2000不同。2 join的使用 acc...

vmware使用心得

成功在winxp環境中安裝了vista business版本,反之,亦然。可以建立工作組網路連線了,虛擬機器也可以訪問網際網路了。安裝說明 在安裝嚮導中,無論使用哪種網路連線形式,都不影響正確安裝。安裝後,可以編輯本地機和虛擬機器之間的網路連線形式。需要注意三個細節問題 1 網絡卡要設定為 電源啟動...