国内永久福利在线视频图片_深夜福利影院_久久99热精品国产av_亚洲欧美一区二区三区蜜芽_久久久亚洲熟妇熟女网址

新聞banner
當前位置: 首 頁 >> 新聞資訊>>技術資訊
11

用哪些開發(fā)工具編寫超低功耗MCU單片機程序?

MCU的程序的編寫與PC下的程序的編寫存在很大的差異,雖然現(xiàn)在根據(jù)C的MCU開發(fā)工具越來越流行,但關于一個高效的程序代碼和喜歡運用匯編的規(guī)劃者來講,匯編言語仍然是最簡練、最有用的編程言語。

關于MCU的程序編寫,其底子的結構能夠說是大體一致的,一般分為初始化部分(這是超低功耗MCU程序規(guī)劃與PC最大的不同),主程序循環(huán)體和間斷處理程序三大部分,其分別闡明如下:

1、初始化:關于全部的MCU程序的規(guī)劃來講,初始化是最底子也是最重要的一步,一般包含如下內(nèi)容:

屏蔽全部間斷并初始化堆棧指針:初始化部分一般不希望有任何間斷產(chǎn)生。

鏟除系統(tǒng)的RAM區(qū)域和閃現(xiàn)Memory:雖然有時或許沒有完全的必要,但從可靠性及一致性的角度動身,特別是關于防止意外的差錯,仍是主張養(yǎng)成良好的編程習氣。

IO口的初始化:根據(jù)項目的運用的要求,設定相關IO口的輸入輸出方法,關于輸進口,需求設定其上拉或下拉電阻;關于輸出口,則有必要設定其初始的電平輸出,以防呈現(xiàn)不必要的差錯。

間斷的設置:關于全部項目需求用到的間斷源,應該給予開啟并設定間斷的觸發(fā)條件,而關于不運用的多余的間斷,則有必要給予關閉。

其他功能模塊的初始化:關于全部需求用到的MCU的外圍功能模塊,有必要按項目的運用的要求進行相應的設置,如UART的通訊,需求設定Baud Rate,數(shù)據(jù)長度,校驗方法和Stop Bit的長度等,而關于Programmer Timer,則有必要設置其時鐘源,分頻數(shù)及Reload Data等。

參數(shù)的初始化:完成了低功耗MCU的硬件和資源的初始化后,接下來就是對程序中運用到的一些變量和數(shù)據(jù)的初始化設置,這一部分的初始化需求根據(jù)詳細的項目及程序的整體安排來規(guī)劃。關于一些用EEPROM來保存項目預制數(shù)的運用來講,主張在初始化時將相關的數(shù)據(jù)拷貝到MCU的RAM,以進步程序對數(shù)據(jù)的拜訪速度,一同降低系統(tǒng)的功耗(原則上,拜訪外部EEPROM都會增加電源的功耗)。

2、主程序循環(huán)體:大多數(shù)MCU是歸于長時刻不間斷工作的,因此其主程序體底子上都是以循環(huán)的方法來規(guī)劃,關于存在多種作業(yè)模式的運用來講,則或許存在多個循環(huán)體,相互之間通過狀況標志來進行轉化。關于主程序體,一般狀況下首要安排如下的模塊:

核算程序:核算程序一般比較耗時,因此堅決對立放在任何間斷中處理,特別是乘除法運算。

實時性要求不高或沒有實時性要求的處理程序;

超低功耗mcu

閃現(xiàn)傳輸程序:首要針對存在外部LED、LCD Driver的運用。

3、間斷處理程序:間斷程序首要用于處理實時性要求較高的任務和事情,如,外部突發(fā)性信號的檢測,按鍵的檢測和處理,守時計數(shù),LED閃現(xiàn)掃描等。

一般狀況下,間斷程序應盡或許保證代碼的簡練和短小,低功耗芯片關于不需求實時去處理的功能,能夠在間斷中設置觸發(fā)的標志,然后由主程序來實行詳細的事務――這一點非常重要,特別是關于低功耗、低速的MCU來講,有必要保證全部間斷的及時呼應。

4、關于不同任務體的安排,不同的MCU其處理的方法也有所不同:

例如,關于低速、低功耗的MCU(Fosc=32768Hz)運用,考慮到此類項目均為手持式設備和選用一般的LCD閃現(xiàn),對按鍵的反響和閃現(xiàn)的反響要求實時性較高,因此一般選用守時刻斷的方法來處理按鍵的動作和數(shù)據(jù)的閃現(xiàn);而關于高速的MCU,如Fosc》1MHz的運用,因為此時MCU有滿足的時刻來實行主程序循環(huán)體,因此能夠只在相應的間斷中設置各種觸發(fā)標志,并將全部的任務放在主程序體中來實行。

5、在MCU的程序規(guī)劃中,還需求特別注意的一點就是:

要防止在間斷和主程序體中一同拜訪或設置同一個變量或數(shù)據(jù)的狀況。有用的預防方法是,將此類數(shù)據(jù)的處理安排在一個模塊中,通過判別觸發(fā)標志來決定是否實行該數(shù)據(jù)的相關操作;而在其他的程序體中(首要是間斷),對需求進行該數(shù)據(jù)的處理的當?shù)刂辉O置觸發(fā)的標志。――這能夠保證數(shù)據(jù)的實行是可預知和僅有的。


底部二維碼1
手機掃一掃
關注我們微信公眾號
承德市| 黑山县| 邵阳县| 高州市| 秭归县| 通州市| 昌宁县| 买车| 卢湾区| 东明县| 宜阳县| 广州市| 托里县| 临猗县| 大关县| 衡阳市| 霍山县| 宁安市| 治多县| 中方县| 镇赉县| 武安市| 凤山县| 洪洞县| 昭觉县| 万安县| 青海省| 永胜县| 郧西县| 平罗县| 桦南县| 马山县| 伊吾县| 大城县| 汤阴县| 夹江县| 琼中| 东城区| 托克托县| 望奎县| 晋城|