定时器的使用
#include <linux/jiffies.h>
1,定义一个定时器结构变量 battery_poll_timer
struct timer_list battery_poll_timer;
2,定义一个定时器回调处理函数 battery_poll_timer_func
定时器时间到了就被调用。
static void battery_poll_timer_func(unsigned long pdi)
{
struct tps80031_device_info *di = (void *)pdi;
power_supply_changed(&di->bat); //发uevent给上层
mod_timer(&di->battery_poll_timer,
jiffies + msecs_to_jiffies(BATTERY_POLL_PERIOD));//更改定时时间重新启动定时器
}
3,定义一个定时器和定义的定时器回调函数建立关系
setup_timer(&di->battery_poll_timer,
battery_poll_timer_func, (unsigned long) di);
4,启动定时器,设置定时时间
mod_timer(&di->battery_poll_timer,
jiffies + msecs_to_jiffies(BATTERY_POLL_PERIOD));
#include <linux/jiffies.h>
1,定义一个定时器结构变量 battery_poll_timer
struct timer_list battery_poll_timer;
2,定义一个定时器回调处理函数 battery_poll_timer_func
定时器时间到了就被调用。
static void battery_poll_timer_func(unsigned long pdi)
{
struct tps80031_device_info *di = (void *)pdi;
power_supply_changed(&di->bat); //发uevent给上层
mod_timer(&di->battery_poll_timer,
jiffies + msecs_to_jiffies(BATTERY_POLL_PERIOD));//更改定时时间重新启动定时器
}
3,定义一个定时器和定义的定时器回调函数建立关系
setup_timer(&di->battery_poll_timer,
battery_poll_timer_func, (unsigned long) di);
4,启动定时器,设置定时时间
mod_timer(&di->battery_poll_timer,
jiffies + msecs_to_jiffies(BATTERY_POLL_PERIOD));