資料介紹
描述
用戶指南可以從 GitHub 下載:
概述
Arduino 微控制器的規格和功能多種多樣。但該系列的共同點是,這些微控制器提供了一種在外部事件發生時對其進行處理的方法,這是通過使用中斷來實現的。外部事件可以是任何東西。例如,PIR 的激活、開關狀態的改變等。
Arduino 開發環境和軟件庫提供了一種方法來設計和定義最終用戶代碼例程(中斷服務例程 (ISR)),只要發生外部中斷,就可以調用這些例程。當觸發外部中斷時,微控制器將停止正在運行的最終用戶代碼的操作,并將控制權傳遞給關聯的 ISR,該 ISR 已被定義為最終用戶應用程序的一部分。
如果需要一個解決方案來處理多個外部中斷,那么每個中斷都需要定義一個特定的 ISR 來處理相關的觸發事件 - 需要設計 ISR 來處理特定和單獨的要求。此外,ISR 可能會受到虛假觸發的影響,例如“臟”切換。這通常被稱為“反彈”,是 ISR 設計需要解決的問題。因此,挑戰在于設計解決方案,將中斷處理作為整體解決方案的一部分,識別中斷的各種設置要求以處理此類外部事件。
支持的外部中斷數量取決于特定的 Arduino 微控制器。因此,為項目選擇微控制器將受到最終用戶解決方案所需的外部中斷數量的影響。
該框架提供了一個“容器”,可以對其進行配置以滿足外部中斷的任何特定設置要求,并且可以輕松地將最終用戶代碼添加到該容器中。
該方法將允許按優先級順序處理外部中斷(同時觸發時和實時),但在主處理代碼指示的時間(異步)。也就是說,該方法允許捕獲外部中斷,如觸發,但在其相關的中斷服務例程 (ISR) 之外進行操作。
該解決方案是圍繞 ARDUINO MEGA 2560 微控制器開發的,但可以針對任何數量的外部中斷直接針對任何板進行修改,直至特定微控制器和此框架設置的最大限制。
MEGA 2560 支持多達六個外部中斷,這些外部中斷可供最終用戶開發人員輕松訪問,并映射到數字輸入引腳。然而,該方法很容易擴展以同時使用一個、兩個、三個、...或所有六個外部中斷,使其成為需要多個外部中斷進程和處理的解決方案基礎的理想框架。對于支持超過六個中斷的微控制器,需要對底層框架進行擴展。但是,對于可能開發的大多數應用程序,認為六個中斷的限制不應成為限制因素。如果需要更多,則可以通過增加通用 ISR 和相關數據支持結構的數量來擴展該方法。
異步處理是通過通用中斷處理程序的設計和實現實現的,并由中斷隊列管理概念支持,該概念提供了將中斷事件與其最終處理分開的方法。
當一個外部中斷被觸發時,它會在 setup() 過程中被映射和建立指定的(通用)ISR。然后,ISR 只會將中斷事件插入中斷隊列,此時不會進行進一步的處理。然而,為了避免虛假/臟中斷的“反彈”,每個 ISR 都包含一個去抖動機制,該機制可以通過配置參數進行更改。必要時,可以為每個映射的外部中斷定義不同的中斷“反彈”值,以反映觸發電路的“清潔度”。
如果同時觸發多個外部中斷,則 ARDUINO 微控制器將按照微控制器規范確定的定義優先級順序“觸發”它們各自的 ISR。
中斷隊列以先進先出 (FIFO) 為基礎進行操作和管理。因此,該方法保留了在現實世界中觸發外部中斷的順序。
然而,如預期的那樣,異步中斷處理這樣的方法確實會帶來一些開銷。該方法不適用于具有絕對和關鍵處理需求的應用,其中時序約束至關重要;這是一種適用于許多非關鍵解決方案的方法。
設計要求(目標)
在設計這個框架時,設定了許多目標,這些目標是為外部中斷處理提供一個解決方案:
- 將發生的外部中斷事件與其發生的處理分離,為上層的最終用戶應用程序代碼提供自由和控制。也就是說,一種解決方案將提供獨立于“捕獲”接收到的中斷及其最終處理的處理
- 無需大量修改即可“插入”的容器
- 可擴展,提供處理多個外部中斷的框架
- 對每個可能的外部中斷都是高度可配置的。例如,如果需要,需要對每個中斷進行不同的配置
- 可以在繼續處理之前支持唯一或非唯一外部中斷事件捕獲/記錄
- 考慮到虛假中斷。也就是說,為“臟”切換提供去抖。
該框架的功能主要如上所述。然而,一個有趣的特性是它能夠允許外部中斷是“唯一的”或“非唯一的”。這里不再贅述這個特性,而是將那些對框架感興趣的人參考用戶指南,在那里可以找到更完整的描述(參見用戶指南,外部中斷的可擴展異步處理)。
- AN014GD32微控制器在Arduino中的應用
- 我自己的Arduino Nano微控制器板
- 兆易創新AN014 GD32微控制器在Arduino中的應用
- 用于Arduino微控制器的多路交流輸入板
- Arduino NANO v3.3微控制器
- STM32 外部中斷/事件控制器EXTI
- Arduino 外部中斷
- Arduino中斷學習
- Arduino Uno微控制器采用的是Atmel的ATmega328
- 使用Arduino為微控制器打造能用舵機控制的游戲平臺 14次下載
- 基于TMSX70微控制器的ECC處理 6次下載
- PSoC 1 使用外部微控制器對 PSoC? 1 器件編程 (HSSP)-AN44168 7次下載
- HCS12微控制器原理及應用_王威 0次下載
- 基于STR7 ARM微控制器的IRQ中斷防御體系
- LM3S系列微控制器中斷優先級應用筆記
- 微控制器與運動控制器的區別 377次閱讀
- 微控制器的定義和工作原理 1084次閱讀
- 嵌入式微處理器與嵌入式微控制器的區別 1072次閱讀
- stm32中斷怎么處理的 2150次閱讀
- 為MAXQ2000微控制器實現JTAG自舉加載程序主控 984次閱讀
- MAXQ微控制器中斷編程 586次閱讀
- dfrobotDFRduino Pro Mini控制器簡介 2023次閱讀
- dfrobotDFRduino Pro MiniV1.3控制器簡介 1269次閱讀
- 基于STM32微控制器的物聯網節點設計 3227次閱讀
- 微控制器的定義以及微控制器在一個產品設計中的主要用途 5646次閱讀
- 微控制器的相關知識介紹(含義、編程語言) 5138次閱讀
- PCI總線的中斷信號與中斷控制器的連接關系 6399次閱讀
- 微控制器原理及應用 1.4w次閱讀
- 微處理器與微控制器的區別 6571次閱讀
- 《振南電子STM32視頻教程》第一講:ARM處理器和STM32微控制器 2187次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多