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

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

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

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

Cortex-M0處理器電平觸發(fā)和脈沖輸入

strongerHuang ? 來源:極術(shù)社區(qū) ? 作者:極術(shù)社區(qū) ? 2022-05-16 09:10 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Cortex-M0處理器允許兩種形式的中斷請求:電平觸發(fā)和脈沖輸入 電平觸發(fā)是外設(shè)的中斷請求有持續(xù)的電平信號,若電平信號在處理器從ISR返回之前沒有被取消,則中斷返回后將再次觸發(fā)已經(jīng)服務(wù)過的中斷。 脈沖中斷是在信號的上升沿同步采樣的中斷信號,為了確保NVIC檢測到中斷,外設(shè)必須維持中斷信號至少一個時鐘周期,在此期間,NVIC檢測脈沖和鎖存中斷。后續(xù)的脈沖可以將暫掛狀態(tài)加到活動中斷中,使?fàn)顟B(tài)為中斷活動且掛起。然而,在有限周期內(nèi)發(fā)生的多個脈沖只登記作為中斷調(diào)度的單個事件。 哪些中斷是電平觸發(fā)的,哪些是脈沖觸發(fā)的,具體選擇哪一種是根據(jù)芯片設(shè)計來決定,不過大多數(shù)的外設(shè)使用電平觸發(fā)中斷輸出。
1. 電平觸發(fā)和脈沖輸入

Cortex-M0處理器鎖存所有中斷,外圍中斷成為等待其中一個原因是:

  • NVIC檢測到中斷信號被置位并且對應(yīng)的中斷不是active

  • NVIC檢測到中斷信號的上升沿

  • 軟件寫入相應(yīng)的中斷集掛起寄存器

掛起的中斷將一直掛起,直到下列情況之一發(fā)生:

  • 處理器為中斷進入ISR,這將改變中斷的狀態(tài)等待活躍:

對于電平觸發(fā)型中斷,當(dāng)處理器從ISR返回時,NVIC采樣中斷信號。如果中斷信號仍然有效,表示中斷的狀態(tài)更改為pending,這可能會導(dǎo)致處理器立即重新進入ISR。否則,中斷的狀態(tài)將變?yōu)榉腔顒訝顟B(tài)。

對于脈沖觸發(fā)型中斷,NVIC繼續(xù)監(jiān)視中斷信號,如果這樣觸發(fā)時,中斷狀態(tài)變?yōu)閽炱鸷突顒訝顟B(tài)。在這種情況下,當(dāng)處理器從ISR返回中斷狀態(tài)時,中斷狀態(tài)變?yōu)閽炱馉顟B(tài)可能會導(dǎo)致處理器立即重新進入ISR。如果中斷信號不是脈沖而處理器是在ISR,當(dāng)處理器從ISR返回中斷狀態(tài)變?yōu)榉腔顒訝顟B(tài)。

  • 軟件寫入相應(yīng)的中斷清除寄存器位。

對于電平觸發(fā)型中斷,如果中斷信號仍然有效,則中斷的狀態(tài)中斷不會改變。否則,中斷的狀態(tài)將變?yōu)榉腔顒訝顟B(tài)。

對于脈沖中斷,中斷狀態(tài)變?yōu)椋?/span>

  • inactive,如果狀態(tài)是pending

  • active,如果狀態(tài)是活動的和掛起的

2. 中斷處理

當(dāng)中斷事件發(fā)生時,由于外設(shè)連接到了NVIC上,中斷信號就會得到確認(rèn)。在處理器執(zhí)行中斷服務(wù)并且沒有清除外設(shè)的中斷的信號以前,該信號會保持高電平。

在NVIC內(nèi)部,當(dāng)檢測到有中斷發(fā)生時,該中斷的掛起狀態(tài)會被置位,當(dāng)處理器接受該中斷并且開始執(zhí)行中斷服務(wù)后,掛起狀態(tài)就會被清除。

15ed846c-d4b2-11ec-bce3-dac502259ad0.png

針對脈沖輸入的中斷請求,這種情況下,在中斷得到服務(wù)之前,掛起狀態(tài)寄存器將會一直保持該請求。

1646a740-d4b2-11ec-bce3-dac502259ad0.png

如果中斷請求沒有立即執(zhí)行,并且在確認(rèn)之前被軟件清除了,處理器將會忽略掉本次請求,并且不會執(zhí)行中斷處理。

如果在軟件清除掛起狀態(tài)時,外設(shè)仍然保持著中斷請求,掛起狀態(tài)寄存器還會立即生成。

3. 中斷等待

通常情況下,處理器的中斷等待時間為16個周期,這個等待時間從中斷確認(rèn)的處理器時鐘周期開始,一直到中斷處理開始執(zhí)行結(jié)束。

計算中斷等待需具備以下前提:

  • 該中斷使能并沒有PRIMASK或者其他正在執(zhí)行的異常處理所屏蔽

  • 存儲器系統(tǒng)沒有任何等待狀態(tài),在中斷處理、壓棧、取向量表或者中斷處理開始時取指都會用到總線傳輸,如果存儲器系統(tǒng)需要等待,那么總線傳輸時產(chǎn)生的等待狀態(tài)則可能使得中斷延遲。

下面幾種情況可能會導(dǎo)致不同的中斷等待:

  • 中斷的咬尾連鎖,如果一個中斷返回時立即產(chǎn)生另外一個中斷請求,處理器就會跳過出棧和壓棧時間,減少了中斷等待時間。

  • 延遲到達,如果中斷發(fā)生時,另外一個低優(yōu)先級中斷正在進行壓棧處理,由于延遲到達,高優(yōu)先級的中斷就會立即執(zhí)行,這樣會導(dǎo)致高優(yōu)先級的中斷等待時間減少。

4. 異常屏蔽寄存器PRIMASK

有些對時間敏感的應(yīng)用,需要在短時間內(nèi)禁止響應(yīng)所有的中斷,對于這種應(yīng)用,處理器不是直接使用中斷使能、禁止控制寄存器來禁止所有中斷再恢復(fù),而是一個單獨的特殊寄存器 - PRIMASK,通過它可以屏蔽掉除了NMI和HardFault異常的其他的所有的中斷和系統(tǒng)異常。

PRIMASK寄存器只有1位有效,并且在復(fù)位后默認(rèn)為0。該寄存器為0時,所有的中斷和異常都處于允許狀態(tài),設(shè)置為1后,只有NMI和HardFault處于使能狀態(tài)。


	

MOVSR0,#0x1;//中斷#2 MSRPRIMASK,R0;//將R0的值送到PRIMASK

NVIC編程提示軟件使用CPSIE i和CPSID i指令來啟用和禁用中斷。


	

CPSIEi;//清除PRIMASK(使能中斷) CPSIDi;//設(shè)置PRIMASK(不響應(yīng)中斷)

CMSIS設(shè)備驅(qū)動庫提供了C語言的實現(xiàn)函數(shù),用戶可以直接使用函數(shù)來設(shè)置和清除PRIMASK寄存器:


	

void__disable_irq(void)//不響應(yīng)中斷 void__enable_irq(void)//啟用中斷

在對時間敏感的程序完成后,應(yīng)該清除PRIMASK。要不然即使在中斷處理中使用\_\_disable\_irq()函數(shù),處理器將停止接受新的中斷請求。主要原因是PRIMASK寄存器和Xpsr是相互獨立的,因此異常返回不會影響中斷屏蔽狀態(tài)。

5. NVIC使用提示

確保軟件使用正確對齊的寄存器訪問,處理器不支持對 NVIC 寄存器的未對齊訪問。

即使中斷被禁用,它也可以進入掛起狀態(tài)。

禁用中斷只能防止處理器處理中斷。

在對中斷向量表重定義之前,必須包含所有的異常中斷,例如 NMI、HardFault 和外設(shè)中斷等。

審核編輯 :李倩


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

    關(guān)注

    68

    文章

    20283

    瀏覽量

    253241
  • 單片機
    +關(guān)注

    關(guān)注

    6077

    文章

    45517

    瀏覽量

    671827
  • 電平
    +關(guān)注

    關(guān)注

    5

    文章

    372

    瀏覽量

    41698

原文標(biāo)題:單片機中斷電平觸發(fā)和脈沖輸入

文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

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

    ADSP-21593/21594/ADSP-SC592/SC594處理器:高性能與多功能的完美融合

    ADSP-21593/21594/ADSP-SC592/SC594處理器:高性能與多功能的完美融合 在當(dāng)今的電子設(shè)計領(lǐng)域,對于高性能、多功能處理器的需求日益增長。ADSP-21593/21594
    的頭像 發(fā)表于 03-23 16:50 ?481次閱讀

    高性能音頻處理利器:ADSP - 21477/ADSP - 21478/ADSP - 21479處理器深度解析

    高性能音頻處理利器:ADSP - 21477/ADSP - 21478/ADSP - 21479處理器深度解析 在當(dāng)今的電子技術(shù)領(lǐng)域,高性能音頻處理一直是一個備受關(guān)注的方向。而ADI公司的ADSP
    的頭像 發(fā)表于 03-23 16:45 ?484次閱讀

    Cortex-M0Cortex-M0+的區(qū)別

    咱們芯源MCU主要是Cortex-M0+處理器,那么Cortex-M0+比Cortex-M0處理器強在哪里呢?下面針對2者的關(guān)鍵特性對比進行
    發(fā)表于 01-22 06:23

    Cortex-M0 處理器介紹

    功耗的32位處理器。 Cortex-M0Cortex-M家族中的M0系列。最大特點是低功耗的設(shè)計。Cortex-M0為32位、3級流水線R
    發(fā)表于 01-16 08:04

    Cortex-M0+處理器的HardFault錯誤介紹

    在ARM處理器中,如果一個程序產(chǎn)生了錯誤并且被處理器檢測到,就會產(chǎn)生錯誤異常。Cortex-M0+處理器只有一種異常用以處理錯誤:HardF
    的頭像 發(fā)表于 10-14 10:50 ?3455次閱讀
    <b class='flag-5'>Cortex-M0</b>+<b class='flag-5'>處理器</b>的HardFault錯誤介紹

    在NuMicro? Cortex-M0? 系列中,每個I/O可以承受多少電流吸收和源電流呢?

    在 NuMicro? Cortex-M0? 系列中,每個 I/O 可以承受多少電流吸收和源電流?
    發(fā)表于 08-27 15:25

    請問NuMicro? Cortex-M0/M4系列可以提供哪些USB器件示例代碼?

    NuMicro? Cortex-M0/M4系列可以提供哪些USB器件示例代碼?
    發(fā)表于 08-19 07:05

    基于RK3576處理器,EASY EAI Orin Nano開發(fā)板免費試用

    EASY EAI Orin Nano是廣州靈眸科技有限公司的旗艦級硬件產(chǎn)品。基于瑞芯微的RK3576處理器設(shè)計,集成了4個Cortex-A72和4個Cortex-A53及支持NEON指令集,支持
    的頭像 發(fā)表于 06-09 15:01 ?1497次閱讀
    基于RK3576<b class='flag-5'>處理器</b>,EASY EAI Orin Nano開發(fā)板免費試用

    國民技術(shù)能否開展一個M7處理器的試用活動。

    國民技術(shù)最近推出了M7處理器,看起來能力很強,電子發(fā)燒友能不能聯(lián)合國民技術(shù)開展一個M7使用的活動,讓大家了解下M7核的國民技術(shù)。
    發(fā)表于 05-20 22:04

    MAX32662 Arm Cortex-M4處理器,集成帶256KB閃存和80KB SRAM的FPU微控制(MCU)技術(shù)手冊

    -M4處理器相結(jié)合,采用小尺寸封裝。 MAX32662支持基于邊緣的復(fù)雜設(shè)計,且不影響電池壽命,它還為傳統(tǒng)設(shè)計提供簡單的低成本升級(從8位或16位微控制進行升級)。
    的頭像 發(fā)表于 05-08 10:09 ?1231次閱讀
    MAX32662 Arm <b class='flag-5'>Cortex-M</b>4<b class='flag-5'>處理器</b>,集成帶256KB閃存和80KB SRAM的FPU微控制<b class='flag-5'>器</b>(MCU)技術(shù)手冊

    國產(chǎn)!瑞芯微RK3506 3核ARM+Cortex-A7 + ARM Cortex-M0 工業(yè)評估板說明書

    創(chuàng)龍科技TL3506-EVM是一款基于瑞芯微RK3506J/RK3506B處理器設(shè)計的3核ARM Cortex-A7 + ARM Cortex-M0國產(chǎn)工業(yè)評估板,主頻高達1.5GHz。評估板由
    的頭像 發(fā)表于 04-29 15:42 ?3095次閱讀
    國產(chǎn)!瑞芯微RK3506 3核ARM+<b class='flag-5'>Cortex</b>-A7 + ARM <b class='flag-5'>Cortex-M0</b> 工業(yè)評估板說明書

    MSPM0G1505 80MHz Arm? Cortex-M0?+ MCU數(shù)據(jù)手冊

    MSPM0G150x 微控制 (MCU) 是 MSP 高度集成、超低功耗 32 位 MCU 系列的一部分,該系列基于增強型 Arm Cortex-M0+ 32 位內(nèi)核平臺,運行頻率高達 80MHz
    的頭像 發(fā)表于 04-15 14:08 ?1353次閱讀
    MSPM<b class='flag-5'>0</b>G1505 80MHz Arm? <b class='flag-5'>Cortex-M0</b>?+ MCU數(shù)據(jù)手冊

    MSPM0G3106 80MHz Arm? Cortex-M0?+ MCU數(shù)據(jù)手冊

    MSPM0G310x 微控制 (MCU) 是 MSP 高度集成、超低功耗 32 位 MCU 系列的一部分,基于增強型 Arm Cortex-M0+ 32 位內(nèi)核平臺,運行頻率高達 80MHz。這些
    的頭像 發(fā)表于 04-15 11:44 ?1262次閱讀
    MSPM<b class='flag-5'>0</b>G3106 80MHz Arm? <b class='flag-5'>Cortex-M0</b>?+ MCU數(shù)據(jù)手冊

    MSPM0C1103 24MHz Arm? Cortex-M0?+ MCU數(shù)據(jù)手冊

    MSPM0C110x 微控制 (MCU) 是 MSP 高度集成的超低功耗 32 位 MCU 系列的一部分,基于增強型 Arm Cortex-M0+ 內(nèi)核平臺,運行頻率高達 24MHz。這些成本優(yōu)化
    的頭像 發(fā)表于 04-15 09:39 ?1507次閱讀
    MSPM<b class='flag-5'>0</b>C1103 24MHz Arm? <b class='flag-5'>Cortex-M0</b>?+ MCU數(shù)據(jù)手冊

    瑞芯微RK3506(3核ARM+Cortex-A7 + ARM Cortex-M0)工業(yè)核心板選型資料

    創(chuàng)龍科技SOM-TL3506是一款基于瑞芯微RK3506J/RK3506B處理器設(shè)計的3核ARM Cortex-A7 + ARM Cortex-M0全國產(chǎn)工業(yè)核心板,主頻高達1.5GHz。核心板CPU、ROM、RAM、電源、晶振
    的頭像 發(fā)表于 04-09 09:04 ?3762次閱讀
    瑞芯微RK3506(3核ARM+<b class='flag-5'>Cortex</b>-A7 + ARM <b class='flag-5'>Cortex-M0</b>)工業(yè)核心板選型資料