首页 > 技术文章 > 4.内核定时器的使用

girlblooding 2017-03-12 12:15 原文

下面代码是本人在项目中遇到使用定时器的一个例子,可以编译运行正确的结果

 1 #include <linux/timer.h>
 2 
 3 struct timer_list timer;    //内核定时器全局变量
 4 
 5 void timer_init()           //放在适当的地方,以便被正确地调用
 6 {
 7     timer.data = 0;
 8     timer.expires = jiffies + 1*HZ;
 9     timer.function = (int* )timer_handler;
10     add_timer(&timer);
11 }
12 
13 int timer_handler()         //时间到,系统自动调用.由于定时器已被安装到定时器链表中了
14 {
15     br_CNT = 0;             //真正的业务逻辑
16     mt_CNT = 0;             //真正的业务逻辑
17      
18     timer.data = 0;
19     timer.expires = jiffies + 1*HZ;
20     timer.function = (int* )timer_handler;
21     add_timer(&timer);      //时间到,原定时器销毁,故需重新安装
22     
23     return 0;
24 }
25 
26  del_timer(&timer);         //超时的时候,系统自动调用,但有时需要手动显示调用.注放置的位置

 

推荐阅读