嵌入式学习笔记20——AVR单片机之中断
时间:11-20
来源:互联网
点击:
1.ATmega16单片机具有21个中断源。每个中断源都有一个独立的中断向量作为中断服务程序的入口地址,而且所有的中断源都有自己独立的使能位。如果全局中断I和相应的中断使能位都置位,则在中断标志位置位时将执行中断服务程序。
2.一个中断产生后,全局中断使能位I将被清零,后的中断被屏蔽。用户可以在中断服务程序里面对I置位从而开全局中断,在中断返回后全局中断I将重新置位。
3.ATmega16单片机中断向量表介绍:
4.AVR单片机外部中断
- ATmega16单片机具有3个外部中断,分别是INT0,INT1,INT2,这3个外部中断都是有单片机的引脚触发的。
- 需要注意的是,如果允许外部中断的话,即使INT0,INT1,INT2这3个引脚都设置为输出方式,外部中断也会触发。
- INT0,INT1外部中断可以选择的触发方式有上升沿触发、下降沿触发以及低电平触发;INT2只有跳变沿触发(即上升沿触发或下降沿触发),没有电平触发。
- 使用外部中断涉及到的寄存器有:MCU控制寄存器MCUCR,MCU控制欲状态寄存器MCUCSR,通用中断控制寄存器GICR,通用中断状态寄存器GIFR。
ISC11和ISC10——外部中断1,ISC01和ISC00——外部中断0
只需关心ISC2位,为零时下降沿触发中断;为1时上升沿触发中断。
第7位——全中断使能位
各单独中断源中断使能
使用外部中断函数可以不用关心此寄存器,也可以软件查询。
5.
6.外部中断的使用步骤
- 设置外部中断触发方式(寄存器MCUCR——INT0、INT1,MCUCSR——INT2)
- 使能外部中断(寄存器GICR)
- 设置中断管脚(是否需要上拉电阻,若是,则设置INT0、INT1、INT2所在IO口引脚为输出且上拉电阻)
- 打开全局中断(寄存器SREG)
- 选择中断号,写中断服务程序。
AVR单片机中 相关文章:
- AVR单片机外部中断触发的流水灯程序(12-01)
- AVR单片机的中断和中断键盘的使用(11-24)
- AVR单片机中的中断嵌套(11-24)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)