《AVR教程系列一(8):ATmega16 简介(三).docx》由会员分享,可在线阅读,更多相关《AVR教程系列一(8):ATmega16 简介(三).docx(9页珍藏版)》请在第壹文秘上搜索。
1、ATmega1.6简介(三)ATmega16指令执行时序这一节介绍指令执行过程中的访问时序.AVRCPt1.由系统时忡C1.kcK冕动.此时仲宜按来自选定的时钟说.芯片内部不对此时怦进行分项.Fire6说明了由HarVard玷构决定的并行取指和指令执行,以及可以进行快速访何的存放文件的概念.这是个根本的流水线概念.性能高达1MIPS.UIz.具有优良的性价比功能/时怦比.功能/功耗比.Fieure7演示的是存放涉文件内部访问时序.在一个时树横期里.A1.1.可以同时对两个存放器渤作数进行愫作.同时将结果保存到目的存放潴中去-ATDega1.6复位与中断处理AYR仃不同的中断祝.用个中断和现位在
2、程序空向国有独立的中断向量:.所行的中断驿件和仃自已的It低位.当他傥住置位.且状态存放器的全射中断使能位I也?(位时,中时可以发生,根械程序HsiJiM1.C的不同,在引导锁定位H1.BO2或Bun2被编程的情况R中厮可能被自动禁止,这个特性提高了软件的平安性.详见P247“存储器编程”的箱迷.程序存储区的最低地址省为如位向此和中断向球.完整的向坡列表请参见P43”中Ie.列表也决定不同中新的优先级.向(It所在的地址越怔,优先级越高.时SET具有域高的优先雄,第二个为IMO-外部中断语求”通过双位MCv控制存放器(MC1.ICR)的IVSE1.,中断向M可以格至引导FIaSh的起始处.次程
3、再丝位Ba)TRSr也可以将亚位向Irt移至引导FmSh的起始处.具体誓见P2:M”支持引导装入探序-在。的同时可以i*K*M,Rea(HIhi1.eTriS)的自我城程能力.任一中断发生时全导中斯使能位I被济字,从而SS止了所有其他的中断.用户轨件可以在中断程序里置位I未实现中SiiK袋,此时所有的中新就可以中断当前的中断效劳程序,执行RCT1.指令后I自动置位.从根本上说仃两类型的中断.第一种田小件触发并置位中断标志.对这打中断.程序计数器跳转到.实际的中断向St以执行中断处理程序,同时硬件将去除相应的中断标志.中断标志也可以通过对其写”的方式来去除.当中新发生后,如果相应的中断使能位为-
4、Y.则中新惊苕位五位,并一I1.保持到中断执行,或并被软件去除。类似的,如里全局中断标志搜济零,划所*已发生的中断都不会被执行.直到1Kf.然而挂起的各个中断按中断优先皴依次执行.第二种类型的中断则是只要中Iii条件满足,就会一直触发.这些中断不需要中断标志.若中断条件在中断使能之航就消失了,中斯不会被忖发.AVR退Hi中断后总是网到主程序并至少执行一条指令才可以去执行其他被拄起的中断.瞿注意的是,进入中断效劳程序时状态存放舞不会自动保存,中断返何时也不金自动恢现.这些工作翅由用户通过轨件来完成.位用Cu指令来禁止中断时.中断禁止立即生效,没有中断可以在执行CU指令后发生,即使它是在执行CU指
5、令的同时发生的.下面的例子说明了如何在写EEPwW时使用这个指令未防止中In发生以防止对EKpWN内容的可能破坏,汇纲代岗例程inr1.6,SRHG:保存SHfiGC1.i:祭止中断sbiEECR,EEWE:启动EEPROM、操作sbiEECR1ECT1.ioutSREG1r1.:饿乂SRBG(1ft)C代码例程charcSREG:CSREG=SREG:/保存SREG/禁止中断”_C1.I():EECR=(1EE三):/*启动EEPRoMH操作*/EECRI=(i511.EEAR的初始值没行走义在访问EEpKoM之肝必须为其IKf正确的数根.EEPROM数据存故备-EEDR?Bits7.0-E
6、EDR7.0:EEPRoN数累对于EEIMn1.与操作,EEWI是需要写到EHAH单元的数粼:对于i操作EEDR是从地址EHA1.i读取的数据EEPROM冲闸存故;S-EECS?Bits7.4-Res:保存保存位.读操作返回值为W.?Bit3-EERJE:使能IniPRCM准招好中新若SREG的I为1.明JS位EERIE将依健EEpRQM准备好中断.清&EER1.E则禁止此中断.当EEXE清零时EBPRoM准箔好中断即可发生.?Bit2-EEMVE:口PRtM主机写使能EEWE决定了EEVE区位是否可以启动EEPRON、操作.当EEWHi为1时,在4个时钟刑期内息位EE1.fE将把案写入EEP
7、ROM的布定地此:若EBnEJj-O-,则像作EEvE不起作用.EB1.B置位后4个周期,段件对耳清零.EEPROM当过程中对EEE位的描述.?Bit1-EE*E:EEPROM与位悠EEWE为EEPRoM与操作的使能加8.VEEPRcWCHK和地址设置好之后,需置位E三E以便将数IK写入EEPRoM.此时EBME仍须置位,否则EEPRoM写操作物不会发生.写时序如下(第3步和第4步的次序并不如要):1 .等待EEtE位变为零2 .等待SPMCSR中的SPMEX位安为零3 .将狱的EEPWN地坟写人EEAR(可选)4 .将册的EK1.MioM数刷写入EEDR(可选)5 .对EECR存放器的E0WE写1”,同时沽写EEnE6 .在置位EDWE的4个附期内.双位EEXE在Cpt写F1.axh存储器的时帔不能时EEIMIM进行组I程.在居功EtTROM写操作之