91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

3天內(nèi)不再提示

單片機(jī)中提高作業(yè)效率的“中斷功能”解讀

電子設(shè)計(jì) ? 來(lái)源:面包板社區(qū) ? 作者:面包板社區(qū) ? 2021-01-15 14:52 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

我們已經(jīng)介紹了應(yīng)用單片機(jī)的外設(shè)功能的結(jié)構(gòu)和使用方法。本期我們介紹更有效地應(yīng)用單片機(jī)而必須的外設(shè)功能——“中斷功能”。

提高作業(yè)效率的“中斷功能”指的是什么?

我們回顧一下本系列第二期的“定時(shí)器”篇中簡(jiǎn)單介紹過(guò)的“中斷功能”概念。任何人都有過(guò)這樣的經(jīng)驗(yàn),就是“將雞蛋放進(jìn)沸騰的熱水中,直到雞蛋煮熟的10分鐘內(nèi)要確認(rèn)好幾次時(shí)鐘”的經(jīng)歷。在單片機(jī)的世界中也同樣,在等待某種狀態(tài)達(dá)成時(shí),具有對(duì)對(duì)象進(jìn)行定期檢查的方法。例如,在等待向GPIO(通用I/O端口)的輸入從0變?yōu)?時(shí),程序可以一定的間隔來(lái)檢查GPIO的狀態(tài)。這種處理被稱(chēng)為“輪詢”。

輪詢雖然是一種了解狀態(tài)變化的簡(jiǎn)單方法,但是如果檢查的頻度低(間隔長(zhǎng))就會(huì)錯(cuò)過(guò)變化,如果頻度過(guò)高(間隔短),即使查也查不到變化“空耗”。由于輪詢通過(guò)簡(jiǎn)單的程序便能完成處理,所以在掌握對(duì)象的變化頻度時(shí)是有效的。但是,進(jìn)行多次檢查也會(huì)給單片機(jī)帶來(lái)負(fù)荷,對(duì)功耗不利。

因此就要用到本期介紹的“中斷功能”。產(chǎn)生中斷時(shí),CPU會(huì)暫時(shí)停止正在執(zhí)行的任務(wù),轉(zhuǎn)而進(jìn)行別的任務(wù)。也就是有別的任務(wù)“穿插”進(jìn)來(lái)的意思(圖1) 。當(dāng)中途穿插進(jìn)來(lái)的任務(wù)結(jié)束后,CPU再返回處理原來(lái)的任務(wù)。

pIYBAGABOryAbCP_AAEXevBfszs377.png

圖1:中斷與輪詢

設(shè)想一下你在工作的同時(shí)煮雞蛋的情況。 由于你不想停下手中的工作,所以把雞蛋放入熱水中后就設(shè)置定時(shí)器并繼續(xù)工作,10分鐘后定時(shí)器一響就把雞蛋從熱水中撈起。這時(shí),定時(shí)器的鳴叫就是中斷 ,而“把雞蛋從熱水中撈起”就是穿插進(jìn)來(lái)的工作。大家可以通過(guò)這種方式來(lái)了解中斷功能。

單片機(jī)中的中斷處理

中斷產(chǎn)生于單片機(jī)內(nèi)部和外部的各種設(shè)備。于開(kāi)關(guān)和感應(yīng)器等單片機(jī)外部的中斷稱(chēng)為外部引腳中斷,來(lái)自這些機(jī)器的中斷信號(hào)由名為“IRQ”的引腳接收,再向中斷控制器(在RX63N中稱(chēng)被稱(chēng)為“ICUb”)發(fā)出通知。IRQ為“Interrupt ReQuest”的略稱(chēng),意思為“中斷請(qǐng)求”。另外,來(lái)自單 片機(jī)內(nèi)部的定時(shí)器和GPIO、串行通信設(shè)備UART等外設(shè)機(jī)器的中斷被稱(chēng)為外部設(shè)備中斷,中斷信號(hào)直接從各外部設(shè)備通知中斷控制器。

在中斷控制器中,各種設(shè)備的中斷信號(hào)按照先來(lái)后到的順序,以適當(dāng)?shù)捻樞虮粋魉偷紺PU。而且,中斷被設(shè)為無(wú)效的設(shè)備的中斷信號(hào)將不會(huì)被傳送到CPU,也就意味著可以忽視(屏蔽)這些信號(hào)。CPU按照從中斷控制器接收到的指示來(lái)執(zhí)行對(duì)應(yīng)的程序(中斷處理)。

CPU一旦接收到中斷控制器的中斷信號(hào),首先將終止執(zhí)行中的程序。然而,會(huì)自動(dòng)保存“從何處重啟”的出棧(POP)信息,這被稱(chēng)為“進(jìn)棧(PUSH)”。進(jìn)棧結(jié)束后,將開(kāi)始由中斷執(zhí)行的程序。該程序結(jié)束時(shí),進(jìn)棧信息將回 送到CPU,這種現(xiàn)象被稱(chēng)為“出?!保▓D2)。由于進(jìn)棧和出棧都由CPU自動(dòng)執(zhí)行,因此程序設(shè)計(jì)者不必因順序問(wèn)題而費(fèi)心。

pIYBAGABOseAOjorAAEjKHERa6k753.png

圖2:中斷處理流程

例如,通過(guò)UART執(zhí)行串行通信時(shí),經(jīng)常監(jiān)視字節(jié)是否被接收了而導(dǎo)致效率不佳。所以,多數(shù)情況下都對(duì)程序進(jìn)行如下編程,即在信息送達(dá) 時(shí)就會(huì)產(chǎn)生中斷并進(jìn)行適當(dāng)?shù)奶幚?,另外,使定時(shí)器產(chǎn)生中斷的情況也不在少數(shù)。進(jìn)行“經(jīng)過(guò)了一定時(shí)間后該做什么”這類(lèi)處理時(shí),應(yīng)進(jìn)行如下編程,即通過(guò)來(lái)自定時(shí)器的信號(hào)開(kāi)始進(jìn)行處理。如上所述,在有效利用單片機(jī)方面,中斷功能發(fā)揮了很大的作用。

還可使用數(shù)據(jù)庫(kù)嘗試編寫(xiě)復(fù)雜的中斷程序!

為了編寫(xiě)與中斷相關(guān)的程序,就需要了解單片機(jī)的運(yùn)行。由于需要深入了解,所以不能僅是進(jìn)行簡(jiǎn)單的嘗試。幸好還有本系列中介紹過(guò)的GR-SAKURA數(shù)據(jù)庫(kù),可在GR-SAKURA數(shù)據(jù)庫(kù)中進(jìn)行與外部引腳中斷相關(guān)的處理,所以請(qǐng)嘗試使用GR-SAKURA數(shù)據(jù)庫(kù)來(lái)進(jìn)行編程。

為了向GR-SAKURA提供外部引腳中斷,還需要做些工作。在GR-SAKURA中,從IO30引腳到IO35引腳接收來(lái)自外部的中斷信號(hào)。這次是將定時(shí)器輸出引導(dǎo)到IO0引腳,再將它傳送到IO31引腳作為中斷信號(hào)。因此,要從IO30引腳到GND的部分設(shè)置引腳接口,由底板用的電線將IO0和IO31連接起來(lái)(圖3)。

o4YBAGABOtKAaDK_AANd8Q_WHAs204.png

圖3:GR-SAKURA的準(zhǔn)備(引腳設(shè)置)

在示例程序(圖4)中預(yù)先準(zhǔn)備了如下功能,即當(dāng)GR- SAKURA的外部中斷信號(hào)引腳(從IO30到IO35中的一個(gè))的輸入從L電平變?yōu)镠電平時(shí),LED燈將啟動(dòng)。而且是在檢測(cè)到相當(dāng)于上述所說(shuō)明的“外部引腳中斷”的中斷信號(hào)后才會(huì)變化。從IO0引腳進(jìn)行定時(shí)器輸出,并將之與中斷輸入引腳即IO31引腳連接,通過(guò)這樣的方式便可以與一定的時(shí)間間隔發(fā)生中斷。

※即使 已對(duì)該程序進(jìn)行了匯編,在沒(méi)有將上述的IO0和IO31引腳進(jìn)行連接的GR-SAKURA中也無(wú)法運(yùn)行。

93l3ap6v100016964-56723-supp.png

以上為圖4的程序

※圖4程序結(jié)束

※圖4:用于外部引腳中斷的示例程序

在此數(shù)據(jù)庫(kù)中,可對(duì)分別與前述中斷信號(hào)輸入引腳對(duì)應(yīng)的處理。本次所示的是根據(jù)向IO31引腳輸入的變化(從L電平變?yōu)镠電平)來(lái)產(chǎn)生中斷的情況。第48行的attachInterrupt()定義了在某個(gè)輸入引腳出現(xiàn)某種變化時(shí)該調(diào)用什么函數(shù)。因此,設(shè)定為根據(jù)輸入IO31引腳的中斷信號(hào)來(lái)啟動(dòng)irq3()。這樣的設(shè)定只需在setup()中定義一次便能在整個(gè)程序中有效。除此以外,在setup()中還記述了定時(shí)器的定義、定時(shí)器輸出引腳的設(shè)定、LED輸出的設(shè)定等初始條件。

沒(méi)有通過(guò)loop()函數(shù)進(jìn)行的處理。取而代之的是由irq3()這個(gè)函數(shù)進(jìn)行處理。從這個(gè)函數(shù)來(lái)看是看不出它是從程序中調(diào)用的。但是,正是由于這個(gè)函數(shù),才能使中斷信號(hào)進(jìn)入IO31引腳時(shí)使LED的光發(fā)生變化。在函數(shù)irq3()中,四盞LED中只有一盞亮燈,這個(gè)函數(shù)一旦被調(diào)用,亮燈的LED就發(fā)生一次變化。為了讓人看得到這個(gè)“變化”,在case標(biāo)簽的部分,通過(guò)來(lái)自GPIO的輸出來(lái)滅燈且使旁邊的LED亮燈(邊緣的LED燈亮燈時(shí),相反側(cè)的邊緣的LED亮燈或滅燈)。

為了應(yīng)對(duì)不知何時(shí)會(huì)發(fā)生的意外,中斷就是非常有效的應(yīng)對(duì)方法。而且,中斷還可以減少程序的不必要運(yùn)行,從而可降低功耗。也可以說(shuō),為了真正有效地利用單片機(jī),這是一項(xiàng)不可缺少的技術(shù)。
編輯:hfy

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6076

    文章

    45499

    瀏覽量

    670619
  • 定時(shí)器
    +關(guān)注

    關(guān)注

    23

    文章

    3368

    瀏覽量

    123711
  • uart
    +關(guān)注

    關(guān)注

    22

    文章

    1314

    瀏覽量

    106680
  • 中斷處理
    +關(guān)注

    關(guān)注

    0

    文章

    96

    瀏覽量

    11484
  • 中斷控制器
    +關(guān)注

    關(guān)注

    0

    文章

    63

    瀏覽量

    9821
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    單片機(jī)系統(tǒng)設(shè)計(jì)方法

    現(xiàn)階段,單片機(jī)系統(tǒng)在軍事、民用、工業(yè)產(chǎn)品中的應(yīng)用越來(lái)越廣泛.其硬件實(shí)現(xiàn)的功能是由軟件來(lái)完成,體積小巧、功能豐富、智能化程度高,而單片機(jī)最為顯著的特點(diǎn)是進(jìn)行數(shù)據(jù)采集由于各個(gè)產(chǎn)業(yè)的急速發(fā)展
    發(fā)表于 01-06 06:23

    這幾個(gè)單片機(jī)技巧如果不了解,真的很難再進(jìn)階

    的開(kāi)發(fā),小編總結(jié)了幾個(gè)技巧,幫助大家進(jìn)階,在優(yōu)秀的開(kāi)發(fā)者路上越走越遠(yuǎn)! 如何提高C的代碼效率? 用C語(yǔ)言進(jìn)行單片機(jī)程序設(shè)計(jì)是單片機(jī)開(kāi)發(fā)與應(yīng)用的必然趨勢(shì)。如果使用C編程時(shí),要達(dá)到最高的
    發(fā)表于 01-05 07:22

    單片機(jī)的入門(mén)準(zhǔn)備

    、修改例程,以學(xué)習(xí)板為載體,自己新建編程工程,用自己的編程思想讓外設(shè)電路實(shí)現(xiàn)想要的功能,程序是靈活的,每個(gè)人都有不同的編程思想,多試幾種方法,提高程序的執(zhí)行效率,鍛煉自己的編程能力; 單片機(jī)
    發(fā)表于 12-22 07:39

    編寫(xiě)簡(jiǎn)單高效單片機(jī)匯編程序

    通過(guò)中斷方式來(lái)完成,在中斷服務(wù)程序中處理各個(gè)事件,而不需要在主程序里繁瑣地處理。 例如某些單片機(jī)的寄存器可以直接進(jìn)行簡(jiǎn)單運(yùn)算,而不需要額外指令,提高執(zhí)行
    發(fā)表于 11-24 07:00

    單片機(jī)原理及應(yīng)用詳解

    單片機(jī)(Microcontroller Unit, MCC) ?是一種集成計(jì)算機(jī)核心功能(CPU、存儲(chǔ)器、I/O接口等)的微型芯片,廣泛應(yīng)用于嵌入式系統(tǒng)中。以下是其原理及應(yīng)用的詳細(xì)介紹: 一、單片機(jī)
    的頭像 發(fā)表于 08-11 13:57 ?2330次閱讀

    什么單片機(jī)比較耐用

    ? ? ? ? 在工業(yè)控制、戶外設(shè)備、醫(yī)療儀器等場(chǎng)景中,單片機(jī)的耐用性直接決定了設(shè)備的穩(wěn)定運(yùn)行與維護(hù)成本。耐用的單片機(jī)通常具備寬溫工作范圍、強(qiáng)抗干擾能力、穩(wěn)定的電源適應(yīng)性和長(zhǎng)壽命的硬件設(shè)計(jì)。深圳市安
    的頭像 發(fā)表于 07-31 13:48 ?787次閱讀

    怎么測(cè)單片機(jī)系統(tǒng)頻率

    單片機(jī)系統(tǒng)頻率是指單片機(jī)工作時(shí)的時(shí)鐘頻率,它直接影響單片機(jī)的運(yùn)行速度和處理能力,準(zhǔn)確測(cè)量系統(tǒng)頻率對(duì)單片機(jī)應(yīng)用開(kāi)發(fā)、程序調(diào)試和性能優(yōu)化具有重要意義。測(cè)量
    的頭像 發(fā)表于 07-25 11:39 ?807次閱讀

    單片機(jī)怎么驅(qū)動(dòng)電機(jī)?

    在各類(lèi)自動(dòng)化設(shè)備和智能裝置中,電機(jī)是重要的執(zhí)行部件,而單片機(jī)作為控制核心,需要通過(guò)特定的方式驅(qū)動(dòng)電機(jī)運(yùn)轉(zhuǎn)。單片機(jī)驅(qū)動(dòng)電機(jī)并非直接連接即可,而是要根據(jù)電機(jī)類(lèi)型和功率,搭配合適的驅(qū)動(dòng)電路,才能實(shí)現(xiàn)穩(wěn)定
    的頭像 發(fā)表于 07-25 09:31 ?936次閱讀

    單片機(jī)怎么燒程序

    單片機(jī)燒程序是將編寫(xiě)好的程序代碼寫(xiě)入單片機(jī)內(nèi)部存儲(chǔ)單元,讓單片機(jī)按照預(yù)設(shè)邏輯工作的過(guò)程,是單片機(jī)應(yīng)用開(kāi)發(fā)中不可或缺的環(huán)節(jié)。無(wú)論是簡(jiǎn)單的燈光控制程序,還是復(fù)雜的工業(yè)控制算法,都需要通過(guò)燒
    的頭像 發(fā)表于 07-23 11:47 ?1335次閱讀

    單片機(jī)定制開(kāi)發(fā)的設(shè)計(jì)思路

    單片機(jī)定制開(kāi)發(fā)是根據(jù)特定場(chǎng)景和功能需求,量身打造符合要求的單片機(jī)應(yīng)用方案,其設(shè)計(jì)過(guò)程需要兼顧技術(shù)可行性與實(shí)際應(yīng)用價(jià)值,涉及多個(gè)關(guān)鍵環(huán)節(jié)。 一、需求分析階段 單片機(jī)定制開(kāi)發(fā)的第一步是深入
    的頭像 發(fā)表于 07-17 11:14 ?794次閱讀
    <b class='flag-5'>單片機(jī)</b>定制開(kāi)發(fā)的設(shè)計(jì)思路

    單片機(jī)和伺服有什么區(qū)別

    : 1. 定義與功能 特性 單片機(jī)(Microcontroller) 伺服系統(tǒng)(Servo System) 定義 一種集成CPU、內(nèi)存、I/O接口的微型計(jì)算機(jī)芯片,用于控制設(shè)備。 一種由伺服電機(jī)、編碼器
    的頭像 發(fā)表于 05-26 09:18 ?863次閱讀

    新概念51單片機(jī)C語(yǔ)言教程入門(mén)、提高、開(kāi)發(fā)、拓展全攻略

    資料介紹 從實(shí)際應(yīng)用入手,以實(shí)驗(yàn)過(guò)程和實(shí)驗(yàn)現(xiàn)象為主導(dǎo),循序漸進(jìn)地講述51單片機(jī)C語(yǔ)言編程方法以及51單片機(jī)的硬件結(jié)構(gòu)和功能應(yīng)用。全書(shū)共分5篇,分別為入門(mén)篇、內(nèi)外部資源操作篇、提高篇、實(shí)
    發(fā)表于 04-15 13:57

    瑞薩RA8D1單片機(jī)IO中斷配置實(shí)現(xiàn)方法

    本文為結(jié)合瑞薩e2 studio工具,以及CPKCOR_RA8D1B評(píng)估板,給大家講述瑞薩RA8D1單片機(jī)IO中斷配置實(shí)現(xiàn)的方法。
    的頭像 發(fā)表于 04-09 15:05 ?1857次閱讀
    瑞薩RA8D1<b class='flag-5'>單片機(jī)</b>IO<b class='flag-5'>中斷</b>配置實(shí)現(xiàn)方法

    單片機(jī)科普總結(jié),建議收藏!

    單片機(jī)(MicrocontrollerUnit,MCU)作為嵌入式系統(tǒng)的核心之一,在現(xiàn)代電子產(chǎn)品中無(wú)處不在。從智能家居、汽車(chē)電子,到工業(yè)控制、醫(yī)療設(shè)備,單片機(jī)支撐著無(wú)數(shù)智能化應(yīng)用的發(fā)展。對(duì)于初學(xué)者
    的頭像 發(fā)表于 04-07 11:58 ?5717次閱讀
    <b class='flag-5'>單片機(jī)</b>科普總結(jié),建議收藏!

    普冉PY32MD320單片機(jī)介紹

    PY32MD320單片機(jī)采用了32 位 ARM Cortex-M0+內(nèi)核,最高工作頻率 48 MHz,帶64 KB Flash和8 KB SRAM存儲(chǔ)器。PY32MD320 單片機(jī)的工作溫度范圍為
    的頭像 發(fā)表于 03-13 16:02 ?1540次閱讀
    普冉PY32MD320<b class='flag-5'>單片機(jī)</b>介紹