人狗畜禽COMPANY LIMITED|全是肉的高H文〈男男〉|全篇肉高H秘书被C办公室四爱|全黄H全肉共妻|全黄H全肉短篇禁乱NP慕浅浅|全黄H全肉短篇N男男

技術(shù)熱線(xiàn): 4007-888-234
設(shè)計(jì)開(kāi)發(fā)

專(zhuān)注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命

開(kāi)發(fā)工具

提供開(kāi)發(fā)工具、應(yīng)用測(cè)試 完善的開(kāi)發(fā)代碼案例庫(kù)分享

技術(shù)支持

從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無(wú)限潛能!

新品推廣

提供新的芯片及解決方案,提升客戶(hù)產(chǎn)品競(jìng)爭(zhēng)力

新聞中心

提供最新的單片機(jī)資訊,行業(yè)消息以及公司新聞動(dòng)態(tài)

單片機(jī)開(kāi)發(fā):什么時(shí)候使用“輪詢(xún)”和“中斷”?

更新時(shí)間: 2021-01-11
閱讀量:7175

為單片機(jī)方案開(kāi)發(fā)過(guò)程中,可以使用輪詢(xún)方法或中斷方法來(lái)檢查狀態(tài)或完成特定操作,比如控制外圍設(shè)備。在本文中,英銳恩單片機(jī)開(kāi)發(fā)工程師比較了這兩種方法的優(yōu)點(diǎn)和缺點(diǎn)。

20200907170438.png

一、輪詢(xún)

輪詢(xún)方法僅使用檢查特定標(biāo)志或多個(gè)標(biāo)志的代碼段來(lái)了解操作狀態(tài)。輪詢(xún)方法始終是主代碼的一部分,而不是ISR的一部分。

輪詢(xún)是一種較簡(jiǎn)單的執(zhí)行方法,建議在需要驗(yàn)證外圍設(shè)備工作的設(shè)計(jì)早期階段使用。它不涉及任何優(yōu)先級(jí)。同樣,代碼段將始終在固定的時(shí)間和固定的順序中執(zhí)行。它易于調(diào)試,對(duì)其他代碼段的執(zhí)行沒(méi)有影響。沒(méi)有大內(nèi)存管理問(wèn)題,沒(méi)有堆棧問(wèn)題。

但是它確實(shí)有一些缺點(diǎn),比如錯(cuò)過(guò)事件的可能性更大。這是因?yàn)檩喸?xún)代碼僅按特定順序執(zhí)行,而不是按響應(yīng)事件執(zhí)行。這可能會(huì)導(dǎo)致一種情況,比如在執(zhí)行輪詢(xún)代碼之前連續(xù)發(fā)生兩個(gè)事件。在這種情況下,代碼只會(huì)執(zhí)行一個(gè)事件。此外,輪詢(xún)也占用了更多的單片機(jī)執(zhí)行時(shí)間。輪詢(xún)只會(huì)重復(fù)執(zhí)行相同的代碼段,這與事件發(fā)生與否無(wú)關(guān)。在單片機(jī)方案開(kāi)發(fā)早期,可以使用輪詢(xún)。系統(tǒng)會(huì)在特定的時(shí)間發(fā)生事件,這是使用輪詢(xún)比較好的地方。

一、中斷

即中斷使用控制器的某個(gè)功能,從而響應(yīng)特定事件。執(zhí)行中斷,單片機(jī)會(huì)停止執(zhí)行主代碼,并切換到另一個(gè)稱(chēng)為“中斷服務(wù)程序”的部分。

由于中斷的性質(zhì),丟失事件的可能性較小。此外,ISR代碼僅在事件發(fā)生時(shí)才執(zhí)行,因此單片機(jī)負(fù)擔(dān)較小。中斷的另一個(gè)功能是優(yōu)先級(jí),可以控制系統(tǒng)對(duì)同時(shí)發(fā)生的事件的響應(yīng)。嵌套中斷使系統(tǒng)即使在響應(yīng)前一個(gè)事件時(shí)發(fā)生事件的情況下也能做出響應(yīng),而輪詢(xún)可能會(huì)錯(cuò)過(guò)此類(lèi)事件。

但是中斷也有一些缺點(diǎn):中斷設(shè)置起來(lái)比較困難,并導(dǎo)致許多復(fù)雜性。由于可以隨時(shí)中斷主代碼,因此需要保護(hù)關(guān)鍵程序部分。另外,中斷會(huì)延遲主代碼的執(zhí)行時(shí)間,并且無(wú)法計(jì)算主代碼任何部分的執(zhí)行時(shí)間,這是因?yàn)樵撨^(guò)程可能會(huì)被中斷延遲。此外,還有許多與中斷有關(guān)的堆棧和內(nèi)存管理問(wèn)題。由于中斷,很有可能造成數(shù)據(jù)丟失和數(shù)據(jù)損壞。

如果發(fā)生的事件確實(shí)是隨機(jī)且不可預(yù)測(cè)的,則需要使用中斷。當(dāng)必須立即或在固定的時(shí)間內(nèi)對(duì)此類(lèi)事件做出響應(yīng)時(shí),需要使用輪詢(xún)。

輪詢(xún)和中斷在代碼開(kāi)發(fā)中都有其位置和用途,在正確的位置使用正確的方法可以減少代碼復(fù)雜性并提高可靠性。

以上就是英銳恩單片機(jī)開(kāi)發(fā)工程師分享的單片機(jī)開(kāi)發(fā)過(guò)程中使用中斷和輪詢(xún)的相關(guān)知識(shí),如果你需要更多單片機(jī)方案產(chǎn)品的信息,請(qǐng)撥打官網(wǎng)電話(huà):0755-82543511,或點(diǎn)擊“在線(xiàn)咨詢(xún)”,我們的客服人員將為你提供更詳細(xì)的解答

鹿邑县| 高要市| 台北县| 新巴尔虎左旗| 梁山县| 游戏| 桐城市| 固阳县| 南雄市| 大城县| 南木林县| 土默特右旗| 西吉县| 桑植县| 镇康县| 榕江县| 吉首市| 乐安县| 上栗县| 菏泽市| 云霄县| 德兴市| 周至县| 莆田市| 高淳县| 闸北区| 吴堡县| 乌鲁木齐县| 莒南县| 和平区| 渝中区| 义马市| 涿州市| 衡山县| 曲麻莱县| 辰溪县| 宽甸| 杨浦区| 交口县| 北票市| 神农架林区|