码迷,mamicode.com
首页 > 系统相关 > 详细

Linux按键设备驱动二

时间:2018-08-21 14:00:25      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:for   span   func   函数   linux内核   抖动   list   启动   延时   

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

 

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

(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按键设备驱动二

标签:for   span   func   函数   linux内核   抖动   list   启动   延时   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!