历史上的今天
今天是:2024年10月15日(星期二)
2021年10月15日 | ATmega16 通用中断控制寄存器GICR
2021-10-15 来源:eefocus

· Bit 1 – IVSEL: 中断向量选择
当IVSEL 为"0“ 时,中断向量位于Flash 存储器的起始地址;当IVSEL 为"1“ 时,中断向量转移到Boot 区的起始地址。实际的Boot 区起始地址由熔丝位BOOTSZ 确定。具体请参考P234“ 支持引导装入程序 – 在写的同时可以读(RWW, Read-While-Write) 的自我编程能力” 。 为了防止无意识地改变中断向量表,修改IVSEL 时需要遵照如下过程:
1. 置位中断向量修改使能位IVCE
2. 在紧接的4 个时钟周期里将需要的数据写入IVSEL,同时对IVCE 写”0”
执行上述序列时中断自动被禁止。其实,在置位IVCE 时中断就被禁止了,并一直保持到写IVSEL 操作之后的下一条语句。如果没有IVSEL 写操作,则中断在置位IVCE 之后的4 个时钟周期保持禁止。需要注意的是,虽然中断被自动禁止,但状态寄存器的位I 的值并不受此操作的影响。
Note: 若中断向量位于Boot区,且Boot锁定位BLB02被编程,则执行应用区的程序时中断被禁止;若中断向量位于应用区,且Boot 锁定位BLB12 被编程, 则执行Boot 区的程序时中断被禁止。有关Boot 锁定位的细节请参见P234“ 支持引导装入程序 – 在写的同时可以读
(RWW, Read-While-Write) 的自我编程能力” 。
· Bit 0 – IVCE: 中断向量修改使能
改变IVSEL 时IVCE 必须置位。在IVCE 或IVSEL 写操作之后4 个时钟周期, IVCE 被硬件清零。如前面所述,置位IVCE 将禁止中断。代码如下:
汇编代码例程:
Move_interrupts:
; 使能中断向量的修改
ldi r16, (1<
; 将中断向量转移到boot 区
ldi r16, (1<
ret
C 代码例程
void Move_interrupts(void)
{
/* 使能中断向量的修改*/
GICR = (1<
GICR = (1<
上一篇:ATmega48 简介
下一篇:ATmega16 中断向量
史海拾趣
|
2001年美国加州大学制成一种新型异性材料并观察到其反常折射现象,引起学术界关注;2003年美国麻省理工大学实验证明了这种异性材料的可制造性,引起学术界、工业界和军方的高度重视;2003年美国《科学》杂志将这种奇异材料的研制纳入年度十大科学进 ...… 查看全部问答> |
|
急!求助:关于philips FM 芯片TEA5767自动搜台的问题 现在已有产品上挂一收音机模块,采用philips Tea5767hn,采用3-wire模式。 手动搜台已实现,但自动搜台不能实现。不知是相关控制没设置好,还是时序的问题。 相关代码: radio_write_ ...… 查看全部问答> |
|
求助:Local ROM 和 NOR Flash 是什么意思啊?谢谢! 请教: 我在书上看到 Local ROM NOR Flash 问题1: Local ROM 是不是相当于电脑的 内存条? NOR Flash 是不是相当于电脑的 硬盘? 问题1: Local ROM 是什么? 还有别的 ROM 吗? ROM 的主要作用是什么? 问题2: NOR Flash 是什么 ...… 查看全部问答> |
|
我在FET仿真时用的是msp430f449,但实际中的硬件电路是用的 msp430f149,那我应该怎样修改软件中的时钟设置呢?请高手指点 代码如下: void uart_init(void) { char temp; FLL_CTL0 &= 0XBF; UCTL0 |= SWRST; UCTL0 |= CH ...… 查看全部问答> |
|
最近想用LM3S的片子学习下音频采集和分析的知识,要能够分析音频的SNR,THD,计算频率等 本人之前没有这方面的经验,不知道该如何实现。 望论坛的朋友指点思路,谢谢! [ 本帖最后由 hnustlxj 于 2011-12-24 00:48 编辑 ]… 查看全部问答> |
|
独立的电脑板连接热敏打印机(不连网,也不带无线发射)需要通过无线设备 或软件近距离接收(3-10米当然越远越好)思路;可以通过电磁泄漏的信息还原接收 也可以通过解译打印机通讯协议,打印格式 做个软件接口接收!或是可以接收到打印频率信息 在另 ...… 查看全部问答> |




