ATmega16L-----外部中断0,1中断嵌套
时间:08-22
来源:互联网
点击:
/*************************************** 取自周兴华《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,INT1 MCUCR=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:2 void 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:3 void int1_isr(void) { SREG=0X80; //使能全局中断 for(shu=0;shu10;shu++) { PORTD|=BIT(7); delay_ms(100); PORTD=~BIT(7); delay_ms(100); } }
- 基于MMS的即时报警系统设计(01-23)
- ATmega16L驱动ILI9325/9328(11-20)
- TWI ATMEGA16L 丛机模式(11-13)
- ATmega16L学习板18B20测试程序(11-11)
- ATmega16L的ISP技术在汽车电子差速控制中的应用(03-06)
- 基于Atmega16L的简单音乐制作(10-08)