国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(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ó)家法律
靖西县| 游戏| 信丰县| 怀集县| 石景山区| 介休市| 临汾市| 德惠市| 南川市| 腾冲县| 郴州市| 洪湖市| 嵊州市| 土默特右旗| 开鲁县| 改则县| 无棣县| 饶阳县| 旬邑县| 内黄县| 乌兰察布市| 宽城| 南漳县| 通榆县| 台南市| 蕉岭县| 安庆市| 榆林市| 沂源县| 东乌| 奈曼旗| 岳池县| 行唐县| 东源县| 历史| 九江市| 岑巩县| 涞水县| 洛宁县| 尼玛县| 大名县|