Kernel5.4 Timer定时器使用

一.需求

设置一个定时器timer,产生中断时timer清零(避免定时器和中断打架同时上报):

当timer timeout模拟弹起事件(上报所有按键)避免按键一直处于按下状态;

二.API接口

#include <linux/module.h>

#include <linux/init.h>

#include <linux/timer.h>

static struct timer_list my_timer; //声明定时器全局变量

static void my_timer_function(struct timer_list *t); //定义定时器到期执行函数

timer_setup(&my_timer, my_timer_function, 0); //设置定时器

mod_timer(&my_timer, jiffies + msecs_to_jiffies(60)); //6表示6* 10ms即设置超时60ms

del_timer(&my_timer); //删除定时器

三.代码

复制代码
#include <linux/module.h>
#include <linux/init.h>
#include <linux/timer.h>

static struct timer_list	my_timer;  //声明定时器全局变量
static void my_timer_function(struct timer_list *t);  //定义定时器到期执行函数

//probe初始化定时器变量的function和data字段
timer_setup(&my_timer, my_timer_function, 0);	
//设置超时60ms
mod_timer(&my_timer, jiffies + msecs_to_jiffies(60)); //6表示6个滴答后超时即6* 10ms

//remove时删除定时器
del_timer(&my_timer);

//定时器服务函数
static void my_timer_function(struct timer_list *t)
{
//判断是触发哪个定时器
if(t == &my_timer){
num=4;
for(i=0;i<num;i++)
{
    key_report_value(sn7326_array_uni[i].i2c_up_value);	
}
//定时器到时后需要重新设置time时间,否则定时器到期后不再执行
//并激活timer
mod_timer(&my_timer, jiffies + msecs_to_jiffies(60)); //6表示6个滴答后超时即6* 10ms
}
}


//触发中断后,清零定时器。避免定时器和中断打架同时上报
del_timer(&my_timer); //有中断产生后清零定时器
//中断完成后重新设置定时器
timer_setup(&my_timer, my_timer_function, 0);	
//设置timer时间为60ms
mod_timer(&my_timer, jiffies + msecs_to_jiffies(60)); //60 ms转换未系统节拍数
相关推荐
别动我齐刘海1 小时前
C++ 工程化学习
java·linux·前端·c++·学习·机器学习·机器人
玖石书3 小时前
Ubuntu 24.04 UFW 全命令攻略:从入门到端口开放实战
linux·运维·ubuntu
xiaoqiMikko3 小时前
Linux 实战(七):useradd、sudoers、umask、SGID、软链 —— 三台真机实测
linux·centos
拂拉氏5 小时前
【知识讲解】 Linux之动静态库的了解
linux·运维·服务器·动静态库
Fcy6485 小时前
Linux下 五种IO模型的认识与⾮阻塞IO的实现
linux·服务器·io
Mikko76 小时前
Linux 重启后日志没了?进程被 OOM 杀了去哪看?logrotate 之后日志还往旧文件写?三台真机实测日志与性能排查
linux·运维·centos
书生执笔画浮沉6 小时前
分享一个开源小工具CAdapt
linux·c·gnu·glibc·kernel·升级·灵感
mounter6256 小时前
Linux 内核热升级(Live Update)技术详解:PCI、VFIO 与 IOMMU 子系统的演进与实战解析引言
linux·linux kernel·kernel·iommu·vfio
砚凝霜7 小时前
【软考信息安全】第十九章 Unix/Linux安全分析与防护
linux·安全·unix
creator_Li7 小时前
Linux 的 Page Cache
linux·page cache