AVR单片机入门教程之三---中断

发布者:学海飘香最新更新时间:2016-01-14 来源: eefocus关键字:AVR单片机  入门教程  中断 手机看文章 扫描二维码
随时随地手机看文章
首先说一下中断的优点:中断函数只在中断触发源触发的时候才会执行,其他时间不执行. 如果不使用中断而且如果要根据某个端口的变化而作相应的函数操作,就必须不断地查询端口的信号,而中断不用,只要端口一有变化,就会系统就会自动进入中断函数, 我觉得这就是中断的目的,也是优点.

然后说一下中断的使用,要使用AVR的外部中断,要先进行中断初始设置(触发电平上升沿和下降沿的设定),然后开全局中断,这样在触发中断管脚的时候就会进入中断处理函数.无论导致引脚电平变化的原因是来自单片机内部还是外部,只要引脚上的电平发生了变化都可以触发该引脚上的电平变化中断.

AVR单片机,其硬件系统不支持自动实现中断嵌套的处理。如果在系统设计中,必须使用中断嵌套处理,则需要由用户编写相应的程序,通过软件设置来实现中断嵌套的功能。

如果在初始化中开了总中断 那么AVR在进去中断处理函数后会自动把总中断给关了中断出来后就会重新开中断 所以如果不用在中断里面嵌套另一个中断 就不用在中断服务程序里面开总中断使能。。。

AVR单片机的中断优先级只在同时触发中断时优先级高的中断先进行处理,而对于51单片机中低级别的中断不能打断高级别的中断,在AVR单片机中低级别的中断却可以打断高级别的中断,这是很不一样的,下面用一个例子来说明一下:

//T0溢出中断服务程序
#pragma interrupt_handler timer0_ovf_isr:10
void timer0_ovf_isr(void)
{
  TCNT0 = 0xB4;
  SEI();
  dlygd(0,0);
  dlygd(0,0);
}

//T2溢出中断服务程序
#pragma interrupt_handler timer2_ovf_isr:5
void timer2_ovf_isr(void)
{
 TCNT2 = 0xA0;
 SEI();
 saomiao();
}

 

对于以上两个时间溢出中断函数我在中断程序里面都用了SEI();由于开了总中断,那么在中断执行过程中,只要有其他中断触发,系统同样会进入另外的中断处理函数.

用JTAG调试了一下  发现只要TCNT0一溢出  就触发TIMER0的中断  在中断的过程中只要TCNT2一溢出  就触发了TIMER2的中断   这样子级别高的中断打断低的中断是没什么问题啊   但是在TCNT0再次溢出时  还是会触发TIMER0的中断   这就很奇怪了   难道中断级别低的中断可以中断级别高的中断吗???     这就对了  在AVR单片机中,低级别的中断是可以打断高级别的中断的,只要总中断开着.

关键字:AVR单片机  入门教程  中断 引用地址:AVR单片机入门教程之三---中断

上一篇:AVR单片机按键处理与按键防抖动程序
下一篇:ATmega128 流水灯的两种实现方法(基于AVR GCC)

推荐阅读最新更新时间:2024-03-16 14:43

ARM中断向量表重定位到片外RAM方法
由于ARM CPU产生中断或者异常后,PC指针自动跳转到0x00地址执行(同时执行一些CPSR寄存器的保存、运行模式的转换等),所以要在0x00地址处存放中断向量表。而如果我们想将中断向量表重定位到片外ram的 话, 有2中方法: 1、启用MMU 将片外RAM空间隐射到0x00处 2、在0x00(片内RAM)地址处存放一份和片外RAM一模一样的中断向量表 标准做法是将程序存放在NAND FLASH里面,S3C2440 CPU启动后,会将程序复制到片内RAM里面,此时中断向量表也复制到了IRAM里 3、有部分CPU支持设置中断向量表的寄存器 这样也可以实现重定位
[单片机]
arm7 LPC2103 中断的处理方法
向量中断控制器(VIC)具 有 32 个中断请求输入,可将其编程分为3 类:FIQ 、向量IRQ和非向量IRQ 。可编程分配机制意味着不同外设的中断优先级可以动态分配并调整。 快速中断请求(FIQ )要求具有最高优先级。如果分配给 FIQ 的请求多于1 个,VIC 将中断请求“相或”后向ARM处理器产生 FIQ 信号。当只有一个中断被分配为 FIQ 时可实现 最短的FIQ 等待时间,因为FIQ 服务程序只要简单地启动器件的处理就可以了。但如果分配给FIQ 级的中断多于1 个,FIQ 服务程序从 VIC 中读出一个字来识别产生中断请求的 FIQ中断源是哪一个。 向量IRQ 具有中等优先级。该级别可分配32 个请求中的
[单片机]
STM32笔记之外部中断GPIO
b) 初始化函数定义: void EXTI_Configuration(void); //定义IO中断初始化函数 c) 初始化函数调用: EXTI_Configuration();//IO中断初始化函数调用简单应用: d) 初始化函数: void EXTI_Configuration(void) { EXTI_InitTypeDef EXTI_InitStructure; //EXTI初始化结构定义 EXTI_ClearITPendingBit(EXTI_LINE_KEY_BUTTON);//清除中断标志 GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_P
[单片机]
51 中断系统 外部中断0 外部中断1
51单片机的中断系统结构 中断允许控制 CPU对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器IE控制的。 EX0(IE.0),外部中断0允许位; ET0(IE.1),定时/计数器T0中断允许位; EX1(IE.2),外部中断0允许位; ET1(IE.3),定时/计数器T1中断允许位; ES(IE.4),串行口中断允许位; EA (IE.7), CPU中断允许(总允许)位。 中断请求标志 1、TCON的中断标志 IT0(TCON.0),外部中断0触发方式控制位。 当IT0=0时,为电平触发方式。 当IT0=1时,为边沿触发方式(下降沿有效)。 I
[单片机]
51 <font color='red'>中断</font>系统 外部<font color='red'>中断</font>0 外部<font color='red'>中断</font>1
为你介绍ARM异常中断返回的几种情况
异常中断返回的几种情况: 重要基础知识:R15(PC)总是指向“正在取指”的指令,而不是指向“正在执行” 的指令或正在“译码”的指令。一般来说,人们习惯性约定将“正在执行的指令作为参考 点”,称之为当前第一条指令,因此PC总是指向第三条指令。当ARM状态时,每条指令 为4字节长,所以PC始终指向该指令地址加8字节的地址,即:PC值=当前程序执行 位置+8;而ADS中的pc,是为了调试看着方便而修改过的,它指向的是正在执行的指令,即“真正pc-8”! 1.SWI和和未定义指令异常中断的返回: 指令地址 APC-8当前指令为SWI或未定义指令此时发生中断.PC的值还没有更新. A+4PC-4中断时处理器将PC-4保存到LR。;lr
[单片机]
AT89C51单片机外部中断
C51单片机外部中断调用P3_2 ,P3_3口。 中断方式有两种,分别为电平方式和脉冲方式。 中断请求有0和1。中断总允许为EA=1, IE0:外部中断请求0标志位; IT0:外部中断0触发方式设置位,IT0=1下降沿触发,IT0=0低电平触发; IE1:外部中断请求1标志位; IT1:外部中断1触发方式设置位,IT1=1下降沿触发,IT1=0低电平触发; 外部中断0中断服务程序的编写: void 函数名()interrupt 0 { } 外部中断1中断服务程序的编写: void 函数名()interrupt 2 { } 参考实验程序(主程序为P1口输出跑马灯程序),编写中断子程序使得发生外部中断0,且
[单片机]
AT89C51单片机外部<font color='red'>中断</font>
51单片机的中断响应及撤销
中断响应 中断响应就是单片机CPU对中断源提出的中断请求的接受。中断请求被响应后,再经过一系列的操作,而后转向中断服务程序,完成中断所要求的处理任务。下面简要说明80c51的中断响应过程: 1.外中断采样和内中断置位 1.1外中断采样 要想知道外中断是否有请求发生,需要对外中断进行采样。 当通过软件将寄存器TCON的IT0(或IT1)位设置为0时,/INT0(或/INT1)为电平触发方式,CPU在每个机器周期的S5P2(第五个状态第2拍节)期间对/INT0(或/INT1)采样,一旦在P3.2(或P3.3)上检测到低电平时,则认为有外部中断申请,随即由硬件使TCON的IE0(或IE1)位置1,向CPU申请中断。在中断响应完
[单片机]
51单片机的<font color='red'>中断</font>响应及撤销
MAX3420E外设控制器的中断系统
MAX3420E可与任何SPI主控制器相连,以构成全速USB外设器件。尽管一般都由MAX3420来管理底层USB信令,但是需要处理USB事件时,SPI主控制器必须参与处理,当MAX3420的INT引脚指示有中断发生时,SPI主控制器将读取14个中断请求位,以确定需要服务的中断,一般情况下,主要由这些中断请求(IRQ)位确定MAX3420E的工作过程,在选择器件时,SPI主控制器可以是微控制器、DSP、ASIC或具备SPI端口的其他器件,并应能提供SCLK信号。 MAX3420E的中断逻辑 ◇ IRQ位 图1所示为MAX3420E中断逻辑。阴影部分是可通过SPI访问的寄存器位,图中有一个IRQ位,实际上,每一个中断都有一个用于
[应用]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved