S3C6410 按键驱动(四) --- 内核定时器的使用

1.定义一个定时器

   static struct timer_list mytimer;

   这个结构体定义在kernel/include/linux/timer.h当中

 

2.初始化定时init_timer(&mytimer);

   mytimer.data = 5;                                 //该参数将传递给回调函数

  mytimer.expires = jiffies + 1;               //设置定时器触发时间 ,jiffies 定义在kernel/include/linux/jiffies当中

  mytimer.function = my_timer_callback;  //回调函数

  add_timer(&mytimer);                          //开启定时器

3.当定时器触发了一次以后,想继续定时,

   可以使用,mod_timer(&mytimer,jiffies + msecs_to_jiffies(time_value))

4.注销定时器 del_timer(&mytimer);


在驱动当中,我使用定时器来实现软件消抖。



你可能感兴趣的:(S3C6410 按键驱动(四) --- 内核定时器的使用)