国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

【轉載】AVR中斷應用設計要點

發布時間:2009-8-29 23:55    發布者:原野之狼
關鍵詞: AVR , 中斷
AVR的中斷源比較多,尤其是ATmega128,一共有35個外部以及內部中斷源。通常情況下,Flash程序存儲器空間的最低位置(0x0000-0x0045)定義為復位和中斷向量空間。完整的中斷向量見第二章表2-23。在中斷向量表中,處于低地址的中斷向量所對應的中斷擁有高優先級,所以,系統復位RESET擁有最高優先級。
http://images.51.com/a/200609/e0/e4/vickyguan888/d4d8a78b82d53db8c723e2b346e83b3f.gif

A.中斷設計注意點:
1.具備Bootloader功能的AVR,其中斷向量區可以在Flash程序存儲器空間最低位置和Bootloader區的頭部來回遷移,這主要用于配合Bootloader程序的應用。如果不使用Bootloader功能,一般不要中斷向量區進行遷移。

2.Flash較小的AVR芯片,其一個中斷向量占據1個字的空間,用于放置一條相對轉移RJMP指令(范圍-2K~+2K字),跳到中斷服務程序。對于不使用的中斷,在中斷向量區中應放置1條中斷返回指令RETI,增強程序的抗干擾性。

3.ATmega128的Flash空間為64K字節,因此它的一個中斷向量占據2個字的空間,用于放置一條絕對轉移JMP指令(指令長度為2個字),跳到中斷服務程序。對于不使用的中斷,在中斷向量區中應連續放置2條中斷返回指令RETI,增強程序的抗干擾性。當使用匯編語言編寫系統程序時應注意。

4.當MCU響應一個中斷時,其硬件系統會自動中斷返回地址壓入系統堆棧,并將關閉全局中斷響應(硬件將中斷標志I位清0),清除該中斷的中斷標志位;執行中斷返回指令RETI時,硬件會先允許全局中斷響應(硬件將中斷標志I位置1),然后從系統堆棧中彈出返回地址到PC程序計數器中,繼續執行被中斷打斷的程序。除此之外,MCU的硬件沒有對中斷保護做其他處理。

5.因此,用戶在編寫中斷服務程序時,首先要編寫中斷現場保護程序,如保護MCU的狀態寄存器等。在中斷返回之前,不要忘記恢復中斷現場。

6.如果設置和允許外部中斷響應,即使是外部INT0..7引腳設置為輸出方式,在引腳上的電平變化也會觸發外部中斷的發生,這一特性提供了使用軟件產生中斷的途徑。

7.外部中斷可選擇采用上升沿觸發、下降沿觸發以及電平變化(由高變低或由低變高)和低電平觸發等方式,無外部高電平觸發方式。具體觸發方式由外部中斷控制寄存器EICRA(INT3:0)和EICRB(INT7:4)決定。

8.如果選擇外部低電平方式觸發中斷時應特別注意:(1)引腳上的低電平必須一直保持到當前一條指令執行完成后才能觸發中斷;(2)低電平中斷并不置位中斷標志位,即外部低電平中斷的觸發不是由于中斷標志位引起的,而是外部引腳上電平取反后直接觸發中斷(當然需要開放全局中斷允許)。因此,在使用低電平觸發方式時,中斷請求將一直保持到引腳上的低電平消失為止。喚句話說,只要中斷引腳的輸入引腳保持低電平,那么將一直觸發產生中斷。所以,在低電平中斷服務程序中,應有相應的操作命令,控制外部器件釋放或取消加在外部引腳上的低電平。

B.中斷優先級以及中斷嵌套處理

1.AVR中斷的優先級由該中斷向量在中斷向量區中的位置確定,處于低地址的中斷向量所對應的中斷擁有高優先級,所以,系統復位RESET擁有最高優先級。

2.當兩個中斷同時發生申請中斷時,MCU先響應中斷優先級高的中斷。低優先級的中斷一般將保持中斷標志位的狀態(外部低電平中斷除外),等待MCU響應處理。

3.MCU響應一個中斷后,在進入中斷服務前已由硬件自動清零全局中斷允許位。因此此時即使有更高優先級的中斷請求發生,MCU也會不響應,要等執行到RETI指令,從本次中斷返回,并執行了一條指令后,才能繼續響應中斷。所以,在缺省情況下,AVR的中斷不能嵌套。AVR中斷的優先級只是在有多個中斷同時發生時才起作用,此時MCU將首先響應高優先級的中斷。

4.AVR中斷嵌套處理是通過軟件方式實現的。如在B中斷服務中,如需要MCU能及時的響應A中斷(不是等本次中斷返回后再響應),B中斷的服務程序應這樣設計:(1)B中斷的現場保護;(2)屏蔽除A以外其它的中斷允許標志;(3)用指令SEI開放允許全局中斷;(4)B中斷服務;(5)用指令CLI禁止全局中斷(6)恢復在本中斷程序被屏蔽的中斷允許標志;(7)B中斷現場恢復;(8)B中斷返回。

5.采用軟件方式實現中斷嵌套處理的優點,是能夠讓程序員可以根據不同的實際情況和需要來決定中斷的重要性,有更加靈活的手段處理中斷響應和中斷嵌套,如讓低優先級的中斷(此時很重要)打斷高優先級中斷的服務等,但同時也增加了編寫中斷服務程序的復雜性。

6.由于AVR的指令執行速度比較高,因此在一般情況下,不建議使用中斷嵌套的處理方法。當然,這還需要用戶在編寫中斷處理服務程序中,應遵循中斷服務程序盡量要短的原則。

C.高級語言開發環境中中斷服務程序的編寫

1.在高級語言開發環境中,都擴展和提供了相應編寫中斷服務程序的方法,但不同高級語言開發環境中對編寫中斷服務程序的語法規則和處理方法是不同的。用戶在編寫中斷服務程序前,應對所使用開發平臺,中斷程序的編寫方法,中斷的處理方法等有較好的了解。

2.使用ICCAVR、CVAVR、BASCOM-AVR等高級語言編寫中斷服務程序時,通常不必考慮中斷現場保護和恢復的處理,因為編譯器在編譯中斷服務程序的源代碼時,會在生成的目標代碼中自動加入相應的中斷現場保護和恢復的指令。

3.如果用戶要編寫效率更高或特殊的中斷服務程序,可以采用嵌入匯編、關閉編譯系統的自動產生中斷現場保護和恢復代碼等措施,但程序員要對所使用的開發環境有更深的了解和掌握,并具備較高的軟件設計能力。本人中給出的USART接收和發送中斷服務程序(使用CVAVR開發平臺)就是一個非常典型的示例。
本文地址:http://m.qingdxww.cn/thread-2975-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲一级片在线观看 | 这里精品 | 成人亚欧网站在线观看 | 在线天堂中文新版有限公司 | 四虎影院免费在线播放 | 国产九色在线 | 97在线免费观看视频 | 五月网| 激情久久久久久久久久久 | 91社区在线视频 | 深海狂鲨1免费观看完整版 深爱五月综合网 | 在线免费观看一区二区三区 | 国产日韩一区二区三区在线播放 | 免费久久精品 | 99视频在线观看免费 | 欧美人与动人物xxxx | 99精品国产自在现线观看 | 日本在线影院 | 亚洲每日更新 | 久久刺激视频 | 欧美专区亚洲 | 亚洲综合久 | 久久99精品国产免费观看 | 亚洲香蕉在线 | 亚洲影视在线观看 | 亚洲精品人成网在线播放蜜芽 | 天天操中文字幕 | 欧美日本亚洲国产一区二区 | 热re99久久精品国产99热 | 99尹人香蕉国产免费天天在线 | 日韩一区二区精品久久高清 | 最近最新的日本免费 | 欧美大片va欧美在线播放 | 蜜臀麻豆 | 亚洲综合色站 | www.99精品| 日韩一区二区在线视频 | 精品自拍视频在线观看 | 国产91情侣在线精品国产 | 天堂资源 | 害羞草研究所 |