Linux内核中关于定时器Timer的应用

在Touchscreen驱动中

 

1 声明 
Ad7877.c (\linux-2.6.30.4\drivers\input\touchscreen):struct timer_listtimer;/* P: lock */

2 初始化

在函数 static int __devinit ad7877_probe(struct spi_device *spi) 中

执行 setup_timer(&ts->timer, ad7877_timer, (unsigned long) ts); 进行初始化

其中ad8777_timer是回调函数,ts为给该函数的参数

3 使用

在函数 static void ad7877_callback(void *_ts) 中

mod_timer(&ts->timer, jiffies + TS_PEN_UP_TIMEOUT);

mod_timer函数用于修改超时时间,使timer继续生效

否则timer只会执行一次回调函数

4 释放

在函数 static void ad7877_disable(struct ad7877 *ts) 中

 

if (del_timer_sync(&ts->timer))

 

删除timer,del_timer_sync用于多核cpu同步,否则可以使用del_timer进行删除

posted @ 2012-08-03 09:31  软件小书童  阅读(715)  评论(0)    收藏  举报