ATmega16简介(三)ATmega16指令执行时序这一节介绍指令执行过程中的访问时序
AVRCPU由系统时钟clkCPU驱动
此时钟直接来自选定的时钟源
芯片内部不对此时钟进行分频
Figure6说明了由Harvard结构决定的并行取指和指令执行,以及可以进行快速访问的寄存器文件的概念
这是一个基本的流水线概念,性能高达1MIPS/MHz,具有优良的性价比、功能/时钟比、功能/功耗比
Figure7演示的是寄存器文件内部访问时序
在一个时钟周期里,ALU可以同时对两个寄存器操作数进行操作,同时将结果保存到目的寄存器中去
ATmega16复位与中断处理AVR有不同的中断源
每个中断和复位在程序空间都有独立的中断向量
所有的中断事件都有自己的使能位
当使能位置位,且状态寄存器的全局中断使能位I也置位时,中断可以发生
根据程序计数器PC的不同,在引导锁定位BLB02或BLB12被编程的情况下,中断可能被自动禁止
这个特性提高了软件的安全性
详见P247“存储器编程”的描述
程序存储区的最低地址缺省为复位向量和中断向量
完整的向量列表请参见P43“中断”
列表也决定了不同中断的优先级
向量所在的地址越低,优先级越高
RESET具有最高的优先级,第二个为INT0–外部中断请求0
通过置位MCU控制寄存器(MCUCR)的IVSEL,中断向量可以移至引导Flash的起始处
编程熔丝位BOOTRST也可以将复位向量移至引导Flash的起始处
具体参见P234“支持引导装入程序–在写的同时可以读(RWW,Read-While-Write)的自我编程能力”
任一中断发生时全局中断使能位I被清零,从而禁止了所有其他的中断
用户软件可以在中断程序里置位I来实现中断嵌套
此时所有的中断都可以中断当前的中断服务程序
执行RETI指令后I自动置位
从根本上说有两种类型的中断
第一种由事件触发并置位中