0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux驱动定时器使用示例

麦辣鸡腿堡 来源:嵌入式Linux充电站 作者:Vincent 2023-10-04 15:47 次阅读

定时器使用示例

使用步骤:

1、调用init_timer初始化一个定时器,给struct timer_list各成员赋值。

2、调用add_timer将定时器添加到内核定时器链表,时间到后回调函数自动调用,用mod_timer修改expires的值可实现循环定时。

3、不需要定时器时,调用del_timer删除。

单次定时

加载驱动一秒钟后,打印出“timer handler, data:520”:

#include < linux/init.h >
#include < linux/kernel.h >
#include < linux/module.h >

#include < linux/sched.h >//jiffies在此头文件中定义
#include < linux/timer.h >//struct timer_list

struct timer_list timer;

static void timer_handler (unsigned long arg)
{
 printk("timer handler, data:%dn", arg);
}

static int __init my_init(void)
{
 printk("%s entern", __func__);

 init_timer(&timer);
 timer.expires = get_jiffies_64() + msecs_to_jiffies(1000);//定时1秒
 timer.function = timer_handler;
 timer.data = 520;
 add_timer(&timer);

    return 0;
}

static void __exit my_exit(void)
{
 printk("%s entern", __func__);
 del_timer(&timer);
}

module_init(my_init);
module_exit(my_exit);
MODULE_LICENSE("GPL");

循环定时

实现循环定时就是在定时时间到了之后, 调用mod_timer函数再次修改定时时间

每隔一秒钟打印“timer handler, data:520

#include < linux/init.h >
#include < linux/kernel.h >
#include < linux/module.h >

#include < linux/sched.h >//jiffies在此头文件中定义
#include < linux/timer.h >//struct timer_list

struct timer_list timer;

static void timer_handler (unsigned long arg)
{
 printk("timer handler, data:%dn", arg);

 mod_timer(&timer, get_jiffies_64() + msecs_to_jiffies (1000));
}

static int __init my_init(void)
{
 init_timer(&timer);
 timer.expires = get_jiffies_64() + msecs_to_jiffies (1000);//定时1秒
 timer.function = timer_handler;
 timer.data = 520;
 add_timer(&timer);

    return 0;
}

static void __exit my_exit(void)
{
 del_timer(&timer);
}

module_init(my_init);
module_exit(my_exit);
MODULE_LICENSE("GPL");
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 内核
    +关注

    关注

    3

    文章

    1188

    浏览量

    39612
  • 驱动
    +关注

    关注

    11

    文章

    1613

    浏览量

    83849
  • Linux
    +关注

    关注

    85

    文章

    10263

    浏览量

    205828
  • 定时器
    +关注

    关注

    23

    文章

    2844

    浏览量

    111217
收藏 人收藏

    评论

    相关推荐

    Linux内核定时器的相关资料分享

    示例代码按键消抖Linux内核定时器概念Linux内核定时器基础知识Linux内核定时器相关函数时间转换函数ms转换时钟节拍函数us转换时钟节拍函数宏DEFINE_TIMERadd_timer函数del_timer函数
    发表于 12-20 08:05

    定时器、PWM、ICP范例(AVR 定时器使用范例)

    定时器使用范例 
    发表于 11-01 01:23 77次下载

    STM32F1通用定时器示例详解--TIM15_Compleme

    定时器示例详解--TIM15_ComplementarySignals
    发表于 12-07 18:15 54次下载

    STM32F1通用定时器示例讲解_Timebase

    定时器示例详解—Timebase
    发表于 12-07 18:14 8次下载

    STM32通用定时器的单脉冲示例详解

    定时器的 17 个示例项目函数文件。本次介绍 OnePulse。
    发表于 07-01 08:00 10次下载
    STM32通用<b>定时器</b>的单脉冲<b>示例</b>详解

    WinCC中定时器使用方法介绍

    定时器使用方法介绍说明。
    发表于 04-22 14:50 8次下载

    详细剖析Linux和RTOS(RT-Thread)的时钟和定时器的使用

    Linux发烧友1.RTOS篇1.1RT-Thread简介1.2时钟管理1.2.1时钟节拍1.3获取系统节拍1.4定时器分类1.5定时器源码分析1.6定时器相关函数1.61动态创建一个定时器和删除
    发表于 01-17 09:31 4次下载
    详细剖析<b>Linux</b>和RTOS(RT-Thread)的时钟和<b>定时器</b>的使用

    利用通用定时器输出PWM(附示例驱动直流电机)

    定时器的配置方法,本节先介绍通用定时器和基本定时器的差异,然后粗略讲述PWM波原理,然后讲述如何配置通用定时器,最后进行PWM波
    发表于 04-03 14:56 0次下载
    利用通用<b>定时器</b>输出PWM(附<b>示例</b><b>驱动</b>直流电机)

    如何利用单片机看门狗定时器使led闪烁

    定时器,因此可以把他当作定时器来使用
    发表于 02-11 10:00 3451次阅读
    如何利用单片机看门狗<b>定时器使</b>led闪烁

    关于STM32定时器触发SPI逐字收发之应用示例

    定时器触发SPI逐字收发之应用
    的头像 发表于 01-14 16:35 4763次阅读

    基于STM32定时器捕获测量脉宽的应用示例

    定时器基本的输入捕获功能结合中断或DMA即可实现;若使用两个通道时可以将捕获功能与定时器的从模式来相结合完成。这里就两种方案的实现示例都做个简单
    的头像 发表于 01-02 18:17 1.1w次阅读
    基于STM32<b>定时器</b>捕获测量脉宽的应用<b>示例</b>

    Linux驱动开发-内核定时器

    定时器是内核用来控制在未来某个时间点(基于jiffies(节拍总数))调度执行某个函数的一种机制,相关函数位于 <linux/timer.h> 和 kernel/timer.c 文件
    的头像 发表于 09-17 15:06 937次阅读

    Linux内核定时器

    Linux内核中,也可以通过定时器来完成定时功能。但和单片机不同的是,Linux内核定时器是一种基于未来时间点的计时方式,它以当前时刻为启动的时间点,以未来的某一时刻为终止点,类似于我们的闹钟。
    的头像 发表于 09-22 08:56 1140次阅读
    <b>Linux</b>内核<b>定时器</b>

    CKS32F4xx系列产品的定时器使用-基本特征和定时操作

    定时器使用,CKS32F4XX的定时器功能十分强大,包含2个高级控制定时器,8个普通定时器,2个基础定时器,以及两个看门狗定时器和一个系统定时器,总共15个定时器之多。关于定时器部分内容的讲
    的头像 发表于 05-19 09:18 225次阅读
    CKS32F4xx系列产品的<b>定时器使</b>用-基本特征和<b>定时</b>操作

    STM32F407 基本定时器使

    定时器的配置方法,分别介绍轮询方式、中断方式使用定时器完成定时
    的头像 发表于 07-06 14:32 865次阅读
    STM32F407 基本<b>定时器使</b>用