定時(shí)器使用示例
使用步驟:
1、調(diào)用init_timer初始化一個(gè)定時(shí)器,給struct timer_list各成員賦值。
2、調(diào)用add_timer將定時(shí)器添加到內(nèi)核定時(shí)器鏈表,時(shí)間到后回調(diào)函數(shù)自動(dòng)調(diào)用,用mod_timer修改expires的值可實(shí)現(xiàn)循環(huán)定時(shí)。
3、不需要定時(shí)器時(shí),調(diào)用del_timer刪除。
單次定時(shí)
加載驅(qū)動(dòng)一秒鐘后,打印出“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);//定時(shí)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");
循環(huán)定時(shí)
實(shí)現(xiàn)循環(huán)定時(shí)就是在定時(shí)時(shí)間到了之后, 調(diào)用mod_timer函數(shù)再次修改定時(shí)時(shí)間 。
每隔一秒鐘打印“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);//定時(shí)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");
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
-
內(nèi)核
+關(guān)注
關(guān)注
4文章
1468瀏覽量
42880 -
驅(qū)動(dòng)
+關(guān)注
關(guān)注
12文章
1956瀏覽量
88547 -
Linux
+關(guān)注
關(guān)注
88文章
11760瀏覽量
219045 -
定時(shí)器
+關(guān)注
關(guān)注
23文章
3368瀏覽量
123653
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
熱點(diǎn)推薦
Linux驅(qū)動(dòng)開(kāi)發(fā)-內(nèi)核定時(shí)器
內(nèi)核定時(shí)器是內(nèi)核用來(lái)控制在未來(lái)某個(gè)時(shí)間點(diǎn)(基于jiffies(節(jié)拍總數(shù)))調(diào)度執(zhí)行某個(gè)函數(shù)的一種機(jī)制,相關(guān)函數(shù)位于 和 kernel/timer.c 文件
Linux內(nèi)核定時(shí)器的相關(guān)資料分享
del_timer函數(shù)mod_timer函數(shù)示例代碼按鍵消抖Linux內(nèi)核定時(shí)器概念Linux內(nèi)核定時(shí)器基礎(chǔ)知識(shí)
發(fā)表于 12-20 08:05
定時(shí)器、PWM、ICP范例(AVR 定時(shí)器使用范例)
/*************************************************** AVR 定時(shí)器使用范例 
發(fā)表于 11-01 01:23
?77次下載
STM32F1通用定時(shí)器示例詳解--TIM15_Compleme
STM32F1通用定時(shí)器示例詳解--TIM15_ComplementarySignals
發(fā)表于 12-07 18:15
?0次下載
如何利用單片機(jī)看門(mén)狗定時(shí)器使led閃爍
看門(mén)狗是為了防止程序跑飛而設(shè)定的,但是由于看門(mén)狗是一個(gè)類(lèi)似于定時(shí)器,因此可以把他當(dāng)作定時(shí)器來(lái)使用
示例代碼:用看門(mén)狗定時(shí)器使一個(gè)led閃爍
#include
void
發(fā)表于 02-11 10:00
?4362次閱讀
STM32通用定時(shí)器的單脈沖示例詳解
基于學(xué)習(xí)的目的,詳細(xì)講解關(guān)于標(biāo)準(zhǔn)外設(shè)庫(kù)中的定時(shí)器的 17 個(gè)示例項(xiàng)目函數(shù)文件。本次介紹 OnePulse。
發(fā)表于 07-01 08:00
?10次下載
關(guān)于STM32定時(shí)器觸發(fā)SPI逐字收發(fā)之應(yīng)用示例
STM32定時(shí)器觸發(fā)SPI逐字收發(fā)之應(yīng)用示例
基于STM32定時(shí)器捕獲測(cè)量脈寬的應(yīng)用示例
來(lái)實(shí)現(xiàn)脈寬測(cè)量,我們可以選用一個(gè)通道、也可以使用兩個(gè)通道。使用1個(gè)通道時(shí),只需使用定時(shí)器基本的輸入捕獲功能結(jié)合中斷或DMA即可實(shí)現(xiàn);若使用兩個(gè)通道時(shí)可以將捕獲功能與定時(shí)器的從模式來(lái)相結(jié)合完成。這里就兩種方案的實(shí)現(xiàn)示例都做個(gè)簡(jiǎn)單
詳細(xì)剖析Linux和RTOS(RT-Thread)的時(shí)鐘和定時(shí)器的使用
Linux發(fā)燒友1.RTOS篇1.1RT-Thread簡(jiǎn)介1.2時(shí)鐘管理1.2.1時(shí)鐘節(jié)拍1.3獲取系統(tǒng)節(jié)拍1.4定時(shí)器分類(lèi)1.5定時(shí)器源碼分析1.6定時(shí)器相關(guān)函數(shù)1.61動(dòng)態(tài)創(chuàng)建一個(gè)
發(fā)表于 01-17 09:31
?4次下載
Linux內(nèi)核定時(shí)器
在Linux內(nèi)核中,也可以通過(guò)定時(shí)器來(lái)完成定時(shí)功能。但和單片機(jī)不同的是,Linux內(nèi)核定時(shí)器是一種基于未來(lái)時(shí)間點(diǎn)的計(jì)時(shí)方式,它以當(dāng)前時(shí)刻為啟
利用通用定時(shí)器輸出PWM(附示例驅(qū)動(dòng)直流電機(jī))
上一節(jié)講述了時(shí)鐘樹(shù)和基本定時(shí)器的配置方法,本節(jié)先介紹通用定時(shí)器和基本定時(shí)器的差異,然后粗略講述PWM波原理,然后講述如何配置通用定時(shí)器,最后進(jìn)行PWM波
發(fā)表于 04-03 14:56
?0次下載
CKS32F4xx系列產(chǎn)品的定時(shí)器使用-基本特征和定時(shí)操作
這一課我們將介紹CKS32F4XX系列產(chǎn)品的定時(shí)器使用,CKS32F4XX的定時(shí)器功能十分強(qiáng)大,包含2個(gè)高級(jí)控制定時(shí)器,8個(gè)普通定時(shí)器,2個(gè)基礎(chǔ)定時(shí)
Linux高精度定時(shí)器hrtimer使用示例
要使用高精度定時(shí)器hrtimer。 使用示例 單次定時(shí) 加載驅(qū)動(dòng)一秒后輸出“ hrtimer handler ”: # include # include # include # in
Linux驅(qū)動(dòng)定時(shí)器使用示例
評(píng)論