電子發(fā)燒友App

硬聲App

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

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>ARDUINO微控制器外部中斷處理

ARDUINO微控制器外部中斷處理

2022-10-27 | zip | 0.03 MB | 次下載 | 2積分

資料介紹

描述

用戶(hù)指南可以從 GitHub 下載

用戶(hù)指南,外部中斷的可擴(kuò)展異步處理。

概述

Arduino 微控制器規(guī)格和功能多種多樣。但該系列的共同點(diǎn)是,這些微控制器提供了一種在外部事件發(fā)生時(shí)對(duì)其進(jìn)行處理的方法,這是通過(guò)使用中斷來(lái)實(shí)現(xiàn)的。外部事件可以是任何東西。例如,PIR 的激活、開(kāi)關(guān)狀態(tài)的改變等。

Arduino 開(kāi)發(fā)環(huán)境和軟件庫(kù)提供了一種方法來(lái)設(shè)計(jì)和定義最終用戶(hù)代碼例程(中斷服務(wù)例程 (ISR)),只要發(fā)生外部中斷,就可以調(diào)用這些例程。當(dāng)觸發(fā)外部中斷時(shí),微控制器將停止正在運(yùn)行的最終用戶(hù)代碼的操作,并將控制權(quán)傳遞給關(guān)聯(lián)的 ISR,該 ISR 已被定義為最終用戶(hù)應(yīng)用程序的一部分。

如果需要一個(gè)解決方案來(lái)處理多個(gè)外部中斷,那么每個(gè)中斷都需要定義一個(gè)特定的 ISR 來(lái)處理相關(guān)的觸發(fā)事件 - 需要設(shè)計(jì) ISR 來(lái)處理特定和單獨(dú)的要求。此外,ISR 可能會(huì)受到虛假觸發(fā)的影響,例如“臟”切換。這通常被稱(chēng)為“反彈”,是 ISR 設(shè)計(jì)需要解決的問(wèn)題。因此,挑戰(zhàn)在于設(shè)計(jì)解決方案,將中斷處理作為整體解決方案的一部分,識(shí)別中斷的各種設(shè)置要求以處理此類(lèi)外部事件。

支持的外部中斷數(shù)量取決于特定的 Arduino 微控制器。因此,為項(xiàng)目選擇微控制器將受到最終用戶(hù)解決方案所需的外部中斷數(shù)量的影響。

該框架提供了一個(gè)“容器”,可以對(duì)其進(jìn)行配置以滿(mǎn)足外部中斷的任何特定設(shè)置要求,并且可以輕松地將最終用戶(hù)代碼添加到該容器中。

該方法將允許按優(yōu)先級(jí)順序處理外部中斷(同時(shí)觸發(fā)時(shí)和實(shí)時(shí)),但在主處理代碼指示的時(shí)間(異步)。也就是說(shuō),該方法允許捕獲外部中斷,如觸發(fā),但在其相關(guān)的中斷服務(wù)例程 (ISR) 之外進(jìn)行操作。

該解決方案是圍繞 ARDUINO MEGA 2560 微控制器開(kāi)發(fā)的,但可以針對(duì)任何數(shù)量的外部中斷直接針對(duì)任何板進(jìn)行修改,直至特定微控制器和此框架設(shè)置的最大限制。

MEGA 2560 支持多達(dá)六個(gè)外部中斷,這些外部中斷可供最終用戶(hù)開(kāi)發(fā)人員輕松訪問(wèn),并映射到數(shù)字輸入引腳。然而,該方法很容易擴(kuò)展以同時(shí)使用一個(gè)、兩個(gè)、三個(gè)、...或所有六個(gè)外部中斷,使其成為需要多個(gè)外部中斷進(jìn)程和處理的解決方案基礎(chǔ)的理想框架。對(duì)于支持超過(guò)六個(gè)中斷的微控制器,需要對(duì)底層框架進(jìn)行擴(kuò)展。但是,對(duì)于可能開(kāi)發(fā)的大多數(shù)應(yīng)用程序,認(rèn)為六個(gè)中斷的限制不應(yīng)成為限制因素。如果需要更多,則可以通過(guò)增加通用 ISR 和相關(guān)數(shù)據(jù)支持結(jié)構(gòu)的數(shù)量來(lái)擴(kuò)展該方法。

異步處理是通過(guò)通用中斷處理程序的設(shè)計(jì)和實(shí)現(xiàn)實(shí)現(xiàn)的,并由中斷隊(duì)列管理概念支持,該概念提供了將中斷事件與其最終處理分開(kāi)的方法。

當(dāng)一個(gè)外部中斷被觸發(fā)時(shí),它會(huì)在 setup() 過(guò)程中被映射和建立指定的(通用)ISR。然后,ISR 只會(huì)將中斷事件插入中斷隊(duì)列,此時(shí)不會(huì)進(jìn)行進(jìn)一步的處理。然而,為了避免虛假/臟中斷的“反彈”,每個(gè) ISR 都包含一個(gè)去抖動(dòng)機(jī)制,該機(jī)制可以通過(guò)配置參數(shù)進(jìn)行更改。必要時(shí),可以為每個(gè)映射的外部中斷定義不同的中斷“反彈”值,以反映觸發(fā)電路的“清潔度”。

如果同時(shí)觸發(fā)多個(gè)外部中斷,則 ARDUINO 微控制器將按照微控制器規(guī)范確定的定義優(yōu)先級(jí)順序“觸發(fā)”它們各自的 ISR。

中斷隊(duì)列以先進(jìn)先出 (FIFO) 為基礎(chǔ)進(jìn)行操作和管理。因此,該方法保留了在現(xiàn)實(shí)世界中觸發(fā)外部中斷的順序。

然而,如預(yù)期的那樣,異步中斷處理這樣的方法確實(shí)會(huì)帶來(lái)一些開(kāi)銷(xiāo)。該方法不適用于具有絕對(duì)和關(guān)鍵處理需求的應(yīng)用,其中時(shí)序約束至關(guān)重要;這是一種適用于許多非關(guān)鍵解決方案的方法。

設(shè)計(jì)要求(目標(biāo))

在設(shè)計(jì)這個(gè)框架時(shí),設(shè)定了許多目標(biāo),這些目標(biāo)是為外部中斷處理提供一個(gè)解決方案:

  • 將發(fā)生的外部中斷事件與其發(fā)生的處理分離,為上層的最終用戶(hù)應(yīng)用程序代碼提供自由和控制。也就是說(shuō),一種解決方案將提供獨(dú)立于“捕獲”接收到的中斷及其最終處理的處理
  • 無(wú)需大量修改即可“插入”的容器
  • 可擴(kuò)展,提供處理多個(gè)外部中斷的框架
  • 對(duì)每個(gè)可能的外部中斷都是高度可配置的。例如,如果需要,需要對(duì)每個(gè)中斷進(jìn)行不同的配置
  • 可以在繼續(xù)處理之前支持唯一或非唯一外部中斷事件捕獲/記錄
  • 考慮到虛假中斷。也就是說(shuō),為“臟”切換提供去抖。

該框架的功能主要如上所述。然而,一個(gè)有趣的特性是它能夠允許外部中斷是“唯一的”或“非唯一的”。這里不再贅述這個(gè)特性,而是將那些對(duì)框架感興趣的人參考用戶(hù)指南,在那里可以找到更完整的描述(參見(jiàn)用戶(hù)指南,外部中斷的可擴(kuò)展異步處理)。


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評(píng)估板參考手冊(cè)
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開(kāi)發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊(cè)
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)