AVR单片机在同一个优先级中,中断向量入口地址越低,其优先级越高。AVR单片机在响应中断以后,会禁止系统响应其余中断。如果程序需要在某个中断服务程序中响应其它中断事件,可以在该中断服务程序中用SEI指令或_SEI()(IAR)、 SEI()(
ICCAVR)重新使能全局
中断即可。否则,AVR单片机只有在退出中断进程时,才重新使能全局中断。AVR(至少是ATmega16)单片机采用固定的硬件优先级方式,不支持通过软件对中断优先级重新设定。
AVR有不同的中断源。每个中断和复位在程序空间都有独立的中断向量。所有的中断事件都有自己的使能位。当使能位置位,且状态寄存器的全局中断使能位I 也置位时,中断可以发生。根据程序计数器PC 的不同,在引导锁定位BLB02 或BLB12 被编程的情况下,中断可能被自动禁止。这个特性提高了软件的安全性。详见 P247“ 存储器编程” 的描述。
程序存储区的最低地址缺省为复位向量和中断向量。完整的向量列表请参见 P43“中断”。列表也决定了不同中断的优先级。向量所在的地址越低,优先级越高。RESET 具有最高的优先级,第二个为INT0 – 外部中断请求0。通过置位MCU 控制寄存器 (MCUCR) 的IVSEL,中断向量可以移至引导Flash的起始处。编程熔丝位BOOTRST也可以将复位向量移至引导Flash的起始处。具体参见P234“支持引导装入程序 – 在写的同时可以读(RWW,Read-While-Write) 的自我编程能力”。
任一中断发生时全局中断使能位I 被清零,从而禁止了所有其他的中断。用户软件可以在中断程序里置位I 来实现中断嵌套。此时所有的中断都可以中断当前的中断服务程序。执行RETI 指令后I 自动置位。
从根本上说有两种类型的中断。第一种由事件触发并置位中断标志。对于这些中断,程序计数器跳转到实际的中断向量以执行中断处理程序,同时硬件将清除相应的中断标志。中断标志也可以通过对其写”1” 的方式来清除。当中断发生后,如果相应的中断使能位为“0”,则中断标志位置位,并一直保持到中断执行,或者被软件清除。类似的,如果全局中断标志被清零,则所有已发生的中断都不会被执行,直到I 置位。然后挂起的各个中断按中断优先级依次执行。
第二种类型的中断则是只要中断条件满足,就会一直触发。这些中断不需要中断标志。若中断条件在中断使能之前就消失了,中断不会被触发。
AVR 退出中断后总是回到主程序并至少执行一条指令才可以去执行其他被挂起的中断。要注意的是,进入中断服务程序时状态寄存器不会自动保存,中断返回时也不会自动恢复。这些工作必须由用户通过软件来完成。
使用CLI 指令来禁止中断时,中断禁止立即生效。没有中断可以在执行CLI 指令后发生,即使它是在执行CLI 指令的同时发生的。下面的例子说明了如何在写EEPROM 时使用这个指令来防止中断发生以避免对EEPROM 内容的可能破坏
关键字:AVR 中断优先级
引用地址:
AVR 中断优先级
推荐阅读最新更新时间:2024-03-16 15:05
avr单片机工作经验总结
AVR与传统类型的单片机相比,除了必须能实现原来的一些基本的功能,其在结构体系、功能部件、性能和可靠性等多方面有很大的提高和改善。 但使用更好的器件只是为设计实现一个好的系统创造了一个好的基础和可能性,如果还采用和沿袭以前传统的硬件和软件设计思想和方法的话,是不能用好AVR的,甚至也不能真正的了解AVR的特点和长处。 功能越好的器件,需要具备更高技术和能力的人来使用和驾驭它。就象一部好的F1赛车,只有具备高超技术的驾驶员才能充分体会到车的特点,并能最大限度的发挥出车的性能。 AVR具有上手入门快,开发方便简单的特点,但要充分体会和发挥AVR的优点,还需要应用工程师本身的硬软件设计开发能力的不断学习、实践提高。
[单片机]
AVR单片机定时器计数
#include iom16v.h #include macros.h #define uchar unsigned char #define uint unsigned int uchar num1; #pragma interrupt_handler miao:9//它所对应的位置 #pragma data:code//定义程序存在ROM里面 const uchar table ={ 0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90, 0x88,0x83,0xc6,0xa1,0x86, 0x8e }; /***********************************
[单片机]
基于AVR单片机的核磁共振仪床体运动控制与检测系统的研究与设计
1 引言 近年来随着医学技术的快速发展,核磁共振仪已经在大中型医院中被广泛的应用。目前,在核磁共振仪的生产过程中,床体部分要与磁体一起搬入电磁屏蔽室组装后才能进行检测,这对人员和物资都是很大的浪费。针对这种状况,本文设计出了一套核磁共振仪床体部分的运动控制与检测系统,它能够对床体部分独立进行检测,而不必将全部系统在屏蔽室安装后检测,从而降低了核磁共振仪床体部分的生产和检测成本,缩短了生产周期。 本设计以通用医疗集团的Ovation5型核磁共振仪的床体为对象,对驱动床体做横向运动的直流步进电机和驱动床体做纵向运动的直流伺服电机的精确控制问题进行较为深入的分析和研究。系统主要采用了ATMEL公司的Atmega128单片机和AL
[单片机]
利用AVR单片机设计的DS18B20测温程序
/******************************** DS18B20测温程序 文件名:main.c 编译:WinAVR-20070122 硬件环境:CA-M8X 打开的开关如下 S6(1,2,5,6,7) - 外部4MHz晶振和595接口 J8(EN-SEG) - 数码管显示允许 S7(4) - 连接PC1 与DS18B20数据口 (在CA-M8X 上DS18B20为非总线供电) *******************************/ #include avr/io.h #include util/delay.h #includ
[单片机]
基于AVR单片机的高精度频率调节器设计
1 引言 在现代化工业生产与高精度测试中,我们需要相当精确的频率来帮助判断设备性能指标。而且我们希望能够微调该频率。采用压控振荡器得到的频率不够精确,微调频率步骤烦琐,耗时漫长,因此有些测试项目限制了压控振荡器的使用。 Mega系列单片机是Atmel公司于2002年起陆续推出的。这款AVR增强型单片机具有速度快,抗干扰能力强,价格低廉等诸多优点。为了加快AVR单片机的软件编制,Atmel以及第三方提供的开发工具多种多样,程序开发方便有效。该单片机内部FLASH结构功能灵活,加锁后很难解密,可以最大限度地保护知识产权。AVR单片机可以广泛应用于通信、野外测试、汽车电子、医疗器械等领域,并且适用于各种低电压、低功耗的
[单片机]
用VB 编程语言实现PC机与AVR 单片机的通信
0 引 言 在当今,网络技术越来越多地应用在各个领域,微机技术及单片机也不断发展,因此,目前大多数小型计算机监控系统都采用以PC 机和单片机构成的串行通信网络来完成监控任务。其中,单片机主要进行对数据的实时采集、处理,再通过串口将数据送入PC 机的缓冲区,然后由PC 机对数据进行进一步处理,以便得到所需的图形、图像及实验结果。采用VB 语言中的通信控件能够很好地完成二者之间的通信功能。 1 系统简介 本系统是一个小型的人体心电监测系统,将心电信号采出后经过A/ D 转换,由PC 机绘制出心电图形,进行实时显示,便于医护人员观察和诊断,系统原理如图1 所示。系统的下位机即单片机系统,将现场采集的信号经A/ D 转换送入系统上位机。
[单片机]
AVR单片机的RC5和RC6算法比较与改进
摘要:RC5及RC6是两种新型的分组密码。AVR高速嵌入式单片机功能强大,在无线数据传输应用方面很有优势。本文基于Atmega128高速嵌入式单片机,实现RC5和RC6加密及解密算法,并对算法进行汇编语言的优化及改进。根据实验结果。对两种算法的优热点进行比较和分析。
关键词:Atmega128 RC5 RC6 分组密码 混合密钥 Flash
引言
在无线局域网中,传输的介质主要是无线电波和红外线,任何具有接收能力的窍听者都有可能拦截无线信道中的数据,掌握传输的内容,造成数据泄密。因此,对于无线局域网来说,数据的加密是关键技术之一。
AVR高速嵌入式单片机是8位RISC MCU,执行大多数指令只需一个时钟周期,速度快(8M
[单片机]
基于AVR微控制器的电力机车智能辅保系统的实现
摘要: 给出了以AVR微控制器为核心的电力机车智能辅保系统的设计方案,并介绍了系统硬件及软件的具体实现方法。
关键词: 智能辅保系统 AVR微控制器 硬件 软件
电气机车辅助系统中有劈相机、空气压缩机、通风机及制动风机等各种类型的电机。运行中为了防止出现短路、过流等异常情况而烧毁电机,通常配置辅助保护系统,起到及时监测电机故障并加以处理的作用。目前电力机车上安装的辅保系统都是模拟电路装置,系统硬件复杂,又不方便司机使用和维修。因此,设计一种实时性高、性能可靠的智能辅保系统替代原有的模拟电路装置势在必行。本文将介绍笔者开发的用于韶山型电力机车的智能辅助保护系统的设计及实现。
1 系统的主要功能
[嵌入式]