历史上的今天

今天是:2024年11月12日(星期二)

2021年11月12日 | ATmega64 复位与中断处理

发布者:EnigmaticSoul 来源: eefocus关键字:ATmega64  复位  中断处理 手机看文章 扫描二维码
随时随地手机看文章

AVR有不同的中断源。每个中断和复位在程序空间都有独立的中断向量。所有的中断事件 都有自己的使能位。当使能位置位,且状态寄存器的全局中断使能位I 也置位时,中断可 以发生。根据程序计数器PC 的不同,在引导锁定位BLB02 或BLB12 被编程的情况下, 中断可能被自动禁止。这个特性提高了软件的安全性。详见 P281“ 存储器编程” 的描述。


程序存储区的最低地址缺省为复位向量和中断向量。完整的向量列表请参见 P57“中断” 。 列表也决定了不同中断的优先级。向量所在的地址越低,优先级越高。RESET 具有最高 的优先级,第二个为INT0 – 外部中断请求0。通过置位MCU 控制寄存器 (MCUCR) 的 IVSEL,中断向量可以移至引导Flash的起始处,参见 P57“中断” 。编程熔丝位BOOTRST 也可以将复位向量移至引导Flash 的起始处。具体参见P268“ 支持引导装入程序 – 在写 的同时可以读(RWW, Read-While-Write) 的自我编程能力” 。


任一中断发生时全局中断使能位I 被清零,从而禁止了所有其他的中断。用户软件可以在 中断程序里置位I 来实现中断嵌套。此时所有的中断都可以中断当前的中断服务程序。执 行RETI 指令后I 自动置位。


从根本上说有两种类型的中断。第一种由事件触发并置位中断标志。对于这些中断,程序 计数器跳转到实际的中断向量以执行中断处理程序,同时硬件将清除相应的中断标志。中 断标志也可以通过对其写”1” 的方式来清除。当中断发生后,如果相应的中断使能位为 "0",则中断标志位置位,并一直保持到中断执行,或者被软件清除。类似的,如果全局 中断标志被清零,则所有已发生的中断都不会被执行,直到I 置位。然后挂起的各个中断 按中断优先级依次执行。


第二种类型的中断则是只要中断条件满足,就会一直触发。这些中断不需要中断标志。若 中断条件在中断使能之前就消失了,中断不会被触发。


AVR 退出中断后总是回到主程序并至少执行一条指令才可以去执行其他被挂起的中断。


要注意的是,进入中断服务程序时状态寄存器不会自动保存,中断返回时也不会自动恢 复。这些工作必须由用户通过软件来完成。


使用CLI 指令来禁止中断时,中断禁止立即生效。没有中断可以在执行CLI 指令后发生, 即使它是在执行CLI 指令的同时发生的。下面的例子说明了如何在写EEPROM 时使用这 个指令来防止中断发生以避免对EEPROM 内容的破坏。

汇编代码例程
in r16, SREG ; 保存SREG
cli ; 禁止中断
sbi EECR, EEMWE ; 启动 EEPROM 写操作
sbi EECR, EEWE
out SREG, r16 ; 恢复SREG (I 位)
C 代码例程
char cSREG;
cSREG = SREG; /* 保存SREG */
/* 禁止中断*/
_CLI();
EECR |= (1<EECR |= (1<SREG = cSREG; /* 恢复SREG (I 位) */

使用SEI 指令使能中断时,紧跟其后的第一条指令在执行任何中断之前一定会首先得到执行。

汇编代码例程
sei ; 置位全局中断使能标志
sleep ; 进入休眠模式,等待中断发生
; 注意: 在执行任何被挂起的中断之前MCU 将首先进入休眠模式
C 代码例程
_SEI(); /* 置位全局中断使能标志*/
_SLEEP(); /* 进入休眠模式,等待中断发生*/
/* 注意: 在执行任何被挂起的中断之前MCU 将首先进入休眠模式*/

中断响应时间

AVR 中断响应时间最少为4 个时钟周期。4 个时钟周期后,程序跳转到实际的中断处理例 程。在这4 个时钟期期间PC 自动入栈。在通常情况下,中断向量为一个跳转指令,此跳 转需要3 个时钟周期。如果中断在一个多时钟周期指令执行期间发生,则在此多周期指令 执行完毕后MCU 才会执行中断程序。若中断发生时MCU 处于休眠模式,中断响应时间 还需增加4 个时钟周期。此外还要考虑到不同的休眠模式所需要的启动时间。


中断返回需要4 个时钟。在此期间PC( 两个字节) 将被弹出栈,堆栈指针加二,状态寄存 器SREG 的I 置位。


关键字:ATmega64  复位  中断处理 引用地址:ATmega64 复位与中断处理

上一篇:ATmega64 Flash程序存储器
下一篇:ATmega64 指令执行时序

推荐阅读

在今年的旗舰手机发布已经进入尾声之际,很多“一年双旗舰”手机厂商年初发布的旗舰产品消息已经开始纷纷涌现。近日,三星 Galaxy S10 就被曝出一张疑似渲染图。 据悉此前的消息称,三星 Galaxy S10 将会有三个版本,其中标准版的代号为“Beyond”。而从那张疑似渲染图中可以看到,三星 Galaxy S10 配备的是圆角曲面屏...
概览无线设备的数量、通信标准的多样性,以及调制方案的复杂度,每一年都在不断增加。而随着每一代新技术的诞生,由于使用传统技术测试无线设备,需要大量更复杂的测试设备,其成本也在不断提高。使用虚拟(软件)仪器与模块化I/O相结合是一种最小化硬件成本并减少测试时间的方法。软件设计仪器的新方法使得射频测试工程师无需凭借自定义或特殊标准的仪器,...
11月12日消息,在今天举报的2020全球移动宽带论坛上,华为副董事长胡厚崑发表了《跨越商业裂谷 共创5G新价值的》的主题演讲。他表示,5G网络部署进入快车道,谈到5G的发展,中国是一道最亮丽的风景线。胡厚崑表示,目前国内各大运营商已经拥有60万个5G基站,5G部署覆盖超过300个城市,一年多的时间中国5G连接数达到1.6亿。“毫无疑问,中国拥有全世界最...
广告摘要声明广告撰文 | sya无风扇模块化工控机在机器人领域的作用正在进一步凸显。由于行业环境的不同,所需机器人的功能也不尽相同,这就对机器人的“大脑”提出了新的考验,机器人的“大脑”需适应宽温宽压环境,处理性能极佳的工控机。稳信作为一家专注于嵌入式边缘计算平台研发制造商,拥有完整的研发、供应链、制造、市场和技术服务体系。为了满足...

史海拾趣

问答坊 | AI 解惑

电路设计常用(部分)软件介绍

导航:老古开发网首页→文章分类→电路板→第4页→[电路设计常用(部分)软件介绍] | -文章搜索 - 最新文章 - | 第831篇:电路设计常用(部分)软件介绍 发布时间:2005年8月22日 点击次数:6324 详细内容:电路设计常用(部分)软件介绍随着 ...…

查看全部问答∨

tdb格式的文件转为GDS格式的

如题 ,就是怎样在L-EDIT里把tdb格式的文件转为GDS格式的,谢谢…

查看全部问答∨

半导体行业(微电子/IC设计)职业指导(转)(下)

技能储备      技能储备对于提高效率很有好处。工欲善其事,必先利其器。对于电路或者逻辑设计工程师而言,技能方面的储备主要涉及基本技能,专业技能,和职业技能几个方面。 基本技能和一些基础知识有时很难分清,但都是是 ...…

查看全部问答∨

GPRS设备如何和接入公网的具有静态IP的计算机进行数据通讯?

请有经验的大侠们说一说,车载GPRS设备如何与监控中心的计算机进行数据通讯,还有,如果在火车上,这个供电问题怎么解决呢…

查看全部问答∨

100 分求一个 Windows CE 6.0 正式版下载…

今天收到了开发板,老板给的光盘里 CE 6.0 居然是 120 天试用的,而不是正式版…100 分求一个正式版下载,非常感激!…

查看全部问答∨

100分求助串口驱动问题

小弟在看串口驱动的PDD层时,有以下问题不清楚,请高手帮助解决一下 先谢谢啦 1.LOOKUP_TBL  是否结构体,具体定义是什么 2.PHYSICAL_ADDRESS    是否结构体,具体定义是什么 3.HalTranslateBusAddress   4.为 ...…

查看全部问答∨

关于串口控制台波特率的设置问题?

在板子的初始化中 找到了这个代码  我现在想该动串口控制台的波特率,但发现这个代码 始终没有找到这个波特率的设置 我现在控制台波特率是38400 请教大家 我如何在内核中修改啊 我想改成115200 还有 我查找资料 getty可以改 linux下报错无 ...…

查看全部问答∨

学习的话S3C2440和S3C6410该如何选择?

感觉S3C6410是将来的趋势,毕竟是ARM11,比ARM9要高端一些。今年上大四,打算暑假学学嵌入式技术 ,到时好找工作。在论坛看了好久,好多都是说S3C2440的,S3C6410的资料好少。不知道明年哪个会对 找工作更有用?请前辈们指教。刚开始学习是先买本 ...…

查看全部问答∨

医疗影像应用领域的嵌入式处理器

  过去几年来,技术进步推动医疗影像领域取得了众多成就。如今,诊断速度更快、准确度更高,而且为患者提供护理的成本也相应更低,患者自我护理逐渐成为现实,毋需再花时间坐车到医院看病。 德州仪器 (TI) 嵌入式处理器在推动上述技术进步过 ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

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

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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