hrtimer小结

hrtimer是一个高精度计时器

本次使用了一个struct hrtimer mtimer;

 struct work_struct mtimerwork;
 hrtimer_init(&pTAS2557->mtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
 pTAS2557->mtimer.function = firmware_timer_func;

另外:在static void tas2557_firmware_init(struct tas2557_priv *pTAS2557)函数中完成了hrtimer_init的初始化工作

   {     
     INIT_WORK(&pTAS2557->mtimerwork, firmware_work_routine);  //工作队列-----------------+
     hrtimer_start(&pTAS2557->mtimer,							  |
     ktime_set(ram_timer_val/1000, (ram_timer_val%1000)*1000000),                         |
	     HRTIMER_MODE_REL);                                //设置定时参数              |
   }	
									  |

--------------------------------------------------------------分割线------------------------------+
其中: static enum hrtimer_restart temperature_timer_func(struct hrtimer *timer)指定回调函数 |
static void timer_work_routine(struct tas2557_priv *pTAS2557) <--------------------+

相关内容:
struct hrtimer 结构体

1.hrtimer_init hrtimer初始化工作
hrtimer_init(&vibe_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
其中:vibe_timer.function = timer_func; timer_func自己定义
hrtimer结构体变量.函数

2.static enum hrtimer_restart timer_func(struct hrtimer *timer)
设置定时器回调函数,定时器到调用该函数(不可中断)

3.hrtimer_start
hrtimer_start(&vibe_timer,
ktime_set(value / 1000, (value % 1000) * 1000000),HRTIMER_MODE_REL);
第一个参数是秒 第二个参数为毫秒
4.要取消一个hrtimer,使用hrtimer_cancel:
int hrtimer_cancel(struct hrtimer *timer);

参考资料:
https://www.cnblogs.com/sky-heaven/p/5404620.html
https://www.cnblogs.com/zzb-Dream-90Time/p/7098225.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值