AVR1000XMEGA的C语言代码编写入门.docx

上传人:王** 文档编号:1630222 上传时间:2024-11-25 格式:DOCX 页数:21 大小:107.71KB
下载 相关 举报
AVR1000XMEGA的C语言代码编写入门.docx_第1页
第1页 / 共21页
AVR1000XMEGA的C语言代码编写入门.docx_第2页
第2页 / 共21页
AVR1000XMEGA的C语言代码编写入门.docx_第3页
第3页 / 共21页
AVR1000XMEGA的C语言代码编写入门.docx_第4页
第4页 / 共21页
AVR1000XMEGA的C语言代码编写入门.docx_第5页
第5页 / 共21页
AVR1000XMEGA的C语言代码编写入门.docx_第6页
第6页 / 共21页
AVR1000XMEGA的C语言代码编写入门.docx_第7页
第7页 / 共21页
AVR1000XMEGA的C语言代码编写入门.docx_第8页
第8页 / 共21页
AVR1000XMEGA的C语言代码编写入门.docx_第9页
第9页 / 共21页
AVR1000XMEGA的C语言代码编写入门.docx_第10页
第10页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《AVR1000XMEGA的C语言代码编写入门.docx》由会员分享,可在线阅读,更多相关《AVR1000XMEGA的C语言代码编写入门.docx(21页珍藏版)》请在优知文库上搜索。

1、8-bit8位Microcontro1.1ers微处理器App1.icationNote应用注释AVR1000:GettingStartedWritingC-codeforXMEGAAVR1000:XMEGA的C语言代码编写入门Features特点:NaaingconventionsRegisterDeae8存放名-BitDMM位名,C-COdenaaesC-ft码名Bitandgroupaariu位与融舞科GroupCoafi1.UrBt100auks,Method*foraccMincregister*访问存放,的方法,Methodsforwritingreusab1.eKdu1.efun

2、ctions可层次使用横映功俺的写入方法1Introduction引言ShortdevcIojmcnttinesandhighqua1.ityrcquircmcn1.sone1.ectronicproductshasmadehigh-1.eve1.rogramingIa11Raesarequirement.Thenainreasonisthat1.1.ih1.eve1.1.anguagesnakeiteasiertomaintainandreusecodeduetobetterportabi1.ityandreadabi1.ity.由于电子产品的开发时间短,质/要求高,因此需要高层次的编程语言

3、。最主要的原因是,高级语言具有更好的可移植性和可读性,使其更易于维护和理更使用代码.Thechoiceofprogra11ming1.anguagea1.onedoesnotensurehighreadabiIityandreusabi1.ity;goodcodingsty1.edoes.ThereforetheXMEGwperiphera1.s,headerfi1.esanddriversaredesignedwiththisinmind.编程语言的选择本身并非是能神保具有较高的可读性和可用会使用性的唯一条件,还必须有良好的涮码风格。因此XMEGAn的外围设备头文件和驱动程序的设计都是基干这

4、方面考虑的.Themostwide1.yusedhih1.eve1.1.anguageforAVR*microcontro1.1.ersisCandthisapp1.icationnotethereforefocusesonCprogrurnning.TosupportmostoftheAVRCCOnPi1.OrSthatareavai1.ab1.ethecodeexamp1.esareasfaraspossib1.ewritteninANSIC.Afewexa11p1.esarespecificto1KIinbeddedWorkbench,buttheideasandmethodscanbe

5、usedforotherCOmPi1.erSwithminorchanges.IARspecificexanp1.esarec1.ear1.yarkt*d.VRK微控制使用的最广泛的高级谙音就是C语音,因此本应用注释的型点是C谙吉娟程.为了支持大多数可用的AYRC语古摘译器,我们尽可能把代码例如编写在ANSIC语吉的标准中.有些例子是IREmbeddedWorkbench专用的,但其思路和方法可用于与其他变化不大的编译器,IAR专用的例如都有清晰的标示。2 XMEGAModu1.esXMEGA模块AnAVRXMHGAisconposedofsevera1.buiIdingb1.ocks:AnA

6、VRCPUcore,SRAM.F1.ash,EEPROMRndanuherofperiphera1.rr)du1.es.Thesebui1.dingb1.ocksareca1.1.ed“nodu1.etypes*.AnXMEGAcanhaveoneorrureinstancesofagivennodu1.etype.A1.1.instcincesofamodu1.etypehavethesamefeaturesandfunctions.一个VRXMIG由数个结构块组成:一个AYRCHJ芯片,一个SRAM,一个闪存,一个EKPROM以及若干外设模块:这些结构块被称为“模块类里”,XMEGA可以有

7、一个或多个给定模块类型的实例。一个模块类型的所有实例都具有相同的特性和功能,Sonenodu1.etypescanbeasubsetofOthermodu1.etypes.Theseinheritasubsetofthefeatures(andregisters)ofthesupertype,a1.1.inheritedfeaturesarefu1.1.ycompatib1.e.Thisapp1.iestoe.g.timersand10ports.Thesubsetofanodu1.e?typecanfora1.inermeanthatithasfewerconpareandcapturech

8、anne1.sthanafu1.1.titternodu1.e.SiiiiIar1.y,anIOportnayhave1.essthaneightpins.有些模块类型可以是其他模块类型的子集.这些(模块类型)继承了特大模块类型的某个子集的特征(和存放器).其继承的所有特征都完全婉容.这适用于比方计时器和IO端门.用于计时器的模块类型的子集可能意味若它所能得到的比较和捕获通道比完整的计时器模块的要少。同样,一个IO端口的管脚可能缺乏八个,Amodu1.etypecanbea*USART*,whi1.eIhCmodu1.einstanceise.g.,USARTCO*,wheretheCO*su

9、ffixindicatestheinstanceisuUSARTnunber0oinstances,registersandbits.图21.模块类型.实例.存放器和位Eachnodu1.ehasafixedbaseaddressinthe10memorymapanda1.1.registerscontainedinthemodu1.ehavefixedoffsetaddressesre1.ativetothemodu1.ebaseaddress.ThisWdyeachregisterwi1.1.noton1.yhaveanabso1.uteaddressintheIOmcnoryspace,

10、buta1.soare1.ativeaddressdefinedbyitsoffset.Theregisteroffsetaddressesareequa1.fora1.1.instancesofa11xdu1.etype,simp1.ifyingthetaskofwritingdriversthatcanbeusedfora1.1IIadU1.eSofaspecifictype.在IO内存图里,每个模块都有一个固定的基础地址,并且该模块中的所有存放器都有固定的偏移地址(这是相对于模块的基地址而言).如此这样,每个存放湍不仅会在IO内存空间有一个绝对地址,而且还有一个根据其偏移收定义的相对地址

11、.一个模块类型的所有实例中的存放器偏移地址都是平等的,这样就简化了编写能够适用于某个特定类里的所有模块的胭动程序的任务。2.1 RegisterNaaingConvention2.1. 存放器命名约定Registerarerough1.yspeakingdividedintocontro1.,statusanddataregistersandthenaningofregistersref1.ectIhisAgenera!-purposecontro1.registerofthenodu1.eisnamedCTR1.Ifmu1.tip1.egenera!-purposecontro1.regis

12、tersexistsinamodu1.etheyhaveasuffixcharacter.Inthiscasethecontro1.registerswou1.dbenamedCR1.CTK1.B,CTR1.Candsoon.Thisa1.soHpP1.iQStoSTATUSregisters.大致说来,存放器有控制存放器、状态行放涔和数据存放器之分,这从存放器的命名就Ur看出。模块的一个通用的控制存放器被命名为CTR1.如栗在一个模块中存在多个通用控制存放洪他们都有一个后缀字符.在这种情况下,控制存放器将被命名为CnnA、CTR1.B,CTR1.C等,这方法也适用于状态存放器.Forregi

13、stersthathaveaSPeeifiCfunctionthenameref1.ectsthisfunctiona1.ity.Forexamp1.e,acontro1.registerthatcontro1.stheinterrupt1.eve1.ofamodu1.eisnaedINTeTR1.-对于具有特定功能的的存放器,它们的命名会反映其功能性.例如,一个拄制存放洪拄制一个模块的中断级别.它就被命名为IOtCTR1.SincetheAVRdatabuswidthis8bit.1.argerregistersareInp1.eiientedusingsevera1.8-bitregist

14、ers.Fora16-bitregister,thehighHnd1.owbytesareaccessedbyappending*H*and-1/respective1.ytotheregisternano.Forexar11p1.ethe16bitTimerZCountercountreisterisnamedCNT.ThetwobytesarenanedCNT1.andCNTI1.由于AVR的数据总践宽度为8位,较大的存放器得使用几个8位存放器才能生效,时于一个16位存放器,要访问其高8位元姐和低8位元H1.得在这个存放器的命名上分别附加-和“I。例如,16位计时器/计数落的计数存放器被命名为CM.其两个8位元组就被命名为CNT1.和CNTH.I-oraregister1.argerthan16bit,thebytesarenumberedfromthe1.eastsignifica

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

当前位置:首页 > 论文 > 通讯论文

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!