AVR教程系列一(8):ATmega16 简介(三).docx

上传人:夺命阿水 文档编号:1678013 上传时间:2024-11-24 格式:DOCX 页数:9 大小:47.04KB
返回 下载 相关 举报
AVR教程系列一(8):ATmega16 简介(三).docx_第1页
第1页 / 共9页
AVR教程系列一(8):ATmega16 简介(三).docx_第2页
第2页 / 共9页
AVR教程系列一(8):ATmega16 简介(三).docx_第3页
第3页 / 共9页
AVR教程系列一(8):ATmega16 简介(三).docx_第4页
第4页 / 共9页
AVR教程系列一(8):ATmega16 简介(三).docx_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《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存放器的E0W

8、E写1”,同时沽写EEnE6 .在置位EDWE的4个附期内.双位EEXE在Cpt写F1.axh存储器的时帔不能时EEIMIM进行组I程.在居功EtTROM写操作之前软件必须检代F1.Uh写操作是否已炫完成步骤(2)仅在软件包含弓I导程序并允许C叩对FIaSh进行Si%时才芍用。如果CPV永远都不会与F1.aSh,步印(2可由电请卷见P234”支持引导装入程庠-在写的同时可以注(限%RgdfhiIe-IfritQ的自我设程像力”.注点:如果花步骡5和6之如发生了中断,可I1.作将失败,因为此时EEPRoM耳使能雄作将超时.如JK一个操作EEPWN的中断打断了另一个EEPRoM操作.EEAR或EE

9、UR存放岩可能核修改,引起即RoM操作失氏建议此时关闭全局中新标忐】.经过写访问时间之府.EEXE硬件清零.用户可以凭借这位判断”时序是否已经完成.ECTEKfiJfi.CPI:要惇止四个时钟周期才会运行下务指令.?Bit0-EERE:EIiPRCIM读使便EERE为EEraaM诙操作的使能信号.当EEPROM地址设置好之后.需WREERE以便将依据注入EEAR.EEPROM故M的掰取只甯要袈指令.且无新等待.读取EEPRCM后CP1.要停止4个时钟IM期才可以执行下一条指令.M户在读取EEpRa1.时应该检测优E0如果一个写操作正在进行,就无法读取EEI*11M,也无法改变存放擀EEftR.

10、经过校准的片内捺带用于EEPROM定时.Tab1.e1为Cpi1.访何EEPROM的典型时间.F面的代码分别用工编和C就数说明如何实现EEPRnM的写操作.在此催设中断不会在执行这些函数的过程当中发生同时还假设软件没有Ba)I1.oader若由。I1.oader存在,则EH1.RoN”由数还塞妥需恃正在运行的SW命令的结束”近编代内例程EEPROM-Vrite:等待上一次与操作结束sbicEECR.EEWErjnpmW1writ;设况地址存放器(r1.8:r1.7)outEEARI1.r1.8outEEAR1.r1.7;轿数据写入数据存放器(r1.6)outEtPR,r!6:KfttI-EMW

11、EsbiEEOtEEWAE;五位KEVE以后动写操作sbiEBdtEEVEretC代用例程voidI*1HI,IK)Mwritc(unsignedintuiAddrrxs.unxignadcharurDntn)(*等待上次写操作结束*/vhiIe(EECRt(1.EEW)*/设置地址和数据存放婚”EEAR=UiAddress:EEDR=ucDtita:WKfEEwM:/EECRI=KEE三);2巴位EEIrE以启动操作”EECRI=1EEIE):下面的例子说明如何用汇埼和C由数来读取EKPRaM,在此假设中断不会在执行这些南t的过程当中发生.近编代内例程EEPRO1.1.read:等待上一次与

12、操作结束sbicEECR.EEWErjnpIOiPWMread;设况地址存放器(r1.8:r1.7)outEEARI1.r1.8outEEAR1.r1.7:设NEERE以H动波掇作sbiEKR1EERE:自如K存放JS读取数维inr16.EEDRretC代秘例印unsignedcharEI-J1RONread(unsignediniuiAddress)(等待上一次写拨作结束*/UhiIZEECR*(IEEXE)/设置地址存放器*/EEftR=UiAddress;/S1.EERE以启动读正作*/EECRI=iEERE);/自数第存放器返网数据*/returnEEDR:在押电休眠模式下的KHWM写

13、掾作若程序执行绰电指令时EEPROM的”操作正在进行.EEPROM的”悌作相继续,并在指定的访何时间之前完成.但写换作结束后.探苗器还将继续运行.单片机并拿处丁克仝的掉电模式.因此在执行掉电指令之前应结束EEPROM的巧操作.防止EEPRoM数据丧失若电源电垢过低,CP1.和EEPROM有可能工作不正常.造成EEPRON依据的我坏(丧失).这种情况在使用独立的EEPROM器件时也会泄到.因而需要使用相同的保护方案.由于电压过低造成EEPROM数幅损坏“两舛可能I火电压低于EEPROM写操作所需要的Ai低电;二是CKA号已经无法正常工作.KEPKOW数据桢坏的何Ia可以通过以下方法帆决:当电IK

14、过低时保持AVRRESET信号为低,这可以通过使能芯片的掉电检冽电路BOD来实现.1!JWD电无法满足要求则可以使阳外部北位电路.若“操作过程当中发生了女位,只要:电压足够5.”操作仍将正常结束.ATnega1.6I/O存储器AT1.wXa16所有的I/O及外设筮被放置I/O空间.所有的1/0位置都可以通过IN与如指令来访何.在32个通用工作存放器和I/O之向传输数第”堆址为DXw-OXIFW1/0存放器还可用SB1.和CB1.指令巴接进行位寻址,而SB1.S和SHIC则用来拴伤某一位的值.更多内容请咨见指令象,使用IN和QIT指令时地址必须在0x000x3F之间,如果要象SRNTf通过1.D

15、和STffi今访问I/O在放拓.相展的地址要加上0x20.为了与后桂产品兼容,保存未用的未应写”(T,而保存的I/O存放器则不应进行写操作,W状态标志位的去除足通过。】来实现的.要注意的是.与其他大多数AVR不同.CBI和SB1.指令只能对某些特定的它进行撵作.因而可以用丁包含这包状志标志的存放器.81与SB1.指令只对OXOoOx1.F的存故器仃效.I/O和外设控制存故洪在B线其他章节进行介绍.Tab1.e1.EEPRoM煽程时间符号校准的RC提蔼0周期数典型的靖程时间EEPROM写徵作(CPU)84488.5msNote:1.使用时钟冢率为1MHz,不倚/CKSE1.珞纹位的设II。B*7854321OEECR*/WRRRRRZWfVWRTfVRW初均值OOOOOOXOBrt6543210jMSB1.SBIEEDR/EMVRWRMtiRRRW初M1.OOOOOOOOBit_15_14131211109_8_一-EEARHIEEAR7EEARGEEAR5EEAR4EEAR3EEAR2EEARIEEAR1.654321/wRRRRRRRRWRWWR/WRWRVR/WRMRM初站值

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号