一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

解析單片機(jī)里的中斷優(yōu)先級(jí)

GReq_mcu168 ? 來源:cg ? 2018-12-28 17:03 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

中斷的產(chǎn)生背景,實(shí)際生活當(dāng)中還有更復(fù)雜的,比如我正在看電視,這個(gè)時(shí)候來電話了,我要進(jìn)入接電話的“中斷”程序當(dāng)中去,就在接電話的同時(shí),聽到了水開的聲音,水開的“中斷”也發(fā)生了,我們就必須要放下手上的電話,先把煤氣關(guān)掉,然后再回來聽電話,最后聽完了電話再看電視,這里就產(chǎn)生了一個(gè)優(yōu)先級(jí)的問題。

還有一種情況,我們?cè)诳措娨暤臅r(shí)候,這個(gè)時(shí)候聽到水開的聲音,水開的“中斷”發(fā)生了,我們要進(jìn)入關(guān)煤氣的“中斷”程序當(dāng)中,而在關(guān)煤氣的同時(shí),電話聲音響了,而這個(gè)時(shí)候,我們的處理方式是先把煤氣關(guān)閉,再去接聽電話,最后再看電視。

從這兩個(gè)過程中,我們可以得到一個(gè)結(jié)論,就是最最緊急的事情,一旦發(fā)生后,我們不管當(dāng)時(shí)處在哪個(gè)“程序”當(dāng)中,我們必須先去處理最最緊急的事情,處理完畢后再去解決其它事情。

在我們的單片機(jī)程序當(dāng)中有時(shí)候也是這樣的,有一般緊急的中斷,有特別緊急的中斷,這取決于具體的系統(tǒng)設(shè)計(jì),這就涉及到中斷優(yōu)先級(jí)和中斷嵌套的概念,今天先簡單介紹一下相關(guān)寄存器,不做例程說明。

中斷優(yōu)先級(jí)有兩種,一種是搶占優(yōu)先級(jí),一種是固有優(yōu)先級(jí),先介紹搶占優(yōu)先級(jí)。來看表1和表2。

表1:IP——中斷優(yōu)先級(jí)寄存器的位分配(地址0xB8、可位尋址)

pIYBAFwl51SAINY8AAAJW9_XSzQ368.png

表2:IP——中斷優(yōu)先級(jí)寄存器的位描述

pIYBAFwl51WAFEjvAAAdQzGVwmk028.png

IP 這個(gè)寄存器的每一位,表示對(duì)應(yīng)中斷的搶占優(yōu)先級(jí),每一位的復(fù)位值都是 0,當(dāng)我們把某一位設(shè)置為 1 的時(shí)候,這一位的優(yōu)先級(jí)就比其它位的優(yōu)先級(jí)高了。

比如我們?cè)O(shè)置了 PT0位為 1 后,當(dāng)單片機(jī)在主循環(huán)或者任何其它中斷程序中執(zhí)行時(shí),一旦定時(shí)器 T0 發(fā)生中斷,作為更高的優(yōu)先級(jí),程序馬上就會(huì)跑到 T0 的中斷程序中來執(zhí)行。

反過來,當(dāng)單片機(jī)正在 T0中斷程序中執(zhí)行時(shí),如果有其它中斷發(fā)生了,還是會(huì)繼續(xù)執(zhí)行 T0 中斷程序,直到把 T0 中的中斷程序執(zhí)行完畢以后,才會(huì)去執(zhí)行其它中斷程序。

當(dāng)進(jìn)入低優(yōu)先級(jí)中斷中執(zhí)行時(shí),如又發(fā)生了高優(yōu)先級(jí)的中斷,則立刻進(jìn)入高優(yōu)先級(jí)中斷執(zhí)行,處理完高優(yōu)先級(jí)級(jí)中斷后,再返回處理低優(yōu)先級(jí)中斷,這個(gè)過程就叫做中斷嵌套,也稱為搶占。

所以搶占優(yōu)先級(jí)的概念就是,優(yōu)先級(jí)高的中斷可以打斷優(yōu)先級(jí)低的中斷的執(zhí)行,從而形成嵌套。當(dāng)然反過來,優(yōu)先級(jí)低的中斷是不能打斷優(yōu)先級(jí)高的中斷的。

表3:中斷查詢序列

pIYBAFwl51aAY2WXAAAdV36Xrow916.png

那么既然有搶占優(yōu)先級(jí),自然就也有非搶占優(yōu)先級(jí)了,也稱為固有優(yōu)先級(jí)。在表3中的最后一列給出的就是固有優(yōu)先級(jí),請(qǐng)注意,在中斷優(yōu)先級(jí)的編號(hào)中,一般都是數(shù)字越小優(yōu)先級(jí)越高。

從表3中可以看到一共有 1~6 共 6 級(jí)的優(yōu)先級(jí),這里的優(yōu)先級(jí)與搶占優(yōu)先級(jí)的一個(gè)不同點(diǎn)就是,它不具有搶占的特性,也就是說即使在低優(yōu)先級(jí)中斷執(zhí)行過程中又發(fā)生了高優(yōu)先級(jí)的中斷,那么這個(gè)高優(yōu)先級(jí)的中斷也只能等到低優(yōu)先級(jí)中斷執(zhí)行完后才能得到響應(yīng)。既然不能搶占,那么這個(gè)優(yōu)先級(jí)有什么用呢?

答案是多個(gè)中斷同時(shí)存在時(shí)的仲裁。比如說有多個(gè)中斷同時(shí)發(fā)生了,當(dāng)然實(shí)際上發(fā)生這種情況的概率很低,但另外一種情況就常見的多了,那就是出于某種原因我們暫時(shí)關(guān)閉了總中斷,即 EA=0,執(zhí)行完一段代碼后又重新使能了總中斷,即 EA=1,那么在這段時(shí)間里就很可能有多個(gè)中斷都發(fā)生了,但因?yàn)榭傊袛嗍顷P(guān)閉的,所以它們當(dāng)時(shí)都得不到響應(yīng),而當(dāng)總中斷再次使能后,它們就會(huì)在同時(shí)請(qǐng)求響應(yīng)了,很明顯,這時(shí)也必需有個(gè)先后順序才行,這就是非搶占優(yōu)先級(jí)的作用了——如表3中,誰優(yōu)先級(jí)最高先響應(yīng)誰,然后按編號(hào)排隊(duì),依次得到響應(yīng)。

搶占優(yōu)先級(jí)和非搶占優(yōu)先級(jí)的協(xié)同,可以使單片機(jī)中斷系統(tǒng)有條不紊的工作,既不會(huì)無休止的嵌套,又可以保證必要時(shí)緊急任務(wù)得到優(yōu)先處理。在后續(xù)的學(xué)習(xí)過程中,中斷系統(tǒng)會(huì)與我們?nèi)缬半S形,處處都有它的身影,隨著學(xué)習(xí)的深入,相信你對(duì)它的理解也會(huì)更加的深入。

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

    關(guān)注

    6067

    文章

    44992

    瀏覽量

    650634
  • 中斷
    +關(guān)注

    關(guān)注

    5

    文章

    905

    瀏覽量

    42813

原文標(biāo)題:一文讀懂單片機(jī)里面的“中斷”優(yōu)先級(jí)

文章出處:【微信號(hào):mcu168,微信公眾號(hào):硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    MCS-96系列單片機(jī)中斷優(yōu)先級(jí)的控制方法

    MCS—96系列單片機(jī)中斷系統(tǒng)頗具特色,其中斷優(yōu)先級(jí)的控制極具靈活性,用戶可采用軟、硬件結(jié)合的方法隨心所欲地安排各類中斷源的
    發(fā)表于 05-03 16:36 ?2748次閱讀

    單片機(jī)中斷優(yōu)先級(jí)應(yīng)用案例

    單片機(jī)同時(shí)接收到幾個(gè)中斷請(qǐng)求時(shí),單片機(jī)對(duì)中斷請(qǐng)求的響應(yīng)順序是如何確定的?實(shí)際上,單片機(jī)是通過中斷
    發(fā)表于 10-31 14:42 ?2815次閱讀
    <b class='flag-5'>單片機(jī)</b><b class='flag-5'>中斷</b><b class='flag-5'>優(yōu)先級(jí)</b>應(yīng)用案例

    單片機(jī)中斷優(yōu)先級(jí)問題

    對(duì)單片機(jī)很有興趣,有學(xué)過單片機(jī),是51系列的。對(duì)中斷優(yōu)先級(jí)不太懂,期望哪位大蝦幫忙下,小弟不勝感激!
    發(fā)表于 11-18 15:42

    單片機(jī)中斷優(yōu)先級(jí)的軟件擴(kuò)展方法

    為了解決MCS-51系列單片機(jī)只能由IP寄存器設(shè)定兩級(jí)優(yōu)先級(jí)的問題,文中給出了利用軟件對(duì)中斷優(yōu)先級(jí)進(jìn)行擴(kuò)展的方法,同時(shí)給出了高于兩個(gè)
    發(fā)表于 04-30 13:43 ?29次下載

    單片機(jī)中斷優(yōu)先級(jí)實(shí)驗(yàn)

    單片機(jī)外部中斷實(shí)驗(yàn)和中斷優(yōu)先級(jí)實(shí)驗(yàn)所需的C語言程序和電路圖適于初學(xué)者使用
    發(fā)表于 11-16 18:32 ?0次下載

    STM32單片機(jī)優(yōu)先級(jí)的定義

    先占優(yōu)先級(jí)也就是搶占優(yōu)先級(jí),概念等同于51單片機(jī)中的中斷。假設(shè)有兩中斷先后觸發(fā),已經(jīng)在執(zhí)行的中斷
    發(fā)表于 12-07 15:09 ?9803次閱讀
    STM32<b class='flag-5'>單片機(jī)</b><b class='flag-5'>優(yōu)先級(jí)</b>的定義

    如何設(shè)置51單片機(jī)中斷優(yōu)先級(jí)

    PS:串行口中斷優(yōu)先級(jí)控制位。PS=1設(shè)定串行口為高優(yōu)先級(jí)中斷;PS=0為低優(yōu)先級(jí)中斷。
    發(fā)表于 12-17 16:28 ?3.4w次閱讀

    如何采用STM32單片機(jī)中斷向量控制器NVIC來分配優(yōu)先級(jí)的數(shù)量

    先占優(yōu)先級(jí)的概念等同于51單片機(jī)中的中斷。假設(shè)有兩中斷先后觸發(fā),已經(jīng)在執(zhí)行的中斷先占優(yōu)先級(jí)如果沒
    發(fā)表于 12-20 16:17 ?3616次閱讀

    51單片機(jī)中斷優(yōu)先級(jí)中斷嵌套的詳細(xì)資料概述

    基本型80C51系列單片機(jī)有5個(gè)中斷源,2個(gè)優(yōu)先級(jí),每個(gè)中斷源可通過軟件設(shè)置為高優(yōu)先級(jí)或低優(yōu)先級(jí)
    發(fā)表于 09-03 17:28 ?5次下載
    51<b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>中斷</b><b class='flag-5'>優(yōu)先級(jí)</b>和<b class='flag-5'>中斷</b>嵌套的詳細(xì)資料概述

    為什么51單片機(jī)的默認(rèn)中斷優(yōu)先級(jí)都是低級(jí)及中斷嵌套

    51單片機(jī)(80C51系列)有5個(gè)中斷源,2個(gè)優(yōu)先級(jí),可以實(shí)現(xiàn)二級(jí)中斷服務(wù)嵌套?,F(xiàn)在很多擴(kuò)展的51單片機(jī)
    發(fā)表于 07-23 17:37 ?1次下載
    為什么51<b class='flag-5'>單片機(jī)</b>的默認(rèn)<b class='flag-5'>中斷</b><b class='flag-5'>優(yōu)先級(jí)</b>都是低級(jí)及<b class='flag-5'>中斷</b>嵌套

    51單片機(jī)中斷優(yōu)先級(jí)中斷嵌套的詳細(xì)資料說明

    51單片機(jī)(80C51系列)有5個(gè)中斷源,2個(gè)優(yōu)先級(jí),可以實(shí)現(xiàn)二級(jí)中斷服務(wù)嵌套?,F(xiàn)在很多擴(kuò)展的51單片機(jī)
    發(fā)表于 07-09 17:41 ?3次下載
    51<b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>中斷</b><b class='flag-5'>優(yōu)先級(jí)</b>及<b class='flag-5'>中斷</b>嵌套的詳細(xì)資料說明

    單片機(jī)中斷優(yōu)先級(jí)設(shè)置

    單片機(jī)芯 片: STC12C5A60S2 晶振是11.0592MHZ中斷優(yōu)先級(jí)的基本規(guī)則1.低優(yōu)先級(jí)中斷可被高
    發(fā)表于 11-17 09:36 ?6次下載
    <b class='flag-5'>單片機(jī)</b>之<b class='flag-5'>中斷</b><b class='flag-5'>優(yōu)先級(jí)</b>設(shè)置

    STM8S105硬件中斷映射表和軟件中斷優(yōu)先級(jí)

    硬件中斷優(yōu)先級(jí)中0最高,依次優(yōu)先級(jí)降低。只有當(dāng)軟件優(yōu)先級(jí)相同時(shí),單片機(jī)才進(jìn)行硬件優(yōu)先級(jí)的判斷,且
    發(fā)表于 01-14 15:28 ?1次下載
    STM8S105硬件<b class='flag-5'>中斷</b>映射表和軟件<b class='flag-5'>中斷</b><b class='flag-5'>優(yōu)先級(jí)</b>位

    51單片機(jī)中斷優(yōu)先級(jí)都有啥?如何設(shè)置?

    51單片機(jī)包含五個(gè)中斷源,兩級(jí)中斷優(yōu)先級(jí),優(yōu)先級(jí)可編程設(shè)置,通過IP進(jìn)行設(shè)置。
    發(fā)表于 02-09 12:32 ?2次下載
    51<b class='flag-5'>單片機(jī)</b><b class='flag-5'>中斷</b><b class='flag-5'>優(yōu)先級(jí)</b>都有啥?如何設(shè)置?

    單片機(jī)的“中斷優(yōu)先級(jí)

    在我們的單片機(jī)程序當(dāng)中有時(shí)候也是這樣的,有一般緊急的中斷,有特別緊急的中斷,這取決于具體的系統(tǒng)設(shè)計(jì),這就涉及到中斷優(yōu)先級(jí)
    的頭像 發(fā)表于 04-08 09:57 ?5577次閱讀