色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

電子發燒友App

硬聲App

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

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

3天內不再提示
電子發燒友網>電子資料下載>嵌入式開發>多個任務時,如何保證單片機工作效率及每個任務完成的及時性?資料下載

多個任務時,如何保證單片機工作效率及每個任務完成的及時性?資料下載

2021-04-12 | pdf | 126.69KB | 次下載 | 2積分

資料介紹

單片機中,有多個任務需要進行,如何處理才能保證單片機的工作效率以及每個任務完成的及時性?本文跟大家分享幾個方法: 1、順序執行法: 這種方法,這應用程序比較簡單,實時性,并行性要求不太高的情況下是不錯的方法,程序設計簡單,思路比較清晰。但是當應用程序比較復雜的時候,如果沒有一個完整的流程圖,恐怕別人很難看懂程序的運行狀態,而且隨著程序功能的增加,編寫應用程序的工程師的大腦也開始混亂。即不利于升級維護,也不利于代碼優化。本人寫個幾個比較復雜一點的應用程序,剛開始就是使用此法,最終雖然能夠實現功能,但是自己的思維一直處于混亂狀態。導致程序一直不能讓自己滿意。 這種方法大多數人都會采用,而且我們接受的教育也基本都是使用此法。對于我們這些基本沒有學習過數據結構,程序架構的單片機工程師來說,無疑很難在應用程序的設計上有一個很大的提高,也導致了不同工程師編寫的應用程序很難相互利于和學習。 本人建議,如果喜歡使用此法的網友,如果編寫比較復雜的應用程序,一定要先理清頭腦,設計好完整的流程圖再編寫程序,否則后果很嚴重。當然應該程序本身很簡單,此法還是一個非常必須的選擇。 下面就寫一個順序執行的程序模型,方面和下面兩種方法對比: /************************************************************************************** * FunctionName : main() * Description : 主函數 * EntryParameter : None * ReturnValue : None **************************************************************************************/ int main(void) { uint8 keyValue; InitSys(); // 初始化 while (1) { TaskDisplayClock(); keyValue = TaskKeySan(); switch (keyValue) { case x: TaskDispStatus(); break; ... default: break; } } } 2、時間片輪詢法 時間片輪詢法,在很多書籍中有提到,而且有很多時候都是與操作系統一起出現,也就是說很多時候是操作系統中使用了這一方法。不過我們這里要說的這個時間片輪詢法并不是掛在操作系統下,而是在前后臺程序中使用此法。也是本貼要詳細說明和介紹的方法。 對于時間片輪詢法,雖然有不少書籍都有介紹,但大多說得并不系統,只是提提概念而已。下面本人將詳細介紹本人模式,并參考別人的代碼建立的一個時間片輪詢架構程序的方法,我想將給初學者有一定的借鑒性。 記得在前不久本人發帖《1個定時器多處復用的問題》,由于時間的問題,并沒有詳細說明怎樣實現1個定時器多處復用。在這里我們先介紹一下定時器的復用功能。。。 使用1個定時器,可以是任意的定時器,這里不做特殊說明,下面假設有3個任務,那么我們應該做如下工作: (1) 初始化定時器,這里假設定時器的定時中斷為1ms(當然你可以改成10ms,這個和操作系統一樣,中斷過于頻繁效率就低,中斷太長,實時性差)。 (2)定義一個數值: #define TASK_NUM (3) // 這里定義的任務數為3,表示有三個任務會使用此定時器定時。 uint16 TaskCount[TASK_NUM] ; // 這里為三個任務定義三個變量來存放定時值 uint8 TaskMark[TASK_NUM]; // 同樣對應三個標志位,為0表示時間沒到,為1表示定時時間到。 (3)在定時器中斷服務函數中添加: [html] view plain copy 在CODE上查看代碼片派生到我的代碼片 /************************************************************************************** * FunctionName : TimerInterrupt() * Description : 定時中斷服務函數 * EntryParameter : None * ReturnValue : None **************************************************************************************/ void TimerInterrupt(void) { uint8 i; for (i=0; i{ if (TaskCount[i]) { TaskCount[i]--; if (TaskCount[i] == 0) { TaskMark[i] = 0x01; } } } } 代碼解釋:定時中斷服務函數,在中斷中逐個判斷,如果定時值為0了,表示沒有使用此定時器或此定時器已經完成定時,不著處理。否則定時器減一,知道為零時,相應標志位值1,表示此任務的定時值到了。 (4)在我們的應用程序中,在需要的應用定時的地方添加如下代碼,下面就以任務1為例: TaskCount[0] = 20; // 延時20ms TaskMark[0] = 0x00; // 啟動此任務的定時器 到此我們只需要在任務中判斷TaskMark[0] 是否為0x01即可。其他任務添加相同,至此一個定時器的復用問題就實現了。用需要的朋友可以試試,效果不錯哦。。。。。。。。。。。 通過上面對1個定時器的復用我們可以看出,在等待一個定時的到來的同時我們可以循環判斷標志位,同時也可以去執行其他函數。 循環判斷標志位:
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1TC358743XBG評估板參考手冊
  2. 1.36 MB  |  330次下載  |  免費
  3. 2開關電源基礎知識
  4. 5.73 MB  |  6次下載  |  免費
  5. 3100W短波放大電路圖
  6. 0.05 MB  |  4次下載  |  3 積分
  7. 4嵌入式linux-聊天程序設計
  8. 0.60 MB  |  3次下載  |  免費
  9. 5基于FPGA的光纖通信系統的設計與實現
  10. 0.61 MB  |  2次下載  |  免費
  11. 6基于FPGA的C8051F單片機開發板設計
  12. 0.70 MB  |  2次下載  |  免費
  13. 751單片機窗簾控制器仿真程序
  14. 1.93 MB  |  2次下載  |  免費
  15. 8基于51單片機的RGB調色燈程序仿真
  16. 0.86 MB  |  2次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33564次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21548次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6653次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537796次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191185次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183278次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
主站蜘蛛池模板: 极品少妇小泬50PTHEPON| 簧片在线免费观看| 丝袜美女自摸| 国产在线不卡| 中文字幕免费在线视频| 真实的强视频免费网站| 浓毛BWBWBWBWBW日本| 99精品无码AV在线播放| 日韩视频中文字幕精品偷拍| 国产亚洲视频在线| 99re久久这里只有精品| 乌克兰少妇大胆大BBW| 找老女人泻火对白自拍| 日韩欧美精品有码在线播放免费| 黑色丝袜美腿美女被躁翻了| 91日本在线观看亚洲精品| 十分钟免费看完整视频| 久久精品亚洲热综合一本奇米| WWW国产亚洲精品久久久日本| 亚洲 在线 日韩 欧美| 欧美老少欢杂交另类| 麻豆久久国产亚洲精品超碰热| 办公室沙发口爆12P| 伊人角狠狠狠狠| 无止侵犯高H1V3无止侵犯| 国产成人免费不卡在线观看| 紧致肉肉高h| 国产精品久久久久成人免费| 蜜臀色欲AV无人A片一区| 国产对白精品刺激一区二区| 亚洲VA天堂VA欧美VA在线| 揉抓捏打抽插射免费视频| 被公疯狂玩弄的漂亮人妻| 伊人久久伊人| 一边摸一边桶一边脱免费| 亚洲AV一宅男色影视| 素人约啪第五季| 啪啪羞羞GIF男女0OXX动态图| 99久久99久久久精品久久| 最近中文字幕高清中文| 真实的强视频免费网站|