最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

講解嵌入式軟件中超時(shí)機(jī)制設(shè)計(jì)

2023-10-17 15:38 作者:補(bǔ)給站Linux內(nèi)核  | 我要投稿

軟件超時(shí)機(jī)制

1、背景

在嵌入式軟件程序設(shè)計(jì)過(guò)程中中,經(jīng)常會(huì)遇到超時(shí)(或定時(shí))的處理情況,基本處理思想是在時(shí)間到的時(shí)候進(jìn)行相關(guān)程序處理,下面介紹兩種超時(shí)(或定時(shí))的程序設(shè)計(jì)方案。

2、方案一

基本思想:定時(shí)器中斷使用一個(gè)變量TICK,中斷間隔時(shí)間t,在準(zhǔn)備定時(shí)開(kāi)始時(shí)讀取此時(shí)刻的TICK,在程序運(yùn)行過(guò)程中實(shí)時(shí)讀取當(dāng)前的TICK信息并計(jì)算即可。

因此在時(shí)間計(jì)算時(shí)只需計(jì)算開(kāi)始STARTTICK和結(jié)束ENDTICK即可完成時(shí)間計(jì)算。時(shí)間計(jì)算T=(ENDTICK-STARTTICK)*t;使用一個(gè)定時(shí)器中斷每t時(shí)間處理一次中斷,中斷里面時(shí)間計(jì)數(shù)值s_u32TCNT++,如下圖所示:

程序中定義一個(gè)結(jié)構(gòu)體來(lái)保存超時(shí)開(kāi)始和超時(shí)結(jié)束時(shí)間,結(jié)構(gòu)體定義如下圖所示:

在需要做定時(shí)超時(shí)處理的地方實(shí)時(shí)的獲取當(dāng)前s_u32TCNT并賦值給u32EndTimeTick,計(jì)算開(kāi)始u32StartTimeTick和結(jié)束時(shí)u32EndTimeTick的時(shí)間差來(lái)判斷時(shí)間是否到來(lái)即可,程序設(shè)計(jì)示意代碼如下圖所示:

3、方案二

基本思想:定義回調(diào)函數(shù)和回調(diào)注冊(cè)函數(shù),將定時(shí)/超時(shí)服務(wù)函數(shù)注冊(cè)回調(diào),每一次定時(shí)器中斷執(zhí)行一次回調(diào),回調(diào)函數(shù)只需對(duì)計(jì)時(shí)時(shí)間TCNT做減1操作即可,當(dāng)TCNT為0時(shí)即定時(shí)/超時(shí)時(shí)間到,并置超時(shí)標(biāo)志,應(yīng)用程序只需判斷標(biāo)志即可明確定時(shí)/超時(shí)時(shí)間是否到來(lái);回調(diào)函數(shù)和回調(diào)注冊(cè)函數(shù)定義如下圖所示,多個(gè)超時(shí)/定時(shí)回調(diào)函數(shù)可注冊(cè)在回調(diào)函數(shù)數(shù)組中:

定時(shí)中斷函數(shù)中進(jìn)行遍歷處理,定時(shí)中斷函數(shù)處理示意代碼如下圖所示:

4、對(duì)比總結(jié)

方案一優(yōu)點(diǎn)在于中斷執(zhí)行單元執(zhí)行內(nèi)容少,代碼操作容易理解,缺點(diǎn)是應(yīng)用中實(shí)時(shí)的進(jìn)行計(jì)算開(kāi)始和結(jié)束TICK差值,代碼執(zhí)行效率不高。

方案二優(yōu)點(diǎn)在于將超時(shí)函數(shù)注冊(cè)在回調(diào)中即可,程序擴(kuò)展性較好,不用做過(guò)多的數(shù)值計(jì)算,代碼執(zhí)行效率相對(duì)較高,缺點(diǎn)是定時(shí)中斷中需要遍歷所有已注冊(cè)的對(duì)調(diào),中斷執(zhí)行內(nèi)容相對(duì)較多。


【文章福利】小編推薦自己的Linux內(nèi)核技術(shù)交流群:【749907784】整理了一些個(gè)人覺(jué)得比較好的學(xué)習(xí)書(shū)籍、視頻資料共享在群文件里面,有需要的可以自行添加哦!?。。ê曨l教程、電子書(shū)、實(shí)戰(zhàn)項(xiàng)目及代碼)? ?

零聲白金VIP體驗(yàn)卡(含基礎(chǔ)架構(gòu)/高性能存儲(chǔ)/golang/QT/音視頻/Linux內(nèi)核)課程:


STM32程序超時(shí)設(shè)計(jì)

在程序設(shè)計(jì)中,出現(xiàn)以下類似語(yǔ)句,是非常不可靠的,很有必要加入超時(shí)處理!

以下在stm32的system_stm32f10x.c文件中,判斷外部晶振起振的程序。

可以參考,在以后的程序中借鑒。

I2C 讀寫(xiě)EEPROM添加超時(shí):


原文作者:share明


講解嵌入式軟件中超時(shí)機(jī)制設(shè)計(jì)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
修水县| 四平市| 吉安县| 济阳县| 和林格尔县| 富源县| 略阳县| 平罗县| 怀安县| 同德县| 香港| 延川县| 西峡县| 香港 | 甘肃省| 雅安市| 黎川县| 搜索| 都匀市| 潍坊市| 称多县| 民县| 建德市| 神农架林区| 教育| 柳州市| 宣化县| 临颍县| 襄城县| 潮安县| 疏勒县| 土默特左旗| 焉耆| 浙江省| 揭东县| 鹰潭市| 平昌县| 湟源县| 西安市| 五常市| 云和县|