又大又粗欧美黑人AAAAA片_欧美成人怡红院一区二区_蜜臀AV无码精品人妻色欲_人妻 熟女 有码 中文_国产精品一卡二卡三卡四卡_亚洲综合一区二区

新聞banner
當(dāng)前位置: 首 頁 >> 新聞資訊>>技術(shù)資訊
03

模塊化的編程方式已經(jīng)成為單片機(jī)編程的重要方式

在單片機(jī)的運用中,編程是十分重要的技能環(huán)節(jié)。在不斷的探究和開展中,模塊化的編程辦法現(xiàn)已成為單片機(jī)編程的重要辦法。在模塊化編程中,應(yīng)考慮多個程序的結(jié)構(gòu)對程序履行的影響,因而下面將剖析單片機(jī)的程序結(jié)構(gòu)。
單片機(jī)的運用十分廣泛,承當(dāng)了許多職業(yè)的體系操控使命,單片機(jī)功用的完成首要取決于運用程序的操控。恰當(dāng)?shù)膶懽鹘Y(jié)構(gòu)和辦法已成為研討的要點。


超低功耗mcu

一、單片機(jī)程序結(jié)構(gòu)規(guī)劃的特色

單片機(jī)的編程應(yīng)從程序開發(fā)的言語下手,為不同的功用挑選不同的程序結(jié)構(gòu),然后為程序規(guī)劃打下杰出的根底,因而如安在實際操作中挑選程序的結(jié)構(gòu)形式就成了編程很重要。跟著計算機(jī)技能的老練和單片機(jī)技能的開展,提出了結(jié)構(gòu)化的編程辦法。它首要是將程序編寫歸入模塊形式,運用結(jié)構(gòu)標(biāo)準(zhǔn)化,模塊化等辦法來完成程序的編寫,并運用模塊化結(jié)構(gòu)來簡化程序的雜亂性。這種類型的規(guī)劃是可重用和可移植的。簡化程序的編寫進(jìn)程,進(jìn)步模塊的利用率。然后下降了犯錯的可能性,進(jìn)步了單片機(jī)的運用作用。依據(jù)不同的超低功耗MCU功用能夠挑選不同的模塊,每個模塊的功用都能夠杰出地運用到體系中,而且能夠在特定的作業(yè)環(huán)境中處理特別的問題。一直合理地裝備軟件結(jié)構(gòu),理順模塊之間的聯(lián)系,以便從微觀的視點完成對編程進(jìn)程和結(jié)構(gòu)的操控。因而,完成了雜亂問題的簡化,進(jìn)步了單片機(jī)的編程功率,而且進(jìn)步了處理雜亂問題的才干。

二、SCM開發(fā)言語挑選

由于C言語在運用方面的優(yōu)勢,因而被廣泛用于單片機(jī)的編程中??旖莸倪\用程序庫功用易于完成雜亂數(shù)據(jù)的結(jié)構(gòu)??墒荂言語無法在時序操控中取得優(yōu)勢,速度型算法不容易滿意單片機(jī)的要求??墒?,由于C言語已包含在編程范圍內(nèi),因而其匯編混合編程模型現(xiàn)已能夠協(xié)助補(bǔ)償其言語的缺陷。跟著單片機(jī)調(diào)試技能的開展,單片機(jī)現(xiàn)已習(xí)慣了C言語程序操控,然后為編程供給了高檔言語的可能性。

三、單片機(jī)編程的通用程序結(jié)構(gòu)

為了便利單片機(jī)的編程,一般能夠?qū)⑵浞譃槎喾N結(jié)構(gòu)以習(xí)慣不同的功用要求。詳細(xì)結(jié)構(gòu)如下。

3.1根本程序結(jié)構(gòu)

它的結(jié)構(gòu)包含兩部分:初始化程序和作業(yè)程序。上電后,初始化程序擔(dān)任復(fù)位。首要履行初始化程序。該程序只需求在作業(yè)前履行一次即可。初始化程序運轉(zhuǎn)以全面檢測和初始化各種端口和變量,計時器,ADC等。如有必要,能夠樹立不同的初始化分支,能夠檢測和初始化不同的端子,并能夠依據(jù)不同的條件挑選不同的初始化辦法,例如冷發(fā)動和熱發(fā)動選項。主程序是一個循環(huán)程序,履行單片機(jī)的作業(yè)內(nèi)容,并完成特定功用,如檢測,操控,通訊,人機(jī)交互等。每個功用都由子程序操控,主程序是調(diào)用這些程序以促進(jìn)模塊化編程和運用的指揮官。


3.2模塊結(jié)構(gòu)

在單片機(jī)程序中,主程序擔(dān)任模塊的調(diào)度,而完成該功用的子例程則被合理地調(diào)度。這時,預(yù)訂程序便是模塊。添加到此類模塊的是某些功用。模塊化程序結(jié)構(gòu)能夠促進(jìn)程序多個功用的集成,即在不添加主程序難度的前提下添加或削減模塊能夠完成體系功用的改動。完成程序的優(yōu)化,便于保護(hù),下降錯誤率。

3.3模塊操控機(jī)制

在方案主程序時,并非一切模塊都適用,因而應(yīng)在一段時間內(nèi)對模塊進(jìn)行操控,而且并非一切模塊都需求參加一切周期?;蛟S某些模塊的履行并不頻頻,只要在滿意某些條件后才履行。為了處理這個問題,能夠為模塊設(shè)置一個標(biāo)志。模塊應(yīng)在履行前判別自己的標(biāo)志位。僅當(dāng)標(biāo)志位可用時,才干履行相關(guān)操作。假如標(biāo)志位不可用,則應(yīng)履行回來進(jìn)程,而且不履行相應(yīng)的模塊功用。

3.4優(yōu)先呼叫機(jī)制

調(diào)用模塊時,主程序應(yīng)具有不同的次序,由于模塊操作的優(yōu)先級將約束其運用。假如沒有優(yōu)先級約束,則某些重要模塊將無法呼應(yīng)或不及時。因而,主程序應(yīng)該能夠剖析和挑選調(diào)用中模塊的優(yōu)先級,并依據(jù)不同的處理事情來區(qū)別模塊的優(yōu)先級。查看模塊的功用,優(yōu)先級更高的模塊,然后查詢后續(xù)的功用模塊和類比。假如呈現(xiàn)不可用狀況,則履行新一輪檢測,并發(fā)動優(yōu)先級更高的模塊。

3.5前后結(jié)構(gòu)

前臺和后臺的結(jié)構(gòu)是引入了中止機(jī)制,即依據(jù)實時事情和緊急狀況進(jìn)行區(qū)別對待,提出具有較高實時性的事情,讓它們對中止作出呼應(yīng),以及具有較低實時性的事情。 -time和使命被合并到主程序中,例如顯現(xiàn)改寫,掃描等。構(gòu)成被中止的前端和后端履行程序結(jié)構(gòu)。前臺和后臺的程序應(yīng)依據(jù)大多數(shù)使命的需求履行功用調(diào)度。留意正在運用的前臺和后臺使命的結(jié)構(gòu),并盡可能削減中止服務(wù)程序的履行時間。您能夠在中止服務(wù)程序中設(shè)置一些標(biāo)志,然后后臺程序檢測這些標(biāo)志以進(jìn)行進(jìn)一步處理。這能夠在很大程度上避免前臺程序和后臺程序搶占互相的處理器資源,然后導(dǎo)致某些低優(yōu)先級的使命堵塞。現(xiàn)在,跟著單片機(jī)的開展,一些單片機(jī)的中止資源現(xiàn)已大大豐厚,一切使命都能夠經(jīng)過中止來完成。這樣,咱們能夠讓中止接收一切作業(yè)并廢棄后臺程序,只保存必要的初始化程序即可。只需進(jìn)入低功耗形式并等候中止以處理其他使命即可。


底部二維碼1
手機(jī)掃一掃
關(guān)注我們微信公眾號
梅州市| 田林县| 乐亭县| 洛扎县| 兰考县| 岑巩县| 海盐县| 资源县| 濮阳县| 卢湾区| 汕尾市| 韶山市| 澄城县| 巴马| 庄河市| 修水县| 肥城市| 顺昌县| 鹿邑县| 大化| 通渭县| 洪湖市| 丰宁| 建水县| 恩施市| 安徽省| 鄂温| 广德县| 古浪县| 芦山县| 隆尧县| 文登市| 临泽县| 阿尔山市| 水城县| 融水| 乐亭县| 科尔| 河曲县| 北票市| 盱眙县|