添加收藏夹  设为首页  深圳服务热线:13751165337  13692101218
51电子网联系电话:13751165337
位置:首页 > IC型号导航 > 首字符A型号页 > 首字符A的型号第338页 > ATMEGA128 > ATMEGA128 PDF资料 > ATMEGA128 PDF资料2第16页
基本上有两种类型的中断。第一种类型是由用于设置事件触发
中断标志。对于这些中断,程序计数器跳转到实际的中断向量
以执行中断处理程序,同时硬件将清除相应的接口
中断标志。中断标志也可以通过写1到标志位的位置(S )是清零
清除。如果在相应的中断使能位被清除时发生中断的条件,
中断标志位被置一直保持到中断执行,或者该标志被清除
用软件。类似的,如果全局中断使能一个或多个中断情况发生
位清零时,相应的中断标志位被置一直保持到全球
中断使能位被置位,然后会根据优先顺序来执行。
第二种类型的中断的触发只要中断条件是否存在。这些
中断不需要中断标志。如果中断状态前消失
中断使能,中断不会被触发。
当AVR退出中断,它总是回到主程序并执行一个
之前的任何挂起的中断多指令早餐。
请注意,状态进入中断服务程序时,注册时不会自动存储,也不
从中断程序返回时恢复。这必须通过软件来处理。
当使用CLI指令来禁止中断时,中断禁止立即生效。
没有中断将CLI指令后执行,即使它同时出现的
CLI指令。下面的示例演示如何可以用来避免在中断
定时EEPROM写序列。
汇编代码例程
in
R16 , SREG
CLI
SBI
EECR , EEMWE
SBI
EECR , EEWE
OUT
SREG , R16
;恢复SREG值( I位)
;保存SREG
;启动EEPROM写
;禁止在定时中断程序
C代码示例
CHAR
cSREG ;
cSREG = SREG ;
/ *保存SREG值* /
/*
在时间顺序禁止中断* /
__disable_interrupt ();
EECR | = ( 1<<EEMWE ) ;
/ *启动EEPROM写* /
EECR | = ( 1<<EEWE ) ;
SREG = cSREG ;
/ *恢复SREG值( I位) * /
16
ATmega128
2467S–AVR–07/09

深圳市碧威特网络技术有限公司