1. 程式人生 > >Linux按鍵設備驅動二

Linux按鍵設備驅動二

一個 UNC 設置 expire 驅動 head pan fun 開關

① 按鍵所用開關為物理機械彈性開關,當機械觸點斷開、閉合時,由於機械彈性作用,開關不會馬上穩定的接通或者斷開。因而在閉合及斷開的瞬間總是伴隨有一連串的抖動

② 按鍵去抖的方法主要有兩種

(1)硬件電路去抖

(2)軟件延時去抖

  * for循環等待

  * 定時器延時

③ Linux內核使用struct timer_list來描述一個定時器

struct timer_list {
    struct list_head entry;
    unsigned long expires;

    void (*function)(unsigned long);
    unsigned 
long data; struct tvec_base *base; };

④ 定時器使用流程

(1)定義定時器變量

(2)初始化定時器:用init_timer,主要設置超時函數

(3)註冊定時器:add_timer

(4)啟動定時器:mod_timer

⑤ 簡單示例

Linux按鍵設備驅動二