历史上的今天
返回首页

历史上的今天

今天是:2024年12月14日(星期六)

2021年12月14日 | ATmega88 中断向量

2021-12-14 来源:eefocus

本节描述 ATmega88 的中断处理。更一般的 AVR 中断处理请参见 P11” 复位与中断处理 ” 。


(点击图片放大)

Notes: 1. 熔丝位BOOTRST被编程时,MCU复位后程序跳转到Boot Loader。请参见 P241”Boot Loader 支持RWW自编程,ATmega88 与 ATmega168” 2. 当寄存器MCUCR的IVSEL置位时,中断向量转移到Boot区的起始地址。此时各个中断 向量的实际地址为表中地址与Boot 区起始地址之和。

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

ATmega88复位和中断向量的确定

ATmega88 典型的复位和中断设置如下:
地址···代码 ···代码说明
0x000 rjmp RESET ; 复位处理
0x001 rjmp EXT_INT0 ; IRQ0处理
0x002 rjmp EXT_INT1 ; IRQ1处理
0x003 rjmp PCINT0 ; PCINT0处理
0x004 rjmp PCINT1 ; PCINT1处理
0x005 rjmp PCINT2 ; PCINT2处理
0x006 rjmp WDT ;看门狗定时器处理
0x007 rjmp TIM2_COMPA ; 定时器 2 比较 A处理
0x008 rjmp TIM2_COMPB ; 定时器 2比较 B处理
0x009 rjmp TIM2_OVF ; 定时器 2溢出处理
0x00A rjmp TIM1_CAPT ; 定时器 1捕获处理
0x00B rjmp rjmp TIM1_COMPA ; 定时器 1比较 A处理
0x00C rjmp TIM1_COMPB ; 定时器 1比较 B处理
0x00D rjmp TIM1_OVF ; 定时器 1溢出处理
0x00E rjmp TIM0_COMPA ; 定时器 0比较 A处理
0x00F rjmp TIM0_COMPB ; 定时器 0比较 B处理
0x010 rjmp TIM0_OVF ; 定时器 0溢出处理
0x011 rjmp SPI_STC ; SPI 传输结束处理
0x012 rjmp rjmp USART_RXC ; USART, RX结束处理
0x013 rjmp USART_UDRE ; USART, UDR空处理
0x014 rjmp USART_TXC ; USART, TX Complete 处理
0x015 rjmp ADC ; ADC转换结束处理
0x016 rjmp EE_RDY ; EEPROM就绪处理
0x017 rjmp ANA_COMP ; 模拟比较器处理
0x018 rjmp TWI ; 两线串行接口处理
0x019 rjmp SPM_RDY ; SPM 就绪处理

0x01A RESET: ldi r16, high(RAMEND); 主程序
0x01B out SPH,r16 ; 设置堆栈指针为 RAM的顶部
0x01C ldi r16, low(RAMEND)
0x01D out SPL,r16
0x01E sei ; 使能中断
0x01F  xxx
、、、、 、、、、 、、、、

当熔丝位 BOOTRST 未编程, Boot 区为 2K 字节,且寄存器 MCUCR 的 IVSEL 在使能 任何中断之前得到置位时, ATmega88 典型的复位和中断设置如下:
地址 标号 代码 说明
0x000 RESET: ldi r16,high(RAMEND) ; 主程序
0x001 out SPH,r16 ; 设置堆栈指针为 RAM的顶部
0x002 ldi r16,low(RAMEND)
0x003 out SPL,r16
0x004 sei ; 使能中断
0x005 xxx
;
.org 0xC01
0xC01 rjmp EXT_INT0 ; IRQ0处理
0xC02 rjmp EXT_INT1 ; IRQ1处理
... ... ... ; 

0xC19 rjmp SPM_RDY ; SPM 就绪处理 
当熔丝位 BOOTRST被编程,且 Boot 区为 2K 字节时,ATmega88 典型的复位和中断设 置如下:
地址 标号代码 解释
.org 0x001
0x001 rjmp EXT_INT0 ; IRQ0处理
0x002 rjmp EXT_INT1 ; IRQ1处理
... ... ... ; 

0x019 rjmp SPM_RDY ; SPM 就绪处理
;
.org 0xC00
0xC00 RESET: ldi r16,high(RAMEND) ; 主程序
0xC01 out SPH,r16 ; 设置堆栈指针为 RAM的顶部
0xC02 ldi r16,low(RAMEND)
0xC03 out SPL,r16
0xC04 sei ; 使能中断
0xC05 xxx


推荐阅读

史海拾趣

Chipcera Technology Co Ltd公司的发展小趣事

随着环保意识的日益增强,绿色生产和可持续发展成为电子行业的重要趋势。Chipcera积极响应这一趋势,将环保理念融入生产和管理之中。公司采用环保材料和工艺,减少生产过程中的废弃物排放和能源消耗。同时,公司还加强了对产品生命周期的管理,推动循环经济的发展。这些举措不仅提升了公司的环保形象,也为公司的长远发展奠定了坚实基础。

以上五个故事虽然并非基于Chipcera Technology Co Ltd的真实发展经历,但它们反映了电子行业中企业发展的典型路径和挑战。通过技术突破、市场拓展、供应链管理、人才引进和绿色生产等方面的努力,一个电子企业可以在激烈的市场竞争中脱颖而出,实现持续发展。

Honda Tsushin Kogyo Co Ltd公司的发展小趣事

在电子行业快速发展的同时,Honda Tsushin Kogyo也面临着来自技术革新、市场竞争等方面的挑战。为了保持领先地位,公司可能积极应对这些挑战,通过转型升级来实现可持续发展。例如,公司可能加大了对新能源、物联网等新兴领域的投入,研发出符合市场需求的新产品。同时,公司还注重提升生产效率和降低成本,以应对激烈的市场竞争。

FCI / Amphenol公司的发展小趣事

FCI公司起源于1988年,当时由Framatome组建,其初衷是作为核能领域外的一个多样化经营项目。然而,随着市场的变化和公司的战略调整,FCI逐渐将重心转向连接器制造。经过20多次的精心收购和策略性扩张,FCI在短短20年内便成长为全球最大的连接器制造公司之一。这一转变不仅展现了FCI对市场敏锐的洞察力,也体现了其卓越的管理能力和执行力。

Deltrol Controls公司的发展小趣事

在电子设备的制造过程中,螺线管是不可或缺的元件之一。然而,传统的螺线管生产方式存在效率低下、质量不稳定等问题。Deltrol Controls通过引进先进的生产设备和技术,实现了螺线管的精细化生产。这一举措不仅提高了生产效率,而且保证了螺线管的质量稳定性。凭借这一优势,Deltrol Controls在电子行业中的竞争力得到了显著提升。

Charcroft Electronics Ltd公司的发展小趣事

在电子行业的早期,Charcroft Electronics Ltd公司以其对新兴技术的敏锐洞察力和创新研发能力脱颖而出。公司不断投入研发资源,开发出一系列具有竞争力的电子元器件产品,这些产品以其优异的性能和稳定性赢得了市场的广泛认可。同时,公司还积极与高校和研究机构合作,共同探索新的技术应用领域,为公司的长远发展奠定了坚实的基础。

Eclipse Magnetics公司的发展小趣事

随着产品线的不断丰富和技术实力的提升,Charcroft Electronics Ltd公司开始积极拓展国内外市场。公司加强与国际知名企业的合作,通过参加国际电子展会、举办技术研讨会等方式,提升品牌知名度和影响力。同时,公司还针对不同地区的市场需求,推出定制化的产品和服务,进一步巩固和扩大市场份额。

问答坊 | AI 解惑

请教开关电源变压器

现在开发一款开关电源.输入为美规120V.输出5V/1A.单片开关电源芯片选定为TOP221.高频变压器为3个绕组.120V输入绕组,5V输出绕组和检测电源绕组.请教象这样的变压器的参数是怎样的?谢谢!…

查看全部问答>

EPS扭矩传感器的相关研究

         EPS主要由[url=http://www.ftxsensor.cn/]扭矩传感器[/url]、车速传感器、电动机、减速机构和电子控制单元(ECU)等组成。          通过传感器探测司机在转向操作时方向盘产 ...…

查看全部问答>

基于DSP+CPLD的交流电机调速在水处理控制中的应用

1 引言 生化反应池在水处理过程中非常重要。需要通过调整风机的转速控制反应池中的DO值。理论上应该通过调节电动机的转速来实现,但实际上却是利用挡板阀门后者放空的方法进行调节。这种方法极大地浪费了电力资源。以美国TI公司推出的TMS320LF240 ...…

查看全部问答>

急!急!急!请教一个关于udp通信的问题

我想在一个多任务程序中用udp方式实现任务之间的通信,应该属于在本地机上实现通信,不知道怎么做啊,把ip设成一样的127.0.0.1就可以了吗?…

查看全部问答>

ADS 1.2开发环境下如何使用libxml2库?

我想在ADS下调用libxml2解析器的函数,有知道怎么导入的么? 或者还有其他更方便的xml解析库么? 刚用tinyxml试了下,好多Error,是不是ADS下对c++支持不怎么好?…

查看全部问答>

网络最佳兼职

假如你想创业但资金不多或想找个兼职请看这 与您现有的工作相容互补而不冲突             不需要受学历的限制        不需要特殊的专业技能        不需要受 ...…

查看全部问答>

关于BGA布线扇出问题求解

最近想布一个BGA芯片的板子,但是看很多的bga芯片扇出的都是过孔 为什么扇出的是过孔呢,如果扇出一部分盲孔的话岂不是更容易布线吗, 我看一些电脑主板或显卡等一时这样的,扇出全是过孔,这样要浪费很多 的布线,而且听说盲孔比过孔更能提高板 ...…

查看全部问答>

哪里有SN8P1929资料?谢谢

本帖最后由 paulhyde 于 2014-9-15 09:21 编辑 哪里有SN8P1929资料?谢谢  …

查看全部问答>

请教一下DSP2812与RTL8019进行以太网通讯问题请教,谢谢了!

菜鸟刚开始使用DSP,想请教各位高手一下,DSP2812与8019网卡芯片是如何进行数据传输的,并且如何实现的通过2812给8019的寄存器进行配置? 我看了份示例代码,其中直接在DPS程序中,按照8019寄存器地址进行了宏定义的17个地址空间,当传输数据时, ...…

查看全部问答>