位置:首页 > IC型号导航 > 首字符A型号页 > 首字符A的型号第372页 > ATMEGA2560-16AU > ATMEGA2560-16AU PDF资料 > ATMEGA2560-16AU PDF资料3第18页

neously使用CLI指令。下面的示例演示如何可用于
避免在定时EEPROM写序列中断。
汇编代码例程
in
CLI
R16 , SREG
;保存SREG
;启动EEPROM写
;恢复SREG值( I位)
;禁止在定时中断程序
SBI
EECR , EEMPE
SBI
EECR , EEPE
OUT
SREG , R16
C代码示例
CHAR
cSREG ;
cSREG = SREG ;
/ *保存SREG值* /
/*
在时间顺序禁止中断* /
__disable_interrupt ();
EECR | = ( 1<<EEMPE ) ;
/ *启动EEPROM写* /
EECR | = ( 1<<EEPE ) ;
SREG = cSREG ;
/ *恢复SREG值( I位) * /
当
使用SEI指令使能中断时,紧跟其后的第一条指令会
任何中断之前执行,如本例中所示。
汇编代码例程
SEI
;设置全局中断使能
睡觉
;进入休眠模式,等待中断
;注意:将任何挂起之前进入睡眠
;中断(S )
C代码示例
__enable_interrupt ();
/ *设置全局中断允许* /
__sleep ();
/ *进入休眠模式,等待中断* /
/ *注:将之前的任何中断挂起(S )进入休眠模式* /
中断响应时间
所有已启用的AVR中断的中断响应是5个时钟周期
最低限度。经过5个时钟周期,程序跳转到实际的中断处理
危及周围例程被执行。在这5个时钟周期,程序计数器有
压入堆栈。向量通常是跳转到中断服务程序,而这
跳转需要3个时钟周期。如果执行了多周期的过程中发生中断
指令,该指令被中断服务之前完成。如果一个中断
发生在MCU处于休眠模式,中断响应时间
增加了5个时钟周期。该增长来自于除从启动时间
所选择的睡眠模式。
从中断处理程序返回需要5个时钟周期。在这五个
时钟周期,程序计数器(三个字节)从栈中弹出回来,
堆栈指针是由三个递增, SREG的I置位。
18
ATmega640/1280/1281/2560/2561
2549K–AVR–01/07