高分辨率定时器(hrtimer)以ktime_t来定义时间, 精度可以达到纳秒级别 ,ktime_t定义如下:
typedef s64 ktime_t;可以用ktime_set来初始化一个ktime对象,常用方法如下:
ktime_t t = ktime_set(secs, nsecs);高分辨率hrtimer结构体定义如下:
struct hrtimer { struct timerqueue_node node; ktime_t _softexpires; enum hrtimer_restart (*function)(struct hrtimer *); struct hrtimer_clock_base *base; unsigned long state; ...... }; enum hrtimer_restart { hrtimer_norestart, /* timer is not restarted */ hrtimer_restart, /* timer must be restarted */ };struct hrtimer结构体中最主要的成员就是回调函数function,回调函数的返回值可以为hrtimer_norestart或hrtimer_restart。hrtimer_norestart代表不需要重启定时器,hrtimer_restart代表需要重启定时器。
最常用的接口如下:
hrtimer_init(struct hrtimer *timer, clockid_t clock_id , enum hrtimer_mode mode)hrtimer_start(struct hrtimer *timer, ktime_t tim, const enum hrtimer_mode mode)hrtimer_forward_now(struct hrtimer *timer,ktime_t interval)hrtimer_cancel(struct hrtimer *timer)hrtimer_init:初始化 struct hrtimer结构对象。clockid_t 是时钟的类型, 种类很多,常见的有四种:
clock_realtime:系统实时时间。clock_monotonic:从系统启动时开始计时,自系统开机以来的单调递增时间clock_process_cputime_id:本进程到当前代码系统cpu花费的时间,包含该进程下的所有线程。clock_thread_cputime_id:本线程到当前代码系统cpu花费的时间。mode 是时间的模式,可以是 hrtimer_mode_abs, 表示绝对时间, 也可以是 hrtimer_mode_rel,表 示相对时间。hrtimer_start:启动定时器。tim 是设定的到期时间, mode 和hrtimer_init中的mode参数含义相同。hrtimer_forward_now: 修改到期时间为从现在开始之后的 interval 时间。hrtimer_cancel:取消定时器。
2017年与2019年的比特币价格对比分析
多层感知机(MLP)的设计与实现
获得可靠的传感器数据:电子、光学和机械设计之间的相互作用
更新IoT设备OTA的方法
全球最快电池摩托车
Linux驱动高精度定时器hrtimer
德州仪器针对HDMI与DisplayPort推出高灵活、八通
远程控制通讯--基于Arduino + ESP8266控制LED灯
纳米材料及纳米技术在各领域的发展趋势介绍
Mark Levinson No.33XL後級
可控硅整流器件
TE开发出用于汽车线束的REM0.64端子
新加坡央行计划利用区块链来提高国际支付的效率
电动牙刷气如何进行密性防水测试
厉害了!通用电气将AR增强现实技术用于机械组装
锐龙7 2700对比 i5-9600KF测评
柔性多孔聚合物材料拉伸试验详解:利用电子万能试验机测量拉伸强度,标准流程解析
工业4.0制造的自动化和信息化正在逐步布局
比特币中国被收购 美元现货交易平台将会是以后重心
英特尔立足于物联网领域不断开创新技术的三大战略