当前位置: 首页 > news >正文

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转换未系统节拍数

http://www.dtcms.com/a/491724.html

相关文章:

  • Spring Boot消息队列与事件驱动详解
  • sql中连接方式
  • 个人网站转为企业网站百度推广怎么登录
  • 模型预估值分布
  • YOLOv1与YOLOv2:目标检测的快速进化之路
  • 建设网站用什么软件排版网站服务器怎么做的
  • 《算法通关指南---OJ题目常见的错误效果》
  • 好看的创意网站设计蓝牙小程序开发教程
  • 高阶数据结构 --- Trie 树
  • PCIe协议之 flit 模式 之 flit bytes placing 图示说明
  • 如何做网站大管家Apple 手机网站制作
  • Unity 导出 AAR包 到 Android 项目并以 Fragment渲染显示
  • 把 AI“种”进闪存:基于极值量化与分块蒸馏的 7B 大模型 U 盘部署实战
  • 中兴电信B860AV3.2-T/B860AV3.1-T2(S905L3SB)2+8G_安卓9.0_线刷固件包
  • 网站建设主要工作内容动漫制作专业一定要艺术生吗
  • .livp,.HEIC格式图片转换成jpg格式图片
  • NewStarCTF2025-Week1-Web
  • 网站根目录 本地共享阿里指数在哪里看
  • 浏阳市商务局网站溪江农贸市场建设有什么平台可以发广告
  • FPGA强化-VGA显示设计与验证
  • 【2025最新】ArcGIS for JavaScript 快速实现热力图渲染
  • 怎么设置网站的logowordpress通知邮件美化
  • SpringCloud-Gateway实战使用与深度源码分析
  • 上海网站建设|网站制作浙江新手网络推广
  • 健康管理实训室厂家报价:精准明细,按需提供
  • Git学习笔记(三)
  • 通达信组合平台
  • 怎么做微网站推广泉州建设银行网站
  • 企业网站形象建设企业申请完域名以后 怎么把网站运行起来
  • 序列的力量——Python 内置方法的魔法解密