ATmega128 中断向量

发布者:cannon928最新更新时间:2021-11-08 来源: eefocus关键字:ATmega128  中断向量  复位  中断处理 手机看文章 扫描二维码
随时随地手机看文章

本节说明ATmega128 的中断处理。更一般的AVR 中断处理请参见 P 12“ 复位和中断处理” 。

ATmega128 复位和中断向量
Notes: 
1. 当熔丝位BOOTRST被编程时,复位后程序跳转到Boot Loader。请参见 P 255“ 支持引导装入程序 – 在写的同时可以读(RWW, Read-While-Write) 的自我编程能力” 。
2. 当寄存器MCUCR的IVSEL置位时,中断向量转移到Boot区的起始地址。此时各个中断向量的实际地址为表中地址与Boot 区起始地址之和。
3. 地址为$0030 - $0044 的中断在ATmega103 兼容模式中不存在。


Table 24给出了不同的BOOTRST/IVSEL设置下的复位和中断向量的位置。如果程序永远不使能中断,中断向量就没有意义。用户可以在此直接写程序。同样,如果复位向量位于应用区,而其他中断向量位于Boot 区,则复位向量之后可以直接写程序。反过来亦是如此。

ATmega128 复位和中断向量位置的确定
Note: Boot 区复位地址列P 266Table 112 。对于熔丝位BOOTRST,“1” 表示未编程, “0” 表示已编程。

ATmega128 典型的复位和中断设置如下:

ATmega128 典型的复位和中断设置

当熔丝位BOOTRST 未编程, Boot 区为8K 字节,且中断使能之前寄存器MCUCR 的 IVSEL 置位时,典型的复位和中断设置如下:

ATmega128 典型的复位和中断设置

当熔丝位BOOTRST 已编程,且Boot 区为8K 字节时,典型的复位和中断设置如下:

ATmega128 典型的复位和中断设置

当熔丝位BOOTRST 已编程, Boot 区为8K 字节时,且中断使能之前寄存器MCUCR 的 IVSEL 置位时,典型的复位和中断设置如下:

ATmega128 典型的复位和中断设置

在应用区和Boot 区之间移动中断

通用中断控制寄存器决定中断向量表的放置地址。

MCU 控制寄存器- MCUCR

ATmega128 MCU 控制寄存器- MCUCR

• Bit 1 – IVSEL: 中断向量选择
当IVSEL 为"0“ 时,中断向量位于Flash 存储器的起始地址;当IVSEL 为"1“ 时,中断向量转移到Boot 区的起始地址。实际的Boot 区起始地址由熔丝位BOOTSZ 确定。具体请参考P 255“ 支持引导装入程序 – 在写的同时可以读(RWW, Read-While-Write) 的自我编程能力” 。为了防止无意之间改变中断向量表,修改IVSEL 时需要遵照如下过程:


1. 置位中断向量修改使能位IVCE。


在紧接的4 个时钟周期里将需要的数据写入IVSEL,同时对IVCE 写”0”。
执行上述序列时中断自动被禁止。其实,在置位IVCE 时中断就被禁止了,并一直保持到写IVSEL 操作之后的下一条语句。如果没有IVSEL 写操作,则中断在置位IVCE 之后的4 个时钟周期保持禁止。状态寄存器的位I 不受此序列的影响。


Note: 
若中断向量位于Boot区,且Boot锁定位BLB02被编程,则执行应用区的程序时中断被禁止;若中断向量位于应用区,且Boot 锁定位BLB12 被编程, 则执行Boot 区的程序时中断被禁止。有关Boot 锁定位的细节请参见 P 255“ 支持引导装入程序 – 在写的同时可以读(RWW, Read-While-Write) 的自我编程能力” 。


• Bit 0 – IVCE: 中断向量修改使能
改变IVSEL 时IVCE 必须置位。在IVCE 或IVSEL 写操作之后4 个时钟周期, IVCE 被硬件清零。如前面所述,置位IVCE 将禁止中断。代码如下:

汇编代码例程
Move_interrupts:
; 使能中断向量的修改
ldi r16, (1<out MCUCR, r16
; 将中断向量转移到boot 区
ldi r16, (1<out MCUCR, r16
ret
C 代码例程
void Move_interrupts(void)
{
/* 使能中断向量的修改 */
MCUCR = (1</* 将中断向量转移到boot 区 */
MCUCR = (1<}


关键字:ATmega128  中断向量  复位  中断处理 引用地址:ATmega128 中断向量

上一篇:ATmega128 看门狗定时器
下一篇:ATmega128 基准电压使能信号和启动时间

推荐阅读最新更新时间:2024-11-08 16:38

C51的串口中断处理子程序
此串口处理程序是基于以下的协议写成的: 帧内容FRAME=帧头FA+帧长度len(不包括帧头帧尾)+数据流data+帧尾FB。 串口中断子程序里对整个数据流进行处理,而不是一个字节一个字节地处理,在中断中等待处理完所有的字节。 void Uart_Int(void) interrupt 4 //串口要加帧头与FA帧尾FB { unsigned char len, i; unsigned int j=0; unsigned char serialStart; if(RI) //收到数据 { serialStart=SBUF; RI=0; if(serialStart==0xFA) { w
[单片机]
ATmega128 流水灯的两种实现方法(基于AVR GCC)
#include string.h #include stdio.h #define F_CPU 7372800 #include util/delay.h #include avr/io.h #define delay_us(x) _delay_us(x) //AVR GCC延时函数 x(us) #define delay_ms(x) _delay_ms(x) //AVR GCC延时函数 x(ms) #define LED8 PORTB //PORTB 数据寄存器 //DDRB 数据方向控制寄存器 1表示输出 0表示输输入 //PINB 输入引脚寄存器
[单片机]
单片机软复位几种方法
如从机收到复位命令(软件命令),程序怎么使机器复位?虽然要使软件始终处于可控状态,最好不要用 复位 ,因为复位是纯硬件过程,软件是不可控的.但是我们还是要讨论方法,一般流传的方法如下: 1、放狗; 2、((void(code *)(void))0x0000)(); 3、用单片机一个引脚控制点一下RSTRST; 4、用单片机一个引脚控制重新加电; 5、用单片机自带的软件复位指令或内狗指令; 6、goto大法; 方法1: 放狗 是单片机软复位的最好办法,也基本上是唯一的一个办法。但并不是所有单片机都具备看门狗的功能,也不是一个万全之策。 办法2:这不是复位,只是把程序转到地址0
[单片机]
STM32芯片的那些系统级复位功能
我们知道,STM32芯片里有很多系统级的复位,比方上电复位、欠压复位、看门狗复位、软件复位、复位脚电平触发复位等等。这些系统级的复位往往都是针对整个芯片或芯片的绝大部分区域。 其实,我们在实际应用中有时候可能并不需要、甚至不接受总是对整个芯片做大面积的复位。正因为如此,STM32的芯片里除了具备那些系统级复位功能外,还针对各个外设设计了复位功能,即我们可以只需针对某特定外设或特定区域做复位而不影响其它。特定区域一般是指某一块总线驱动的外设集,比方挂在APB1总线的所有外设。 或许有人不了解、或者说没有使用过针对特定外设复位的功能,这里就简单介绍下,抛砖引玉。在STM32各个系列的参考手册里的RCC章节,有关于对外设或局部外
[单片机]
STM32芯片的那些系统级<font color='red'>复位</font>功能
ATmega48 看门狗复位
看门狗定时器溢出时将产生持续时间为1个CK周期的复位脉冲。在脉冲的下降沿,延时定时器开始对tTOUT 记数。请参见P44 以了解看门狗定时器的具体操作过程。
[单片机]
ATmega48 看门狗<font color='red'>复位</font>
单片机应用系统的抗干扰技术
随着工业控制的发展,单片机应用系统以其高性价比逐步取代模拟式控制系统,被广泛应用于各个领域。应用现场存在着各种干扰源,对单片机应用系统的工作影响很大,在实验室里设计好的控制系统,安装调试时完全符合设计要求,而置入现场后,系统常常无法正常稳定地工作。干扰虽不能直接造成硬件的损坏,但常使计算机不能正常运行以致控制失灵,造成设备和生产事故。因此,为了保证设备在实际应用中可靠地工作,从系统设计开始就必须充分考虑到对系统抗干扰性能的要求。 1 干扰源、干扰途径和干扰的影响 1.1 应用系统自身干扰源及干扰途径 应用系统自身干扰源是因在设计系统时对某些问题考虑不全面,如元器件布局不合理、电路工作不可靠、元器件质量差等,形成诸如电阻热噪声
[单片机]
ATEMGA128中断向量
[单片机]
ATEMGA128<font color='red'>中断向量</font>
智能手机和平板电脑设计中的单键开/关机和复位的智能方案
随着智能手机和平板电脑内置电池的设计越来越多,如何在系统软件卡机的时候进行系统的硬件复位,成为一个越来越突显的设计问题。 意法半导体公司STM65xx智能复位芯片系列使设计人员能够去除传统复位键以及机身上隐藏复位键的检修孔,不仅能够实现双键长按复位,还可以实现在智能手机和平板电脑中流行的单键开/关机和复位的智能方案。 1 引言 随着大量新兴数据业务的应用,智能手机和平板电脑功耗水平大幅度提高,导致待机时间也大幅度缩短。为了能否延伸待机时间,内置电池的设计变得越来越普及。这是因为锂电池的一半体积是由其结构件所占据的,如果电池内置于智能手机和平板电脑机身中,就可以节省锂电池的结构件体积,从而在相同乃至更大的体积上大大提高电
[嵌入式]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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