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

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

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

3天內不再提示

嵌入式軟件中兩種超時程序設計方案

麥辣雞腿堡 ? 來源:CSDN博客 ? 作者:share明 ? 2023-10-27 15:15 ? 次閱讀

1、背景

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

2、方案一

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

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

圖片

程序中定義一個結構體來保存超時開始和超時結束時間,結構體定義如下圖所示:

圖片

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

圖片

3、方案二

基本思想:定義回調函數和回調注冊函數,將定時/超時服務函數注冊回調,每一次定時器中斷執行一次回調,回調函數只需對計時時間TCNT做減1操作即可,當TCNT為0時即定時/超時時間到,并置超時標志,應用程序只需判斷標志即可明確定時/超時時間是否到來;回調函數和回調注冊函數定義如下圖所示,多個超時/定時回調函數可注冊在回調函數數組中:

圖片

圖片

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

圖片

4、對比總結

方案一優點在于中斷執行單元執行內容少,代碼操作容易理解,缺點是應用中實時的進行計算開始和結束TICK差值,代碼執行效率不高。

方案二優點在于將超時函數注冊在回調中即可,程序擴展性較好,不用做過多的數值計算,代碼執行效率相對較高,缺點是定時中斷中需要遍歷所有已注冊的對調,中斷執行內容相對較多。

STM32程序超時設計

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

while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));

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

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

#define HSE_STARTUP_TIMEOUT   ((uint16_t)0x0500) /*!< Time out for HSE start up */
/* Wait till HSE is ready and if Time out is reached exit */
do
{
    HSEStatus = RCC- >CR & RCC_CR_HSERDY;
    StartUpCounter++;  
} while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT));

I2C 讀寫EEPROM添加超時:

uint16_t i = 0x0fff;
while ((!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED))&&i){i--;};
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5087

    文章

    19153

    瀏覽量

    306426
  • 軟件
    +關注

    關注

    69

    文章

    4986

    瀏覽量

    87812
  • 定時器
    +關注

    關注

    23

    文章

    3254

    瀏覽量

    115070
  • 程序
    +關注

    關注

    117

    文章

    3793

    瀏覽量

    81220
收藏 人收藏

    評論

    相關推薦

    嵌入式軟件程序設計方案

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

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

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

    嵌入式軟件程序設計

    嵌入式系統設計師學習筆記二十七:嵌入式軟件程序設計②——嵌入式程序設計程序設計語言機器語言:由二
    發表于 12-21 08:28

    實現嵌入式軟件超時的方法

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

    嵌入式系統的C程序設計

    嵌入式系統的C程序設計
    發表于 04-07 22:42 ?86次下載
    <b class='flag-5'>嵌入式</b>系統的C<b class='flag-5'>程序設計</b>

    嵌入式系統的C程序設計

    嵌入式系統的C程序設計
    發表于 11-10 08:59 ?54次下載

    嵌入式系統的超時控制及其應用

    預期事件的循環等待是嵌入式系統應用程序的基本結構之一,在等待程序引入超時控制是提高應用程序容錯
    發表于 05-14 13:50 ?16次下載

    嵌入式系統的c程序設計

    嵌入式系統的c程序設計
    發表于 02-11 09:21 ?65次下載
    <b class='flag-5'>嵌入式</b>系統的c<b class='flag-5'>程序設計</b>

    嵌入式軟件技術應用設計方案匯總  

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

    嵌入式系統與C程序設計

    嵌入式系統與C程序設計
    發表于 10-30 10:20 ?13次下載
    <b class='flag-5'>嵌入式</b>系統與C<b class='flag-5'>程序設計</b>

    兩種遠程調試嵌入式系統的介紹

    調試嵌入式系統與桌面操作系統差別很大,本文向您介紹調試嵌入式系統的兩種推薦方案,插樁和片上調試,希望對您的嵌入式項目中有所幫助。我們介紹
    發表于 04-14 07:43 ?2602次閱讀
    <b class='flag-5'>兩種</b>遠程調試<b class='flag-5'>嵌入式</b>系統的介紹

    嵌入式軟件定時/超時機制程序設計

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

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

    嵌入式軟件程序設計過程,經常會遇到超時(或定時)的處理情況,基本處理思想是在時間到的時候進
    的頭像 發表于 05-20 10:28 ?1040次閱讀
    介紹<b class='flag-5'>兩種</b><b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b><b class='flag-5'>超時</b>(或定時)的<b class='flag-5'>程序設計方案</b>

    如何設計STM32嵌入式程序超時機制?

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

    STM32程序超時設計

    軟件超時機制 1、背景 在嵌入式軟件程序設計過程
    的頭像 發表于 06-22 10:52 ?1201次閱讀
    STM32<b class='flag-5'>程序</b><b class='flag-5'>超時</b>設計
    主站蜘蛛池模板: 康熙古代高h细节肉爽文全文| 35qao强力打造免费上线高清| 亚洲午夜久久影院| a色网站| 午夜在线影院| 特黄视频| 国产亚洲高清视频| 国产成人啪精品午夜在线播放 | 欧美一级做一a做片性视频| 日本成人资源| 国产午夜精品不卡片| 99视频精品全国免费| 深夜视频在线播放视频在线观看免费观看| 欧美精品影院| 免费视频在线播放| 久久精品视频热| 天天综合天天射| 欧美专区一区二区三区| 国产资源在线免费观看| 夜夜操天天爽| 福利一区在线观看| 手机在线亚洲| 天堂资源站| 久青草国产在线视频_久青草免| 高清一级做a爱免费视| 天天摸天天躁天天添天天爽| 插综合网| 99久久国产综合精品国| 日本黄色一级大片| 成 人色 网 站999| 国产午夜久久影院| 男女无遮挡在线完整视频| 亚洲国产成人精品女人久久久 | 久久99热精品这里久久精品| 婷婷月| 狠狠色丁香婷婷综合视频| 天天做天天爱天天爽天天综合| 91精品啪国产在线观看免费牛牛| 久久国产精品免费观看| 色色色色色色网| xvideos国产|