当前位置:首页 > 操作系统 > Linux

Linux按键设备驱动二

① 按键所用开关为物理机械弹性开关,当机械触点断开、闭合时,由于机械弹性作用,开关不会马上稳定的接通或者断开。因而在闭合及断开的瞬间总是伴随有一连串的抖动

 

② 按键去抖的方法主要有两种

(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

 

⑤ 简单示例

 

原文:https://www.cnblogs.com/wulei0630/p/9510759.html


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!