AVR單片機在同一個優先級中,中斷向量入口地址越低,其優先級越高。AVR單片機在響應中斷以后,會禁止系統響應其余中斷。如果程序需要在某個中斷服務程序中響應其它中斷事件,可以在該中斷服務程序中用SEI指令或_SEI()(IAR)、 SEI()(ICCAVR)重新使能全局中斷即可。否則,AVR單片機只有在退出中斷進程時,才重新使能全局中斷。
AVR(至少是ATmega16)單片機采用固定的硬件優先級方式,不支持通過軟件對中斷優先級重新設定。
AVR有不同的中斷源。每個中斷和復位在程序空間都有獨立的中斷向量。所有的中斷事件都有自己的使能位。當使能位置位,且狀態寄存器的全局中斷使能位I 也置位時,中斷可以發生。根據程序計數器PC 的不同,在引導鎖定位BLB02 或BLB12 被編程的情況下,中斷可能被自動禁止。這個特性提高了軟件的安全性。詳見 P247“ 存儲器編程” 的描述。
程序存儲區的最低地址缺省為復位向量和中斷向量。完整的向量列表請參見 P43“中斷”。列表也決定了不同中斷的優先級。向量所在的地址越低,優先級越高。RESET 具有最高的優先級,第二個為INT0 – 外部中斷請求0。通過置位MCU 控制寄存器 (MCUCR) 的IVSEL,中斷向量可以移至引導Flash的起始處。編程熔絲位BOOTRST也可以將復位向量移至引導Flash的起始處。具體參見P234“支持引導裝入程序 – 在寫的同時可以讀(RWW,Read-While-Write) 的自我編程能力”。
任一中斷發生時全局中斷使能位I 被清零,從而禁止了所有其他的中斷。用戶軟件可以在中斷程序里置位I 來實現中斷嵌套。此時所有的中斷都可以中斷當前的中斷服務程序。執行RETI 指令后I 自動置位。
從根本上說有兩種類型的中斷。第一種由事件觸發并置位中斷標志。對于這些中斷,程序計數器跳轉到實際的中斷向量以執行中斷處理程序,同時硬件將清除相應的中斷標志。中斷標志也可以通過對其寫”1” 的方式來清除。當中斷發生后,如果相應的中斷使能位為“0”,則中斷標志位置位,并一直保持到中斷執行,或者被軟件清除。類似的,如果全局中斷標志被清零,則所有已發生的中斷都不會被執行,直到I 置位。然后掛起的各個中斷按中斷優先級依次執行。
第二種類型的中斷則是只要中斷條件滿足,就會一直觸發。這些中斷不需要中斷標志。若中斷條件在中斷使能之前就消失了,中斷不會被觸發。
AVR 退出中斷后總是回到主程序并至少執行一條指令才可以去執行其他被掛起的中斷。要注意的是,進入中斷服務程序時狀態寄存器不會自動保存,中斷返回時也不會自動恢復。這些工作必須由用戶通過軟件來完成。
使用CLI 指令來禁止中斷時,中斷禁止立即生效。沒有中斷可以在執行CLI 指令后發生,即使它是在執行CLI 指令的同時發生的。
上一篇:AVR單片機的EEPROM讀寫分析
下一篇:基于tinyAVR和Nokia3310 LCD的溫度繪圖儀
推薦閱讀
史海拾趣
對于27MHz晶體振蕩器電路,網友可能會提出多種問題,以下是一些常見問題及其詳細回答:
一、電路設計相關問題
- 如何設計一個簡單的27MHz晶體振蕩器電路?
- 回答:設計一個簡單的27MHz晶體振蕩器電路通常包括晶體本身、兩個反饋電容、一個或多個電阻以及可能的放大元件(如晶體管或集成電路中的振蕩器部分)。例如,可以使用一個并聯型晶體振蕩器電路,其中晶體與兩個電容形成諧振電路,并通過一個放大元件(如CMOS反相器)提供正反饋以維持振蕩。具體設計可參考技術資料(如華強電子網)提供的電路圖,并根據實際需要進行調整。
- 如何選擇合適的反饋電容和電阻值?
- 回答:反饋電容和電阻的選擇對振蕩器的穩定性和頻率精度至關重要。電容值通常根據晶體的規格和所需的振蕩頻率來確定,而電阻值則用于限制放大器的增益,以防止振蕩器過度放大并產生不穩定現象。選擇時,建議參考晶體振蕩器的數據手冊或相關設計指南,并結合實驗測試來找到最佳值。
二、電路性能相關問題
- 如何減少27MHz晶體振蕩器的諧波失真?
- 回答:諧波失真通常是由于電路中的非線性元件或設計不當引起的。為了減少諧波失真,可以采取以下措施:
- 選擇低諧波失真的晶體振蕩器。
- 在電路中添加低通濾波器以濾除高頻諧波。
- 優化電路設計,減少非線性元件的使用,并確保電路元件的匹配性。
- 回答:諧波失真通常是由于電路中的非線性元件或設計不當引起的。為了減少諧波失真,可以采取以下措施:
- 如何提高27MHz晶體振蕩器的頻率穩定性?
- 回答:頻率穩定性受多種因素影響,包括晶體的物理特性、環境溫度、電源電壓波動等。提高頻率穩定性的方法包括:
- 選擇高質量的晶體振蕩器,確保其具有較低的頻率漂移和溫度系數。
- 在電路中添加溫度補償電路,以抵消溫度變化對頻率的影響。
- 使用穩定的電源電壓,并在必要時添加電壓穩壓器。
- 優化電路布局和接地設計,減少電磁干擾和噪聲。
- 回答:頻率穩定性受多種因素影響,包括晶體的物理特性、環境溫度、電源電壓波動等。提高頻率穩定性的方法包括:
三、電路調試與測試相關問題
- 如何調試27MHz晶體振蕩器電路以確保其正常工作?
- 回答:調試晶體振蕩器電路時,可以按照以下步驟進行:
- 檢查電路連接是否正確,確保所有元件都已正確安裝。
- 使用示波器觀察振蕩波形,確認其頻率和幅度是否符合要求。
- 調整反饋電容和電阻值,以優化振蕩器的性能和穩定性。
- 檢查電源電壓和電流是否穩定,并調整至推薦值。
- 如果發現諧波失真或其他問題,根據具體情況采取相應的解決措施。
- 回答:調試晶體振蕩器電路時,可以按照以下步驟進行:
- 如何測試27MHz晶體振蕩器的輸出頻率和相位噪聲?
- 回答:測試晶體振蕩器的輸出頻率和相位噪聲通常需要使用專業的測試設備,如頻率計和相位噪聲分析儀。測試時,將振蕩器的輸出連接到測試設備的輸入端,并設置適當的測試參數。通過測試設備可以準確測量振蕩器的輸出頻率和相位噪聲水平,從而評估其性能是否符合要求。
四、其他常見問題
- 27MHz晶體振蕩器適用于哪些應用場景?
- 回答:27MHz晶體振蕩器由于其較高的頻率和較好的穩定性,廣泛應用于無線通信、雷達系統、電子測量儀器等領域。在這些應用場景中,晶體振蕩器作為時鐘源或頻率基準,為系統提供穩定的頻率信號。
- 如何延長27MHz晶體振蕩器的使用壽命?
- 回答:延長晶體振蕩器的使用壽命需要注意以下幾點:
- 避免在極端溫度或濕度條件下使用。
- 保持電源電壓穩定,避免頻繁波動。
- 定期檢查電路連接和元件狀態,及時更換損壞的元件。
- 避免機械沖擊和振動對晶體振蕩器的影響。
- 選擇質量可靠、性能穩定的晶體振蕩器產品。
- 回答:延長晶體振蕩器的使用壽命需要注意以下幾點:
隨著公司規模的擴大,Baton Lock意識到單一市場已無法滿足其增長需求。于是,公司開始在全球范圍內尋找合作伙伴和設立生產基地。通過在歐洲、亞洲等地建立分支機構,Baton Lock成功打開了多個新市場,進一步提升了其品牌影響力。
HSMC的發展離不開巨額的資金投入。公司項目總投資額達到約200億美元(另一說法為1280億元人民幣),這一龐大的投資規模使得HSMC能夠迅速構建起先進的生產設施。項目規劃包括建設14納米及7納米以下節點的邏輯工藝生產線,以及晶圓級先進封裝生產線。這些生產線預計月產能可達數萬片,為市場提供高質量的芯片產品。
柯愛亞一直秉承“持續改進,滿足客戶要求,不斷創新,超越客戶期望”的品質方針。公司嚴格把控產品質量,從原材料采購到生產流程,再到產品檢測,每一個環節都力求精益求精。這種對品質的堅持贏得了客戶的信任,柯愛亞的產品逐漸在市場上樹立了良好的口碑。
在國內市場取得一定成績后,Calex Mfg. Co., Inc.開始積極拓展海外市場。公司制定了全球化戰略,通過參加國際展會、建立海外銷售網絡等方式,不斷開拓國際市場。同時,公司還根據不同地區的市場需求,推出定制化的產品和服務,進一步提升了其在國際市場中的競爭力。
Doodle Labs非常重視企業文化的建設和發展。公司倡導開放、創新、協作、共贏的價值觀,為員工提供良好的工作環境和發展機會。同時,Doodle Labs還積極參與公益事業和社會活動,為社會做出貢獻。在未來,Doodle Labs將繼續秉承這些價值觀和精神,致力于成為全球領先的無線通信技術提供商和物聯網解決方案提供商。
STC89S52和AT89S52功能一樣嗎?STC89S52可以替換AT89S52嗎? 我認為應該是可以的 但是我的認為和實際卻相悖! 我有個學習板,上面支持STC的串口下載和支持AT的usb下載 我自己搭了一個電路,晶振用3.5M的。 我通過學習板把hex文件下載到STC單片 ...… 查看全部問答∨ |
|
最近有部分用戶咨詢:為何編譯程序沒有問題,可是燒錄不進去,或者燒錄成功了無法運行 需要注意的問題: 1,CMD:F2812與別的器件不同,在調試過程中使用的一般是對于SRAM的定義,編譯一個SRAM.CMD,所以調試的時候沒有問題,但是燒寫FLASH的時候 ...… 查看全部問答∨ |
我剛開始學習51單片機,在用Keil軟件進行單步調試時,出現的是匯編語言界面,在C程序上不能添加斷點,只能在匯編界面上加斷點,但看郭天祥的視頻是可以在C程序上直接添加斷點的,請問這種情況該如何解決,非常感謝~… 查看全部問答∨ |
顯示U盤圖像這個例程在軟件包的 LTDC_AnimatedPictureFromUSB子目錄 下。當然,還準備OTG-USB線,帶有符合格式的圖像的 U盤。 先有根OTG-USB線,象這樣的: 我買的這根也不太貴,只是想能用就行。 在例程的Media子目錄下有一些圖像,拷貝到U ...… 查看全部問答∨ |
|
用proteus給msp430仿真是沒回都出現這問題,請問是咋回事,不論是進行什么實驗 本帖最后由 你儂我儂 于 2014-5-9 08:53 編輯 C:\\Users\\Lenovo\\Desktop… 查看全部問答∨ |
本帖最后由 季夏木槿 于 2014-7-28 23:29 編輯 我DIY的手機終于要完工了。。。 最開始,由于缺少部分硬件,于是我先把顯示界面和主菜單寫好了 &nb ...… 查看全部問答∨ |
設計資源 培訓 開發板 精華推薦
- Solid Sands 推出用于SuperGuard C 庫安全驗證套件
- ROHM開設支持汽車“功能安全”設計的特設網頁
- 健康App推出三項新功能 watchOS 8增新監測運動
- 蘋果推出Object Capture 新API 可把iPhone視頻內容轉換為3D模型
- 堅守iOS14 蘋果將允許用戶自由選擇是否升級為iOS15
- 毛利下滑折舊費上升,藍思科技前三季度凈利為何還增長19%
- 自動駕駛時代已來!Waymo無人車投入商用 正在測試定價模型
- 維信諾預計今年虧損4億至5億,同比變動-3361%至-2709%
- 沒被高通收購,恩智浦納入美國納思達克100指數
- 深天馬A并表虧損公司拖累業績 第三季度凈利下滑超3成