《AVR教程系列一(12):ATmega16 简介(六).docx》由会员分享,可在线阅读,更多相关《AVR教程系列一(12):ATmega16 简介(六).docx(11页珍藏版)》请在优知文库上搜索。
1、ATmega1.6简介(六)ATnega1.6控制和状态存放器MCuCSRAVR梓刖和状态存故JS提供/仃关引起AVR红竹的夏付淑的伯息.?Bit4-JTRF:JTAG位标志通过JTAG指令AVKRESin可以使JTAG复位存放器?I收,并引发Ma或也,井使JTKF同位.上电红位将ItJtt消军,也可以通过写,0,来去除.?Bit3-f1.RF:希门狗/位标志才门利复位发生时置也上电复位彝使其清写,也可也18过写o来去除.?Bit2-BOJiF:评电检君复位标志拉电松测乂位发生时双位,上电复位将使其济学.也可以通过写“0,来去除.?Bit1-EXIRF:外部双位标志外部盟位发生时置位.Jt电复
2、位将使其沛格.也可以通过耳”(T来去除.?BitO-POHF:上电复位标志上电4位发生时贸位.只能通过写O-朱去除为了使用这些复位标忐来识别2位条件,用户应该尽早读取此存放擀的数1%然后将其女位.幻果在共他女位发生之前将此存放戕纭位,则府续乂位源可以通过检代乂位标志家了解,ATnega1.6基准电压使能信号和启动时间ATwgn1.6具仃片内能以牧法源,用于掉电检将,成衣是作为根报比孜睛或ADC的输入,ADC的2.56V4准电IE由此片内僮S(M准源产生.电压某准的启动时间可能出响其工作方式.旧功时阿列于Tnb】。16,为了降低功耗,可以控制选准源仅在如下情况觐开:1. BOD使僮(馅修位BoD
3、EN被编程)2. 他照坛准激连接到他拟比较SS(MSR存放戕的ACBG殿位)3. ADC使像因此,当BOO被禁止时,置位MHG或使能AOC后空店动用准源,为了降低拉电模式的功耗,用户可以禁止上述一二种条件,并在进入棹电极代之游关闭基准源.ATnega1.6看门狗定时器石门狗定时静由独立的IMhZ片内振荡密柴动。这是VCC-5V时的典型值谛卷见特性Ik据以了髀其他VCC电下下的电北旗,通过设况行门狗定时5的预分嫉然可以调节有门拊经位的时间间隔,如P4ITab1.e17所示.而门狗乂位指令NDR用来双位肝门狗定时器.It外,禁止用11物定时M或发生复位时定时多也械震位复位时间有8相爨如梁没有及时复
4、位定时器.H.时间赳过复位周期,ATnea1.6就复位,井执行旦位向京指向的程序,其体的百门狗发位时序在113有说明.为了防止无意之间桀止圻门狗定时潜.在看门狗禁用后必须嵬个特定的境改序列.详见看门狗定时SS柱M在故器.Figure21.看门狗定时器石门拘定时发控制存放港KDICRBit7654321dTab1.e17.看门狗定时加预分频器选项WDP2WDP1WDPOn狗榻in周期VCC=3.0V时典型的溢出周期VCC=5.0V时典奥的溢出周期00016K(16,384)17.1ms16.3ms00132K(32,768)34.3ms32.5ms01064K(65,53)685ms65ms01
5、1128K(131.072)0.14s0.13S100256K(262,144)0.27s0.26s101512K(524.288)0.55S0.52S1101.024K(1.048,576)1.1S1.0S1112.048K(2.097,152)22s21S下面的例子分别用汇编和C语言实现了大例VIy1.的操作。在此假定中断处于用户控制之下(比方禁止全局中断),因而在执行下面程序时中断不会发生。汇编代码例程*D,off::*DT复位WR:置位UDTCe和1.Einr1.6.VIyTeRoririft.(1WOTXM:)(IyI*:)outVPTCR1r1.6:关闭11Idiri.(0WDE)
6、outWiritR.r1.retC代码例程voidND1.off(VOid)(TOT复位/TOO;/置位DTOE和DE*/WDTCRI=(1.EXT闾2;IiM中断句量$026jnpTWOCOMP;定时器0比较中断向量S028jpSPMRDY:SPM就绪中断向量$024IihSKI:1.iir1.6,hiuhRAMKD):主程序S02BoutSpI1.E5:设置堆栈指针为RAN的顶部$02CIdir1.6.Iot(IUNEND)$02outSPt.r16$02Esci;使能中断$02FXXX当熔丝位MontSr未编程,Bt区为2K字节,且存放器G1.CR的IVSEI,置位时,典型的复位和中断设
7、置如下:地址符号代码说明$000RESET;Mir1.6,hih(RAMESD);主程序$001outSPII.r1.6:设置堆栈指针为RAM的顶部$002Idir1.6.1.w(R1VIENW$003outSP1.rI6004sei;使能中断$005xxx.orgSIC025)002j11pEXrIVTO:IRQO中断向量JJCO1.j11pEXTIWT1.:IRQ1.中断向量J1C28,i11pSPMRDY:SPM就绪中断向fit当熔丝位1三RST已编程,且区为2K字节时,典型的豆位和中断设置如下:地址符号代码说明.org$002$002jpEXT1X10;IRQO中断向f$001jwEX
8、T_1N11:IRQ1.中断向量$028j.pSPMRDY.SPM就绪中断向量*.orgS1.COOJ1.COORESET:Idir1.6,high(RAMEXA;主程.序J1.CO1.cutSM1.rie:设置堆栈指针为附I的顶部$1CO2Idir1.,Joir(KAMKM)$100311SP1.r1.6S1.COtsei:使能中断J1.COSxxx当熔丝位BnnTRsr已编程,Boot区为2K字节,且存放器GICR的IrSE1.置位时,典型的复位和中断设置加理地址符号代码说明.rgS1.COOS1000japRESET;Reset中断向量$1002j11pEXTIWro;IRQO中断向量S
9、1.COtJnpEXTWT1.:IRQ1.中断向员S)C28j11pSPMRDY:SPN就绪中断向量$1C2ARESET:Idir1.high(RAEND):主程序$1C2BoutSPH.r16;设置堆栈指针为RAM的顶部S1C2CIdir1.6.Iov(RAMEM)1C2DoutSP1.,r!6$1C2Esei;使能中断$1C2Fxxx在应用区和Boot区之间移动中断向量通用中断控制存放器决定中断向量表的放置地址通用中断控制存放淞一GICK?Bit1.-IVSE1.:中断向量选择当3为”时,中断向量位于FMSh存储器的起始地址:当WSE1.为】“时,中断向量转移到BoOt区的起始地址.实际的BoM区起始地址由熔丝位H(H心Z确定,具体请参考P支持引导装入程序在写的同时可以读(Rf,RendVhi1.eVri1.e)的自我编程能力