日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

電子發(fā)燒友App

硬聲App

掃碼添加小助手

加入工程師交流群

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

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>單片機(jī)>如何使用單片機(jī)的定時(shí)器分配任務(wù)的程序結(jié)構(gòu)總結(jié)

如何使用單片機(jī)的定時(shí)器分配任務(wù)的程序結(jié)構(gòu)總結(jié)

2019-08-12 | pdf | 0.10 MB | 次下載 | 1積分

資料介紹

  經(jīng)過這幾天做的程序,和以前做電子鐘時(shí)的感悟,現(xiàn)在對單片機(jī)的整個(gè)程序結(jié)構(gòu)做一下總結(jié)。相信這個(gè)總結(jié)是很有必要的,在組織大型復(fù)雜程序結(jié)構(gòu)時(shí)需要有一個(gè)正確的理論指導(dǎo)。

  感覺這種程序結(jié)構(gòu)的很多想法和操作系統(tǒng)非常像,但是畢竟沒學(xué)過操作系統(tǒng),有些表述可能不準(zhǔn)確,歡迎批評指正。首先介紹一下任務(wù)的概念,main函數(shù)最后是一個(gè)死循環(huán),它就是一個(gè)任務(wù),是整個(gè)系統(tǒng)最基礎(chǔ)的任務(wù)。除main函數(shù)的主循環(huán)無條件執(zhí)行外,其實(shí)每一個(gè)進(jìn)程和任務(wù)都是一個(gè)有條件跳出的循環(huán),當(dāng)這個(gè)任務(wù)沒有完成時(shí)就會一直在這個(gè)循環(huán)里,當(dāng)任務(wù)完成了就會從循環(huán)跳出,結(jié)束這個(gè)任務(wù)。當(dāng)然也有一些簡單的任務(wù)沒有循環(huán),就是一些順序代碼執(zhí)行完了就結(jié)束,也可以認(rèn)為它是一個(gè)簡單的任務(wù)。

  其實(shí)所謂的任務(wù)在單片機(jī)里本質(zhì)上也就是一個(gè)函數(shù),只不過這個(gè)函數(shù)可能“沒那么容易結(jié)束”,需要達(dá)到一定的目的才會結(jié)束,把這樣的函數(shù)稱作“任務(wù)”。如果要完成的是一個(gè)很簡單的功能,我們可以把這個(gè)功能的一小段代碼直接放到主循環(huán)里,單片機(jī)所有的精力都會放在這段代碼上(暫不考慮中斷)。但是如果程序結(jié)構(gòu)比較復(fù)雜,有多種任務(wù)可能會處理,主循環(huán)可以調(diào)用其它的任務(wù)函數(shù)而轉(zhuǎn)到其它任務(wù),但是一旦跳轉(zhuǎn)到其它任務(wù)里,主循環(huán)和其它任務(wù)都不會得到執(zhí)行。所以有這么一個(gè)特點(diǎn):由主循環(huán)調(diào)用的任務(wù)都只能單獨(dú)地運(yùn)行,進(jìn)入一個(gè)任務(wù),就不能處理其它任務(wù)。對于比較大型復(fù)雜的系統(tǒng),main函數(shù)的主循環(huán)里根本不放要實(shí)際處理的代碼,而是把所有任務(wù)函數(shù)歸到一起,根據(jù)選擇進(jìn)入相應(yīng)的任務(wù)函數(shù),當(dāng)處理完該任務(wù)之后又會回到主循環(huán),由主循環(huán)再次分配任務(wù)。此時(shí)主循環(huán)的作用就是調(diào)配任務(wù)(當(dāng)然用來調(diào)配任務(wù)的主循環(huán)本身也是一個(gè) 最基本的任務(wù)),而在被調(diào)配的任務(wù)里面可能還會再次被該任務(wù)調(diào)配的子任務(wù)。既然主循環(huán)用來調(diào)配任務(wù),那什么時(shí)候該進(jìn)入什么任務(wù)呢?

  1、 順序調(diào)用。這是最簡單的了,幾個(gè)任務(wù)按順序進(jìn)行。像飛思卡爾智能車的程序就是這種結(jié)構(gòu),先進(jìn)行傳感器掃描 - 再進(jìn)行轉(zhuǎn)向角計(jì)算 - 再進(jìn)行最大速度計(jì)算 - 再進(jìn)行速度控制,就這幾個(gè)任務(wù)不斷重復(fù)。雖然在主循環(huán)里只是簡單調(diào)用一下函數(shù),而被調(diào)用的任務(wù)函數(shù)可能很復(fù)雜,比如轉(zhuǎn)向角計(jì)算這個(gè)函數(shù),對它支持函數(shù)專門寫出一個(gè)c文件,而這個(gè)文件的代碼量甚至比main函數(shù)所在文件的代碼量都要大。

  2、 可能各個(gè)任務(wù)之間存在邏輯關(guān)系,在各個(gè)任務(wù)里面直接指定下一個(gè)要進(jìn)入的任務(wù)。比如電子鐘里面的模式切換,1602從一個(gè)界面進(jìn)入到另一個(gè)界面都是由按鍵控制的。如:在時(shí)間界面按下設(shè)置鍵進(jìn)入到設(shè)置界面,按下返回鍵就進(jìn)入到logo界面。這一個(gè)個(gè)界面也就是任務(wù)函數(shù),只不過這個(gè)任務(wù)函數(shù)不會自動跳出,而是根據(jù)按鍵情況決定是否跳出、并通知主循環(huán)要跳到哪。(每個(gè)界面里也會有選擇地對其它進(jìn)程提供的信息進(jìn)行處理,比如時(shí)間界面就會對時(shí)間累加進(jìn)程所提供的時(shí)間信息進(jìn)行顯示,同時(shí)也會對按鍵掃描進(jìn)程提供的按鍵序號進(jìn)行處理;而logo界面只會對按鍵信息進(jìn)行響應(yīng),忽略時(shí)間進(jìn)程提供的時(shí)間,但是時(shí)間進(jìn)程仍然在運(yùn)行,不然時(shí)間豈不是不準(zhǔn)了。 這些進(jìn)程都是由定時(shí)器進(jìn)行的,在后面會說。)

  再如紅外遙控的小車,在執(zhí)行完一個(gè)動作之后都會回到ActionNum=0(不執(zhí)行任何動作)的狀態(tài),把主進(jìn)程釋放,可以執(zhí)行其它類的任務(wù)或者進(jìn)入空閑狀態(tài)。

  3、 由定時(shí)器分配,整個(gè)系統(tǒng)按定時(shí)器的節(jié)拍運(yùn)行。

  電子鐘就是這種結(jié)構(gòu)非常典型的例子。由于沒用時(shí)鐘芯片,采用的是8位自動填裝定時(shí)器每隔200us一次中斷來計(jì)時(shí)的(很準(zhǔn)哦),除計(jì)時(shí)和日期計(jì)算以外,要處理的任務(wù)還有:1602顯示、按鍵掃描、溫度采集和后來添加的電源管理(控制電池充放電)。下面就來討論一下在時(shí)間顯示界面里需要做的這么幾個(gè)任務(wù)(時(shí)間顯示界面本身就是由main函數(shù)的主循環(huán)調(diào)配的一個(gè)子任務(wù)):

單片機(jī) 定時(shí)器 時(shí)鐘芯片
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1TC358743XBG評估板參考手冊
  2. 1.36 MB  |  330次下載  |  免費(fèi)
  3. 2開關(guān)電源基礎(chǔ)知識
  4. 5.73 MB  |  6次下載  |  免費(fèi)
  5. 3100W短波放大電路圖
  6. 0.05 MB  |  4次下載  |  3 積分
  7. 4嵌入式linux-聊天程序設(shè)計(jì)
  8. 0.60 MB  |  3次下載  |  免費(fèi)
  9. 5基于FPGA的光纖通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
  10. 0.61 MB  |  2次下載  |  免費(fèi)
  11. 651單片機(jī)窗簾控制器仿真程序
  12. 1.93 MB  |  2次下載  |  免費(fèi)
  13. 751單片機(jī)大棚環(huán)境控制器仿真程序
  14. 1.10 MB  |  2次下載  |  免費(fèi)
  15. 8基于51單片機(jī)的RGB調(diào)色燈程序仿真
  16. 0.86 MB  |  2次下載  |  免費(fèi)

本月

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

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537796次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191185次下載  |  免費(fèi)
  13. 7十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)
青田县| 微山县| 望谟县| 印江| 营口市| 太仓市| 凤凰县| 英吉沙县| 收藏| 阿拉善盟| 滁州市| 定陶县| 平安县| 玉环县| 苏州市| 安图县| 仙游县| 娱乐| 胶州市| 武宁县| 常山县| 台北市| 江口县| 姚安县| 永安市| 且末县| 利辛县| 巴塘县| 赫章县| 云浮市| 页游| 历史| 新巴尔虎左旗| 嘉禾县| 嘉祥县| 彩票| 定结县| 于田县| 定襄县| 邢台县| 中超|