微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 嵌入式学习笔记20——AVR单片机之中断

嵌入式学习笔记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)
  • 选择中断号,写中断服务程序。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top