久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
一種基于系統節拍時間的單片機程序設計模式( 思想的提出 -01)
[打印本頁]
作者:
水漫金山2017
時間:
2019-12-2 16:58
標題:
一種基于系統節拍時間的單片機程序設計模式( 思想的提出 -01)
本帖最后由 水漫金山2017 于 2019-12-3 09:00 編輯
單片機又稱微控制器,其工作原理與PC機相似,也就是存儲程序和程序控制的工作方式。這里的程序有可能是匯編語言也有可能是C語言,但這里我們即將要討論的不是用哪種語言編寫程序的問題。我想和大家討論的是一種程序設計模式,也就是討論一下單片機程序設計中的一種比較通用,合理的方法。當然了,這里還是以C語言程序設計作為例程。我們都知道,從微觀上來講,CPU只能一條條的執行指令。(這里為方便討論問題,有可能不區分指令和程序)。也就是說,在微觀上來講,CPU在某一個時刻,只能執行一個指令動作,這是我們要明白的第一點。第二點,我們還要知道單片機中還有一個特別好的運行機制,那就是中斷。中斷可以讓任勞任怨的CPU專注于眼前的事情,而不必時刻“擔心”著“突然事件”。待到“突然事件”發生,CPU再轉頭去處理。還有一點,我們要明白,那就是單片機的主頻越高,指令執行的越快。(當然了,頻率高帶來的附作用,也不是我們這篇文章要討論的)。知道了以上三點,我們現在就開始有關文章主題的討論。
平時生活中,我們經常用快慢這兩個字。比如說,這個人做事真快,吃飯也快,寫程序也快,總之吃喝拉撒,衣食住行都快。那么一個人做事快,有什么好處呢?很明顯,節約時間,能處理更多的事情,看起來像是很多事情同時做了一樣。慢,則一切相反。對單片機這種MHZ頻率的機器來講,實現”看起來像”同時處理更多的事情更是不在話下。這也是單片機程序能并發的物質基礎之一。單片機雖然快,但我們也不能隨隨便便把所有任務都直接丟給單片機去處理,那樣會出問題的。比如,我們在剛一接觸單片機程序設計時,會這樣寫程序://主程序: //中斷服務程序
void main() void ISR(void)
{ {
//初始化單片機系統 Task1();
Task2();
Inital() Task3();
}
//超級循環
while(1)
{
Task1();
Task2();
Task3();
}
}
這樣寫單片機程序會因為一個任務的“阻塞”而耽誤其他程序的實時響應。比如,Task1,是一個按鍵掃描程序,其中有大概10ms的消抖時間,如果我們在程序中直接寫一個delay_10ms()程序,那么Task2和Task3勢必會因為這個延時而耽誤運行。所以,為了解決類似這樣的沖突,我們提出了一種單片機程序設計模式,一種基于系統節拍時間的程序設計模式。這種設計模式的思想是,在一個系統節拍時間到來,只運行其中一任務(注意,一定是一個任務)。所謂節拍時間是單片機系統提供給每一個任務的運行時間。在實際應用中,其實每個任務的最低響應時間要求可以是不同的,比如,按鍵可以10 - 20ms掃描一次,動態掃描的LED,總的刷新周期不超過20ms,人眼還是可以接受的,再比如,溫度數據采集甚至可以500ms一次,正因為這些差異我們可以實現單片機程序的“并發執行“。
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
亚洲成人免费网址
|
亚洲国产欧美91
|
91精品麻豆日日躁夜夜躁
|
亚洲国产精品久久久久秋霞不卡
|
精品欧美二区
|
日本三级电影在线免费观看
|
久草在线视频中文
|
欧美日韩一二三区
|
51ⅴ精品国产91久久久久久
|
亚洲视频在线看
|
亚洲精品一区中文字幕
|
国产一区免费视频
|
亚洲图片视频一区
|
伊人狠狠操
|
草草草网站
|
久久国产一区
|
玖玖操
|
免费毛片网站
|
一区二区三区国产
|
久久av一区
|
精品久久久久久久久久久久
|
国产96在线
|
久久综合狠狠综合久久综合88
|
午夜一区二区三区
|
亚洲乱码一区二区三区在线观看
|
亚洲精品乱码久久久久久按摩
|
国产日韩一区二区三区
|
久久成人一区
|
www.色.com
|
亚洲成人国产
|
狠狠躁躁夜夜躁波多野结依
|
成人在线亚洲
|
色花av
|
美国av毛片
|
久久99精品久久久久久
|
精品乱码一区二区三四区
|
伊人爽
|
成人黄色av网站
|
国产在线一区二区三区
|
一区二区在线观看免费视频
|
密桃av
|