<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > AVR使用范例--AVR外部中斷范例

AVR使用范例--AVR外部中斷范例

作者: 時(shí)間:2016-11-11 來(lái)源:網(wǎng)絡(luò ) 收藏
系統在正常運行主程序時(shí),如果突然有一個(gè)重要的任務(wù)要馬上處理,那么系統就要保存現在的工作,然后再去處理這個(gè)任務(wù),執行這個(gè)重要任務(wù)完畢以后再返回原來(lái)的主程序繼續運行,這就是中斷。

主程序一旦進(jìn)入中斷服務(wù)程序,那么AVR芯片將自動(dòng)的關(guān)閉全局中斷,在這個(gè)期間不再執行其它的中斷請求,直到中斷程序結束以后芯片才自動(dòng)的重新開(kāi)放全局中斷。(注意,在這個(gè)期間某些中斷請求可能會(huì )被丟棄,某些請求會(huì )留下中斷請求標致,一旦當前的中斷執行完畢,這個(gè)有中斷標致的請求就有可能馬上得到響應,如INT0的下降沿觸發(fā)就會(huì )留下中斷請求標致,而低電平觸發(fā)就不會(huì )流下中斷請求標致)。如果你想在執行中斷服務(wù)程序時(shí)響應另外一個(gè)更重要的中斷,那么就要在中斷服務(wù)程序中加入一條打開(kāi)全局中斷的語(yǔ)句。

本文引用地址:http://dyxdggzs.com/article/201611/317063.htm

使用ICCAVR Application Builder進(jìn)行如下圖所示的設置。 可以設置是否使用中斷,上升延,下降延,低電平,任意的邏輯電平變化。

將生成的程序進(jìn)行修改,DDRA = 0x01;PORTD = 0x0C; ,添加MAIN函數,如下

  • //ICC-AVR application builder : 2006-12-8 17:04:44// Target : M16// Crystal: 7.3728Mhz#include #include unsigned int i=0;void port_init(void){ PORTA = 0x00; DDRA = 0x01; PORTB = 0x00; DDRB = 0x00; PORTC = 0x00; //m103 output only DDRC = 0x00; PORTD = 0x0C; //使INT0,INT1對應口上拉電阻有效 DDRD = 0x00; //必須設置INT0,INT1對應口為輸入}#pragma interrupt_handler int0_isr:2void int0_isr(void){ //external interupt on INT0 i++; //在中斷里進(jìn)行操作}#pragma interrupt_handler int1_isr:3void int1_isr(void){ //external interupt on INT1 PORTA = 0x01; //在中斷里進(jìn)行操作}//call this routine to initialize all peripheralsvoid init_devices(void){ //stop errant interrupts until set up CLI(); //disable all interrupts port_init(); MCUCR = 0x08; //INT1 的下降沿產(chǎn)生異步中斷請求,INT0上升延 GICR = 0xC0; //INT0和INT1使能 TIMSK = 0x00; //timer interrupt sources SEI(); //re-enable interrupts //all peripherals are now initialized}void main(void){ init_devices(); while(1) //死循環(huán)等待中斷 ;}

相關(guān)解釋

  1. #pragma interrupt_handler int0_isr:2
  2. 中斷的約定表示方法:int0_isr有一個(gè)與之對應的應用程序void int0_isr(void),2為中斷向量,值越小,優(yōu)先級越高,INT0的優(yōu)先級僅次于復位。
  3. MCU 控制寄存器- MCUCR MCU 控制寄存器包含中斷觸發(fā)控制位與通用MCU 功能
  4. 通用中斷控制寄存器- GICR 使能或禁用外部中斷請求

使用過(guò)程中:為了降低干擾,中斷引腳請加上一個(gè)4.7K的上拉電阻,還可以根據實(shí)際需要,加上電容濾波,防抖動(dòng)。



關(guān)鍵詞: AVR使用范例外部中

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>