chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

介紹兩種嵌入式軟件超時(或定時)的程序設(shè)計方案

工程師進階筆記 ? 來源:工程師進階筆記 ? 2023-05-20 10:28 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

軟件超時機制

1、背景

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

2、方案一

基本思想:定時器中斷使用一個變量TICK,中斷間隔時間t,在準備定時開始時讀取此時刻的TICK,在程序運行過程中實時讀取當(dāng)前的TICK信息并計算即可。

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

0945f732-f651-11ed-90ce-dac502259ad0.png

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

095937d4-f651-11ed-90ce-dac502259ad0.png

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

09682870-f651-11ed-90ce-dac502259ad0.png

3、方案二

基本思想:定義回調(diào)函數(shù)和回調(diào)注冊函數(shù),將定時/超時服務(wù)函數(shù)注冊回調(diào),每一次定時器中斷執(zhí)行一次回調(diào),回調(diào)函數(shù)只需對計時時間TCNT做減1操作即可。

當(dāng)TCNT為0時即定時/超時時間到,并置超時標志,應(yīng)用程序只需判斷標志即可明確定時/超時時間是否到來;回調(diào)函數(shù)和回調(diào)注冊函數(shù)定義如下圖所示,多個超時/定時回調(diào)函數(shù)可注冊在回調(diào)函數(shù)數(shù)組中:

097fa428-f651-11ed-90ce-dac502259ad0.png

09932bec-f651-11ed-90ce-dac502259ad0.png

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

09a33550-f651-11ed-90ce-dac502259ad0.png

4、對比總結(jié)

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

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

STM32程序超時設(shè)計

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

while(!I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));

以下在stm32的system_stm32f10x.c文件中,判斷外部晶振起振的程序??梢詤⒖迹谝院蟮某绦蛑薪梃b。

#defineHSE_STARTUP_TIMEOUT((uint16_t)0x0500)/*!CR&RCC_CR_HSERDY;
StartUpCounter++;
}while((HSEStatus==0)&&(StartUpCounter!=HSE_STARTUP_TIMEOUT));

I2C 讀寫EEPROM添加超時:

uint16_ti=0x0fff;
while((!I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED))&&i){i--;};

鏈接:https://blog.csdn.net/qq_38767222/、https://blog.csdn.net/wyq200704/






審核編輯:劉清

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

    關(guān)注

    5152

    文章

    19675

    瀏覽量

    317546
  • STM32
    +關(guān)注

    關(guān)注

    2293

    文章

    11032

    瀏覽量

    364913
  • 回調(diào)函數(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    88

    瀏覽量

    11896
  • 定時器中斷
    +關(guān)注

    關(guān)注

    0

    文章

    49

    瀏覽量

    11498

原文標題:設(shè)計一種嵌入式軟件定時 / 超時機制

文章出處:【微信號:工程師進階筆記,微信公眾號:工程師進階筆記】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    嵌入式軟件程序設(shè)計方案

    嵌入式軟件程序設(shè)計過程中中,經(jīng)常會遇到超時定時)的處理情況,基本處理思想是在時間到的時候進
    發(fā)表于 09-06 09:27 ?1725次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b><b class='flag-5'>程序設(shè)計方案</b>

    介紹兩種嵌入式軟件超時定時)的程序設(shè)計方案

    一、背景在嵌入式軟件程序設(shè)計過程中中,經(jīng)常會遇到超時定時)的處理情況,基本處理思想是在時間到
    發(fā)表于 11-08 06:18

    實現(xiàn)嵌入式軟件超時的方法

    鏈接:https://blog.csdn.net/qq_38767222/、https://blog.csdn.net/wyq200704/軟件超時機制1、背景在嵌入式軟件
    發(fā)表于 12-24 06:01

    嵌入式系統(tǒng)的C程序設(shè)計

    嵌入式系統(tǒng)的C程序設(shè)計
    發(fā)表于 04-07 22:42 ?86次下載
    <b class='flag-5'>嵌入式</b>系統(tǒng)的C<b class='flag-5'>程序設(shè)計</b>

    嵌入式系統(tǒng)的C程序設(shè)計

    嵌入式系統(tǒng)的C程序設(shè)計
    發(fā)表于 11-10 08:59 ?54次下載

    嵌入式系統(tǒng)的超時控制及其應(yīng)用

    預(yù)期事件的循環(huán)等待是嵌入式系統(tǒng)應(yīng)用程序的基本結(jié)構(gòu)之一,在等待程序中引入超時控制是提高應(yīng)用程序容錯性能的重要途徑。給出
    發(fā)表于 05-14 13:50 ?16次下載

    基于ARM的BSP程序設(shè)計方案

    介紹基于ARM體系的嵌入式系統(tǒng)啟動流程基礎(chǔ)上,結(jié)合編程實例 詳細系統(tǒng)地敘述了BSP(板級支持包)程序的各個部分及其設(shè)計方案 并就實際程序設(shè)計
    發(fā)表于 06-25 14:24 ?43次下載

    基于xilkernel的嵌入式應(yīng)用程序設(shè)計

    本文僅介紹了幾種常用的基于xilkernel的嵌入式應(yīng)用程序設(shè)計方法,讀者還可以利用互斥、軟件定時器等實現(xiàn)其它的功能。讀者也可以根據(jù)
    發(fā)表于 12-12 14:38 ?2107次閱讀
    基于xilkernel的<b class='flag-5'>嵌入式</b>應(yīng)用<b class='flag-5'>程序設(shè)計</b>

    嵌入式軟件技術(shù)應(yīng)用設(shè)計方案匯總  

    程序及其文檔組成,可細分成系統(tǒng)軟件、支撐軟件、應(yīng)用軟件三類,是嵌入式系統(tǒng)的重要組成部分。本文為大家介紹
    發(fā)表于 10-16 16:44 ?4次下載

    嵌入式系統(tǒng)與C程序設(shè)計

    嵌入式系統(tǒng)與C程序設(shè)計
    發(fā)表于 10-30 10:20 ?13次下載
    <b class='flag-5'>嵌入式</b>系統(tǒng)與C<b class='flag-5'>程序設(shè)計</b>

    兩種遠程調(diào)試嵌入式系統(tǒng)的介紹

    調(diào)試嵌入式系統(tǒng)與桌面操作系統(tǒng)差別很大,本文向您介紹調(diào)試嵌入式系統(tǒng)的兩種推薦方案,插樁和片上調(diào)試,希望對您的
    發(fā)表于 04-14 07:43 ?2739次閱讀
    <b class='flag-5'>兩種</b>遠程調(diào)試<b class='flag-5'>嵌入式</b>系統(tǒng)的<b class='flag-5'>介紹</b>

    嵌入式軟件定時/超時機制程序設(shè)計

    一、背景在嵌入式軟件程序設(shè)計過程中中,經(jīng)常會遇到超時定時)的處理情況,基本處理思想是在時間到
    發(fā)表于 11-03 18:36 ?10次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b><b class='flag-5'>定時</b>/<b class='flag-5'>超時機制程序設(shè)計</b>

    如何設(shè)計STM32嵌入式程序超時機制?

    嵌入式軟件程序設(shè)計過程中中,經(jīng)常會遇到超時定時)的處理情況,基本處理思想是在時間到的時候進
    的頭像 發(fā)表于 06-15 17:04 ?1877次閱讀
    如何設(shè)計STM32<b class='flag-5'>嵌入式</b><b class='flag-5'>程序</b>的<b class='flag-5'>超時</b>機制?

    STM32程序超時設(shè)計

    軟件超時機制 1、背景 在嵌入式軟件程序設(shè)計過程中中,經(jīng)常會遇到超時
    的頭像 發(fā)表于 06-22 10:52 ?1559次閱讀
    STM32<b class='flag-5'>程序</b><b class='flag-5'>超時</b>設(shè)計

    嵌入式軟件兩種超時程序設(shè)計方案

    1、背景 在嵌入式軟件程序設(shè)計過程中中,經(jīng)常會遇到超時定時)的處理情況,基本處理思想是在時間
    的頭像 發(fā)表于 10-27 15:15 ?1033次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b>中<b class='flag-5'>兩種</b><b class='flag-5'>超時</b><b class='flag-5'>程序設(shè)計方案</b>