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

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

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

rt-thread操作系統(tǒng)下timer使用

嵌入式應(yīng)用開發(fā) ? 來源:嵌入式應(yīng)用開發(fā) ? 作者:嵌入式應(yīng)用開發(fā) ? 2022-08-23 14:16 ? 次閱讀

rt-thread 是通過 I/O 設(shè)備模型來管理 soc 上的外設(shè),從上到下分為三層:I/O 設(shè)備管理層、設(shè)備驅(qū)動框架層和設(shè)備驅(qū)動層。stm32 的 HAL 庫就屬于設(shè)備驅(qū)動層,比如熟知的 i2c、spi 的外設(shè)驅(qū)動在用 cubemx 生成代碼的時候就已經(jīng)準(zhǔn)備好。中科藍(lán)訊的 ab32vg1 的設(shè)備驅(qū)動已經(jīng)在sdk 中由藍(lán)訊的工程師實現(xiàn)。而在設(shè)備驅(qū)動層之上的設(shè)備驅(qū)動框架層和設(shè)備 I/O 管理層要說明一下:設(shè)備驅(qū)動框架層提供了一些接口留給設(shè)備驅(qū)動開發(fā)者去實現(xiàn),只在做驅(qū)動移植的時候需要,作為普通用戶,只需要關(guān)心 I/O 管理層即可,rt-thread 的 I/O 管理層提供了類似于 linux中文件 IO 的 ap,常用的有 rt_device_find、rt_device_open、rt_device_read、rt_device_close等。下面列舉了 hwtimer 的 api,結(jié)合示例去理解如何將這些 api 用起來實現(xiàn)定時器的功能。

//查找設(shè)備
/*
name:設(shè)備名稱
*/
rt_device_t rt_device_find(const char* name)
//打開定時器設(shè)備
/*
dev:定時器設(shè)備句柄
oflags:打開模式,一般取 RT_DEVICE_OFLAG_RDWR
*/
rt_err_t rt_device_open(rt_device_t dev, rt_uint16_t oflags);
//設(shè)置超時回調(diào)
/*
dev:定時器設(shè)備句柄
rx_ind:超時回調(diào)函數(shù)
*/
rt_err_t rt_device_set_rx_indicate(rt_device_t dev, rt_err_t (*rx_ind)(rt_device_t dev,rt_size_t size))
//控制定時器
/*
dev:定時器設(shè)備句柄
cmd:控制命令,可取
HWTIMER_CTRL_FREQ_SET 設(shè)置計數(shù)頻率
HWTIMER_CTRL_STOP 停止定時器
HWTIMER_CTRL_INFO_GET 獲取定時器特征信息
HWTIMER_CTRL_MODE_SET 設(shè)置定時器模式
arg:控制命令參數(shù)
設(shè)置定時器模式時,可取
HWTIMER_MODE_ONESHOT 單 次 定 時
HWTIMER_MODE_PERIOD 周 期 性 定 時
*/
rt_err_t rt_device_control(rt_device_t dev, rt_uint8_t cmd, void* arg);
//設(shè)置定時器超時值
/*
dev:定時器設(shè)備句柄
pos:偏移值,未使用,可取 0 值
buffer:指向超時時間結(jié)構(gòu)體
size:超時時間結(jié)構(gòu)體大小
*/
rt_size_t rt_device_write(rt_device_t dev, 
rt_off_t pos, 
const void* buffer,
rt_size_t size);
//獲取定時器當(dāng)前值
/*
dev:定時器句柄
pos:偏移值,未使用,可取 0 值
buffer:超時時間結(jié)構(gòu)體
size:超時時間結(jié)構(gòu)體大小
*/
rt_size_t rt_device_read(rt_device_t dev, 
rt_off_t pos, 
void* buffer, 
rt_size_t size
);
//關(guān)閉定時器
/*
dev:定時器句柄
*/
rt_err_t rt_device_close(rt_device_t dev);
poYBAGMEcJ-Abg84AAE6fM31FEg525.png

使用 rt-thread studio 進(jìn)行 sdk 的開發(fā)是一件非常有效率的事情,新建 bsp 工程后只需要在rt-thread setting 配置需要的硬件功能就可以使用 rt-thread 提供的設(shè)備 I/O 管理接口對底層的 soc 的外設(shè)進(jìn)行控制。從示例中可以定時器的流程:先用 rt_device_find 根據(jù)設(shè)備名稱查找到定時器句柄、使用定時器句柄打開定時器、接著設(shè)置定時器的回調(diào)函數(shù)、配置完定時器后設(shè)置定時器的定時值后定時器啟動,之后每當(dāng)定時器的計數(shù)器溢出就會執(zhí)行一次定時器的回調(diào)函數(shù)。

審核編輯:湯梓紅

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

    關(guān)注

    37

    文章

    6547

    瀏覽量

    122759
  • 定時器
    +關(guān)注

    關(guān)注

    23

    文章

    3218

    瀏覽量

    113708
  • Timer
    +關(guān)注

    關(guān)注

    1

    文章

    63

    瀏覽量

    12738
  • RT-Thread
    +關(guān)注

    關(guān)注

    31

    文章

    1239

    瀏覽量

    39447
收藏 人收藏

    評論

    相關(guān)推薦

    如何對RT-Thread內(nèi)核有基本的了解?

    RT-Thread 的時鐘管理以時鐘節(jié)拍為基礎(chǔ),時鐘節(jié)拍是 RT-Thread 操作系統(tǒng)中最小的時鐘單位。
    的頭像 發(fā)表于 07-19 10:12 ?7035次閱讀
     如何對<b class='flag-5'>RT-Thread</b>內(nèi)核有基本的了解?

    STm32與RT-thread操作系統(tǒng)的配合使用

    操作系統(tǒng)的配合使用效果還是很不錯的,前一段兒我又看了華為的操作系統(tǒng)LiteOS,并參考了野火的教程,完成了STM32項目的移植,兩者整體上也是很類似的,感覺沒有RT-thread的簡
    發(fā)表于 08-04 06:29

    RT-Thread Studio操作系統(tǒng)

    stm32f407+rtthread 使用 ec20 ppp撥號開發(fā)環(huán)境一、工程創(chuàng)建二、模塊添加三、參數(shù)配置四、測試開發(fā)環(huán)境IDE:RT-Thread Studio操作系統(tǒng)
    發(fā)表于 08-24 07:44

    基于RT-Thread操作系統(tǒng)衍生rt-smart實時操作系統(tǒng)簡介

    1、rt-smart 實時操作系統(tǒng)簡介RT-Thread Smart(簡稱 rt-smart)嵌入式實時操作系統(tǒng)是基于
    發(fā)表于 06-22 17:56

    RT-Thread編程指南

    RT-Thread編程指南——RT-Thread開發(fā)組(2015-03-31)。RT-Thread做為國內(nèi)有較大影響力的開源實時操作系統(tǒng),本文是RT
    發(fā)表于 11-26 16:06 ?0次下載

    RT-Thread用戶手冊

    RT-Thread用戶手冊——本書是RT-Thread的編程手冊,用于指導(dǎo)在RT-Thread實時操作系統(tǒng)環(huán)境如何進(jìn)行編 程。
    發(fā)表于 11-26 16:16 ?0次下載

    RT Thread操作系統(tǒng)教程及資料

    ## RT-Thread 簡介 ## RT-Thread RTOS是一款來自中國的開源實時操作系統(tǒng), 由國內(nèi)一些專業(yè)開發(fā)人員開發(fā)、維護(hù)。 它不僅僅是一款高效、穩(wěn)定的實時核心,也是一套
    發(fā)表于 05-11 14:54 ?2次下載

    RT-Thread Smart微內(nèi)核操作系統(tǒng)發(fā)布!

    9月1日,由上海睿賽德電子科技有限公司舉辦的RT-Thread Smart微內(nèi)核操作系統(tǒng)發(fā)布會于北京圓滿落幕,發(fā)布會以見微為主題,邀請到中國工程院院士、產(chǎn)業(yè)專家、高校教授及行業(yè)從業(yè)人員100余位蒞臨
    的頭像 發(fā)表于 09-09 10:49 ?2591次閱讀

    國民技術(shù)攜手RT-Thread共同推進(jìn)MCU與RT-Thread操作系統(tǒng)廣泛適配

    日前,國民技術(shù)股份有限公司與知名物聯(lián)網(wǎng)操作系統(tǒng)廠商睿賽德科技(RT-Thread)簽署會員合作協(xié)議,正式成為RT-Thread高級會員。國民技術(shù)將基于通用MCU和RT-Thread物聯(lián)
    的頭像 發(fā)表于 12-16 09:56 ?2266次閱讀

    RT-Thread實時操作系統(tǒng)安裝向?qū)?/a>

    RT-Thread 是一個集實時操作系統(tǒng)(RTOS)內(nèi)核、中間件組件和開發(fā)者社區(qū)于一體的技術(shù)平臺,由熊譜翔先生帶領(lǐng)并集合開源社區(qū)力量開發(fā)而成,RT-Thread 也是一個組件完整豐富、高度可伸縮
    發(fā)表于 04-02 09:43 ?7次下載

    RT-Thread學(xué)習(xí)筆記 RT-Thread的架構(gòu)概述

    的種種優(yōu)越之處。RT-Thread 是一款完全由國內(nèi)團(tuán)隊開發(fā)維護(hù)的嵌入式實時操作系統(tǒng)(RTOS),具有完全的自主知識產(chǎn)權(quán)。經(jīng)過 16 個年頭的沉淀,伴隨著物聯(lián)網(wǎng)的興起,它正演變成一個功能強大、組件豐富的物
    的頭像 發(fā)表于 07-09 11:27 ?4325次閱讀
    <b class='flag-5'>RT-Thread</b>學(xué)習(xí)筆記 <b class='flag-5'>RT-Thread</b>的架構(gòu)概述

    RT-Thread操作系統(tǒng)已經(jīng)成功部署至芯馳E3

    近日,國內(nèi)領(lǐng)先的車規(guī)芯片企業(yè)芯馳科技與國內(nèi)領(lǐng)先的車載RTOS(實時操作系統(tǒng))企業(yè)睿賽德科技(RT-Thread)共同宣布:RT-Thread操作系統(tǒng)全面支持芯馳科技E3系列 MCU芯片
    的頭像 發(fā)表于 09-09 09:15 ?1146次閱讀

    RT-Thread操作系統(tǒng)的FreeRTOS兼容層

    的兼容項目中。 1 概述 這是一個針對RT-Thread國產(chǎn)操作系統(tǒng)的FreeRTOS操作系統(tǒng)兼容層,可以讓原有基于FreeRTOS操作系統(tǒng)的項目快速、無感地遷移到
    的頭像 發(fā)表于 01-14 00:55 ?1465次閱讀

    RT-Thread榮獲“最具影響力IoT操作系統(tǒng)獎”

    2024年3月30日,第十一屆開源操作系統(tǒng)年度技術(shù)會議(OS2ATC)在西郊賓館舉辦!RT-Thread作為國內(nèi)領(lǐng)先的開源操作系統(tǒng)斬獲了“最具影響力IoT操作系統(tǒng)獎”。該獎項是對
    的頭像 發(fā)表于 04-12 08:37 ?337次閱讀
    <b class='flag-5'>RT-Thread</b>榮獲“最具影響力IoT<b class='flag-5'>操作系統(tǒng)</b>獎”

    新書發(fā)布——《實時操作系統(tǒng)應(yīng)用技術(shù):RT-Thread與ARM編程實踐》

    RT-Thread又一本新書《實時操作系統(tǒng)應(yīng)用技術(shù)——基于RT-Thread與ARM的編程實踐》發(fā)布,標(biāo)志著RT-Thread生態(tài)和實時操作系統(tǒng)
    的頭像 發(fā)表于 05-11 08:35 ?534次閱讀
    新書發(fā)布——《實時<b class='flag-5'>操作系統(tǒng)</b>應(yīng)用技術(shù):<b class='flag-5'>RT-Thread</b>與ARM編程實踐》