×
嵌入式开发 > 详情

ATmega16L-----外部中断0,1中断嵌套

发布时间:2020-07-01 发布时间:
|
/***************************************取自周兴华《AVR单片机C语言高级程序设计》进入INT1中断的时候,再开启全局中断,这时候INT0中断触发,可以形成中断嵌套***************************************/
#includeiom16v.h>#includemacros.h>
#define uchar unsigned char
#define uint unsigned int
uint shu;/***************************************delay****************************************/
void delay_ms(uint k){uint i,j;for(i=0;ik;i++)for(j=0;j570;j++);}
/****************************************main****************************************/
void main(void){DDRB=0xff;PORTB=0XFF;PORTD=0XFF;DDRD=0XF3; 
//将PD2,PD3设置为输入 即INT0,INT1MCUCR=0X0A; //INT1,INT0 设置为下降沿触发GICR=0XC0; //使能INT1,INT0 中断SREG=0X80; //使能总中断while(1){PORTB=0X00;delay_ms(100);PORTB=0XFF;delay_ms(100);}}/*****************************************INT0 ISR*****************************************/#pragma interrupt_handler int0_isr:2void int0_isr(void){for(shu=0;shu5;shu++){PORTB|= BIT(1);delay_ms(60);PORTB=~BIT(1);delay_ms(60);}}/***************************************INT1 ISR***************************************/#pragma interrupt_handler int1_isr:3void int1_isr(void){SREG=0X80; //使能全局中断for(shu=0;shu10;shu++){PORTD|=BIT(7);delay_ms(100);PORTD=~BIT(7);delay_ms(100);}} 


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
寻找半导体产业未来10年的驱动力