在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

Linux高精度定時器hrtimer使用示例

麥辣雞腿堡 ? 來源:嵌入式Linux充電站 ? 作者:Vincent ? 2023-10-04 15:38 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

低分辨率定時器是用jiffies來定時的,所以會受到HZ影響,如果HZ為200,代表每秒種產(chǎn)生200次中斷,那一個jiffies就需要5毫秒,所以精度為5毫秒。

如果精度需要達到納秒級別,則需要使用高精度定時器hrtimer。

使用示例

單次定時

加載驅(qū)動一秒后輸出“hrtimer handler”:

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

#include < linux/ktime.h >
#include < linux/hrtimer.h >

static struct hrtimer timer;

static enum hrtimer_restart timer_handler(struct hrtimer *timer )
{
 printk("hrtimer handlern");
    
    return HRTIMER_NORESTART;
}

static int __init my_init(void) 
{
    ktime_t tim;
    
    hrtimer_init(&timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
    timer.function = timer_handler;
    tim = ktime_set(1,0); //1s
    hrtimer_start(&timer,tim,HRTIMER_MODE_REL);

    return 0;
}

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

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

循環(huán)定時

循環(huán)定時可以在回調(diào)函數(shù)中調(diào)用hrtimer_forward_now()重新設置定時時間,然后將返回值設置為HRTIMER_RESTART代表重啟定時器,就可以做到循環(huán)定時的效果。

每隔一秒輸出“hrtimer handler”:

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

#include < linux/ktime.h >
#include < linux/hrtimer.h >

static struct hrtimer timer;

static enum hrtimer_restart timer_handler(struct hrtimer *timer )
{
    printk("hrtimer handlern");
    
    hrtimer_forward_now(timer, ktime_set(1,0));//重新設置定時時間
    
    return HRTIMER_RESTART;//重啟定時器
}

static int __init my_init(void) 
{
    ktime_t tim;
    
    hrtimer_init(&timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
    timer.function = timer_handler;
    tim = ktime_set(1,0); //1 s
    hrtimer_start(&timer,tim,HRTIMER_MODE_REL);

    return 0;
}

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

module_init(my_init);
module_exit(my_exit);
MODULE_LICENSE("GPL");
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11486

    瀏覽量

    213145
  • 定時器
    +關注

    關注

    23

    文章

    3297

    瀏覽量

    117520
  • 函數(shù)
    +關注

    關注

    3

    文章

    4375

    瀏覽量

    64479
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    #硬聲創(chuàng)作季 #LinuxLinux-2.18.1 高精度延時實驗-GPT定時器原理-2

    高精度Linux
    水管工
    發(fā)布于 :2022年11月10日 18:08:37

    GPT高精度延時定時器簡介

    Linux NXP (I.MX6ULL) GPT高精度延時定時器0、GPT 定時器簡介1、GPT 定時器特性如下:2、GPT
    發(fā)表于 01-12 06:46

    高精度定時器電路及制作

    高精度定時器電路及制作
    發(fā)表于 04-14 11:39 ?14次下載
    <b class='flag-5'>高精度</b><b class='flag-5'>定時器</b>電路及制作

    高精度定時器電路圖

    高精度定時器電路圖
    發(fā)表于 05-18 11:40 ?287次下載
    <b class='flag-5'>高精度</b><b class='flag-5'>定時器</b>電路圖

    長時間高精度定時器

    長時間高精度定時器:某些場合需要長時間高精度定時器,此圖定時電路定時時間較長,
    發(fā)表于 12-14 08:05 ?1157次閱讀
    長時間<b class='flag-5'>高精度</b><b class='flag-5'>定時器</b>

    用電子表作高精度定時器電路圖

    用電子表作高精度定時器電路圖
    發(fā)表于 07-29 08:34 ?1656次閱讀
    用電子表作<b class='flag-5'>高精度</b><b class='flag-5'>定時器</b>電路圖

    Linux時間子系統(tǒng)中的高精度定時器HRTIMER)的原理和實現(xiàn)

    雖然大部分時間里,時間輪可以實現(xiàn)O(1)時間復雜度,但是當有進位發(fā)生時,不可預測的O(N)定時器級聯(lián)遷移時間,這對于低分辨率定時器來說問題不大,可是它大大地影響了定時器精度
    發(fā)表于 05-10 14:11 ?7892次閱讀

    LINUX內(nèi)核定時器高精度&低精度

    linux從內(nèi)核2.6.16開始引入了高精度定時器,達到ns級別。自此,內(nèi)核擁有兩套并行計時,低精度
    發(fā)表于 05-13 09:41 ?4353次閱讀

    詳解高精度定時器與高級控制定時器

    高精度定時器中,可以使用外部事件來對 PWM 輸出進行封鎖,并可自動恢復;在高級控制定時器中,可以使用 Break 或是 Clr_input 來對 PWM 輸出進行封鎖, 然后也可以自動恢復,其中 Break 必須結合 AOE
    的頭像 發(fā)表于 06-16 16:52 ?3301次閱讀

    Linux驅(qū)動開發(fā)高精度定時器精度測量評測

    前言 今天我們來評測linux內(nèi)核的高精度定時器。順便利用通過Tektronix示波器 和 DS100 Mini 數(shù)字示波器進行交叉測試。 因項目需要用到精準的時間周期,所以要評估它的可行性,并驗證
    的頭像 發(fā)表于 08-09 11:17 ?2305次閱讀

    工程師筆記|高精度定時器的同步功能

    關鍵詞:高精度定時器, 同步 目錄預覽 1.引言 2.定時器同步結構 3.高精度定時器內(nèi)部同步 4.高精
    的頭像 發(fā)表于 11-22 18:15 ?2084次閱讀

    高精度定時器中single-shot計數(shù)模式不工作

    高精度定時器中single-shot計數(shù)模式不工作
    的頭像 發(fā)表于 10-25 18:08 ?853次閱讀
    <b class='flag-5'>高精度</b><b class='flag-5'>定時器</b>中single-shot計數(shù)模式不工作

    高精度定時器與高級控制定時器 PWM 封波后再恢復的區(qū)別

    高精度定時器與高級控制定時器 PWM 封波后再恢復的區(qū)別
    的頭像 發(fā)表于 10-17 16:52 ?1098次閱讀
    <b class='flag-5'>高精度</b><b class='flag-5'>定時器</b>與高級控制<b class='flag-5'>定時器</b> PWM 封波后再恢復的區(qū)別

    高精度定時器的同步功能

    電子發(fā)燒友網(wǎng)站提供《高精度定時器的同步功能.pdf》資料免費下載
    發(fā)表于 09-19 14:17 ?0次下載
    <b class='flag-5'>高精度</b><b class='flag-5'>定時器</b>的同步功能

    Linux驅(qū)動高精度定時器hrtimer

    高分辨率定時器hrtimer )以 ktime_t 來定義時間, 精度可以達到納秒級別 , ktime_t 定義如下: typedef s64 ktime_t ; 可以用 ktime_set 來
    的頭像 發(fā)表于 10-04 15:32 ?956次閱讀
    主站蜘蛛池模板: 亚洲人成一区 | 欧美又粗又硬又大久久久 | 午夜性爽视频男人的天堂在线 | 操美女大逼逼 | 99久久网站 | 综合涩| 久久青草精品一区二区三区 | 大色综合色综合资源站 | 狠狠色96视频| 年轻护士女三级 | 激情五月婷婷网 | 五色网 | 日本xxxx色视频在线观看免费 | 800免费资源网| 亚洲欧美日韩综合一区 | 神马电影天堂网 | 丁香六月婷婷在线 | 国产精品第页 | 男女视频在线观看免费高清观看 | 在线欧美色| 日本精品一卡二卡≡卡四卡 | 欧美色成人综合 | 国产精品美乳在线观看 | 成人精品一区二区不卡视频 | 在线a免费观看最新网站 | 亚洲一区二区三区在线网站 | 亚洲色图.com | 天天干天天要 | 色欧美在线 | 啪啪午夜 | 久久手机视频 | 夜色sese | 日日干视频 | 一级特黄aaa大片在线观看 | 老师你好大好白好紧好硬 | 91大神免费视频 | 全黄h全肉边做边吃奶在线观看 | 在线观看亚洲一区 | 国产精品美女久久久 | 亚洲网站视频 | 婷婷六月丁香午夜爱爱 |