欢迎来到优知文库! | 帮助中心 分享价值,成长自我!
优知文库
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 优知文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

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

    • 资源ID:1630222       资源大小:107.71KB        全文页数:21页
    • 资源格式: DOCX        下载积分:7金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录
    二维码
    扫码关注公众号登录
    下载资源需要7金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    8-bit8位Microcontro1.1ers微处理器App1.icationNote应用注释AVR1000:GettingStartedWritingC-codeforXMEGAAVR1000:XMEGA的C语言代码编写入门Features特点:NaaingconventionsRegisterDeae8存放名-BitDMM位名,C-COdenaaesC-ft码名Bitandgroupaariu位与融舞科GroupCoafi1.UrBt100auks,Method*foraccMincregister*访问存放,的方法,Methodsforwritingreusab1.eKdu1.efunctions可层次使用横映功俺的写入方法1Introduction引言ShortdevcIojmcnttinesandhighqua1.ityrcquircmcn1.sone1.ectronicproductshasmadehigh-1.eve1.rogramingIa11Raesarequirement.Thenainreasonisthat1.1.ih1.eve1.1.anguagesnakeiteasiertomaintainandreusecodeduetobetterportabi1.ityandreadabi1.ity.由于电子产品的开发时间短,质/要求高,因此需要高层次的编程语言。最主要的原因是,高级语言具有更好的可移植性和可读性,使其更易于维护和理更使用代码.Thechoiceofprogra11ming1.anguagea1.onedoesnotensurehighreadabiIityandreusabi1.ity;goodcodingsty1.edoes.ThereforetheXMEGwperiphera1.s,headerfi1.esanddriversaredesignedwiththisinmind.编程语言的选择本身并非是能神保具有较高的可读性和可用会使用性的唯一条件,还必须有良好的涮码风格。因此XMEGAn的外围设备头文件和驱动程序的设计都是基干这方面考虑的.Themostwide1.yusedhih1.eve1.1.anguageforAVR*microcontro1.1.ersisC>andthisapp1.icationnotethereforefocusesonCprogrurnning.TosupportmostoftheAVRCCOnPi1.OrSthatareavai1.ab1.e>thecodeexamp1.esareasfaraspossib1.ewritteninANSIC.Afewexa11p1.esarespecificto1KIinbeddedWorkbench,buttheideasandmethodscanbeusedforotherCOmPi1.erSwithminorchanges.IARspecificexanp1.esarec1.ear1.yarkt*d.VRK微控制使用的最广泛的高级谙音就是C语音,因此本应用注释的型点是C谙吉娟程.为了支持大多数可用的AYRC语古摘译器,我们尽可能把代码例如编写在ANSIC语吉的标准中.有些例子是IREmbeddedWorkbench'专用的,但其思路和方法可用于与其他变化不大的编译器,IAR专用的例如都有清晰的标示。2 XMEGAModu1.esXMEGA模块AnAVRXMHGAisconposedofsevera1.buiIdingb1.ocks:AnAVRCPUcore,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可以有一个或多个给定模块类型的实例。一个模块类型的所有实例都具有相同的特性和功能,Sonenodu1.etypescanbeasubsetofOthermodu1.etypes.Theseinheritasubsetofthefeatures(andregisters)ofthesupertype,a1.1.inheritedfeaturesarefu1.1.ycompatib1.e.Thisapp1.iestoe.g.timersand10ports.Thesubsetofanodu1.e?typecanfora1.inermeanthatithasfewerconpareandcapturechanne1.sthanafu1.1.titternodu1.e.SiiiiIar1.y,anIOportnayhave1.essthaneightpins.有些模块类型可以是其他模块类型的子集.这些(模块类型)继承了特大模块类型的某个子集的特征(和存放器).其继承的所有特征都完全婉容.这适用于比方计时器和IO端门.用于计时器的模块类型的子集可能意味若它所能得到的比较和捕获通道比完整的计时器模块的要少。同样,一个IO端口的管脚可能缺乏八个,Amodu1.etypecanbea'*USART*,whi1.eIhCmodu1.einstanceise.g.',USARTCO*,wherethe"CO*suffixindicatestheinstanceisuUSARTnunber0o<portC*.Forsimp1.icity,amodu1.einstancewi1.1.bereferredtoasamodu1.eIhroURhOUtthisdocunent.un1.essthereisaneedtodifferentiate.一个模块类型可以是“USART"的,如果这个模块实例比方是“USARTCO”,其中的“CO”后缀表示这个实例是“培口C上的ISART编号为0”.为了简单起见,一个模块实例将被称为这整个文件中的一个模块,除非是有必要另作区分.Eachmodu1.ehasanuberofregistersthatcontaincontro1.orstatusbits.A1.1modu1.esofagiventypecontainthesameset(orsubset)ofregisters,anda1.1.theseregisterscontainthesaneset(orsubset)ofcontro1.andstatusbits.郁个模块都仃若干存放,这些存放器都包含控制位或状态位.一个给定类型的所有模块都包含相同的存放器集合(或子集),并且所有这些存放器包含相同的控制位利状态位的集合(或子集).Figure2-1.Modu1etypes>instances,registersandbits.图21.模块类型.实例.存放器和位Eachnodu1.ehasafixedbaseaddressinthe10memorymapanda1.1.registerscontainedinthemodu1.ehavefixedoffsetaddressesre1.ativetothemodu1.ebaseaddress.ThisWdyeachregisterwi1.1.noton1.yhaveanabso1.uteaddressintheIOmcnoryspace,buta1.soare1.ativeaddressdefinedbyitsoffset.Theregisteroffsetaddressesareequa1.fora1.1.instancesofa11x>du1.etype,simp1.ifyingthetaskofwritingdriversthatcanbeusedfora1.1IIadU1.eSofaspecifictype.在IO内存图里,每个模块都有一个固定的基础地址,并且该模块中的所有存放器都有固定的偏移地址(这是相对于模块的基地址而言).如此这样,每个存放湍不仅会在IO内存空间有一个绝对地址,而且还有一个根据其偏移收定义的相对地址.一个模块类型的所有实例中的存放器偏移地址都是平等的,这样就简化了编写能够适用于某个特定类里的所有模块的胭动程序的任务。2.1 RegisterNaaingConvention2.1. 存放器命名约定Registerarerough1.yspeakingdividedintocontro1.,statusanddataregistersandthenaningofregistersref1.ectIhisAgenera!-purposecontro1.registerofthenodu1.eisnamedCTR1.Ifmu1.tip1.egenera!-purposecontro1.registersexistsinamodu1.etheyhaveasuffixcharacter.Inthiscasethecontro1.registerswou1.dbenamedCR1.CTK1.B,CTR1.Candsoon.Thisa1.soHpP1.iQStoSTATUSregisters.大致说来,存放器有控制存放器、状态行放涔和数据存放器之分,这从存放器的命名就Ur看出。模块的一个通用的控制存放器被命名为CTR1.如栗在一个模块中存在多个通用控制存放洪他们都有一个后缀字符.在这种情况下,控制存放器将被命名为CnnA、CTR1.B,CTR1.C等,这方法也适用于状态存放器.ForregistersthathaveaSPeeifiCfunctionthenameref1.ectsthisfunctiona1.ity.Forexamp1.e,acontro1.registerthatcontro1.stheinterrupt1.eve1.ofamodu1.eisnaedINTeTR1.-对于具有特定功能的的存放器,它们的命名会反映其功能性.例如,一个拄制存放洪拄制一个模块的中断级别.它就被命名为IOtCTR1.SincetheAVRdatabuswidthis8bit.1.argerregistersareInp1.eiientedusingsevera1.8-bitregisters.Fora16-bitregister,thehighHnd1.owbytesareaccessedbyappending*H*and-1/respective1.ytotheregisternano.Forexar11p1.e>the16bitTimerZCountercountreisterisnamedCNT.ThetwobytesarenanedCNT1.andCNTI1.由于AVR的数据总践宽度为8位,较大的存放器得使用几个8位存放器才能生效,时于一个16位存放器,要访问其高8位元姐和低8位元H1.得在这个存放器的命名上分别附加-和“I。例如,16位计时器/计数落的计数存放器被命名为CM.其两个8位元组就被命名为CNT1.和CNTH.I-oraregister1.argerthan16bit,thebytesarenumberedfromthe1.eastsignifica

    注意事项

    本文(AVR1000XMEGA的C语言代码编写入门.docx)为本站会员(王**)主动上传,优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知优知文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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

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

    收起
    展开