ARM9报告-基于ARM9的数据采集应用程序设计_第1页
ARM9报告-基于ARM9的数据采集应用程序设计_第2页
ARM9报告-基于ARM9的数据采集应用程序设计_第3页
ARM9报告-基于ARM9的数据采集应用程序设计_第4页
ARM9报告-基于ARM9的数据采集应用程序设计_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第1章需求分析1.1 实验设计题目基于ARM9勺数据采集应用程序设计。1.2 设计目的巩固、实践本课程所学理论知识,由于这门课程是理论与实践相结合且实践性很强的课程,该课程的学习目标是培养学生嵌入式开发的基本能力,通过实验设计培养学生查阅、合理运用参考资料的能力。1.3 设计任务及要求1.3.1 设计任务通过S3c2410X(ARM9的ADC采集实验箱电位器的值,旋转电位器时可在屏幕上看到当前采集值的变化。实验箱有三个电位器,学生可自选一个或多个。可增功能:(1)中断功能:按下中断按键触发中断,中断时三个LED灯闪烁一次,且屏幕上打印正在中断的提示。(2)报警功能:设定一个临界值(如500),

2、当采集的值超过此临界值时,灯闪烁报警,三个电位器可与三个灯一一对应。、1.3.2报告要求(1) 实现的功能(2) 软硬件平台(3) 硬件原理分析及原理图(4) 硬件驱动的实现步骤及分析(5) 代码设计:所有需要编写的代码(如adc.c、adc.h、main.c、Makefile等)、代码的注释。(6) 运行及调试的步骤(7) 心得体会1.4实验平台硬件平台:博创经典UP-NETARM241或验箱(S3c2410处理器)。软件平台:eclipse+keil+PUTTY(串口调试助手)。第2章实验分析2.1 硬件原理在ADC章中相应的硬件原理图截图如下:图1硬件原理图2.2 设计原理由硬件原理图可

3、知AD和DA转化与AIN0,AIN1,AIN2三个引脚有关,在gpio一章中查找可知这三个引脚均不是多功能引脚。在AD和DA转化时也不需要用到时钟信号。A/D转换器是模拟信号和CPU之间联系的接口,它将连续变化的模拟信号转换为数字信号,以供计算机和数字系统进行分析、处理、存储、控制和显示。在编写驱动是可以通过查找数据手册。2.3 选择通道通过底板AD-DA-CAN可知三个ADC电位器对应AINO2,所以选择通道2。ADCCON53=010;ADCCON&=(0x73);ADCCON|=0x14;2.4 时钟配置与分频ADC$制寄存器(ADCCQN地址为0x58000000。ADC(Slouch

4、Screen)115ControlPCLKintoADCblock.0=Disable,1=Enable1图2ADC控制寄存器图时钟配置,CLKCON15=0b1,表示使能CLKCON|=0x115;时钟分频:市5CVL1136JAllconvprtArprescalervM汜Datavalue:1255Motethat枷国nfaclorisiN-r)wlienthepnescalefvalueisN.NOTE:ADCfrequencyshouldbesetIc&sthanPCLKby6(Ex.PCLK-10MHz,ADCFrequency/2MH/GxFFA/D转换器当预定标器值N,预定数据

5、值是(N+1),初始状态是0XFFADCCON14=0b1,ADCCON13:6=0xFF;ADCCON|=0x114;ADCCON|=0xFF6;2.5 选择模式(如图2-3)STDBM2Standbymadeselect,10-Normaloperationinode1二Stardbymode图4选择模式图模式选择:选择正常模式ADCCON2=0;ADCCON&=(0x12);2.6 设置启动设置启动AD转换的方式:读启动ADCCON&=(0x11);启动AD转换ADCCON|=0X1;2.7 实现功能判断采样转换完成以及读取while(!(ADCCON&(1ebkI口n夕.0-RE1纥e

6、IFprm?e-w-s1erf用5n-ooirwoEmdPRSCEN1*VOCCM1Mieta-rLBSWlliWeTKBbfe06注匕。1-EnatiSeiRRSCVLAjDpkssiuaiArwialuiA.口#eiMlmi.1-登融dOEAUWIdntfiiioniLacHSiAKH-1)iwr-ura2i.Z.HOTfc-AtlGiTAQUPEC/B-llOU*ldlgBrttoEbitryJtlrnB.=4EnRCLX.ICIMHe.AIKQmFFSSLMLIK1631A110irtpuiOCK3-AIMQoai川*i-AIMZgi1,AIN“1WJ工AIW41Q1*AIN&150,

7、AIN昨111-典m70STDBiM闭31KltNkMTnHilopemllonmcMfe1,SltindtiyTiode1阳2二START1|A/D8ngi3453通行FodL0-.DwsbisetaFlh,road口penHgn1-Ervabrifi*3iltsytQE_ZA&LJSTART(0)Gonvts-rBlGjnv-Carts;Es-oianf)Ifilntrit.IfRFAD_START巾叫卜出口式而gw*itrui*bopAfiatjcai-i1wA/DQGfirxinabartAantsEheitunhs0(VP=Ertemalwkagci)1nYPONoulpulis-1

8、(Yl5由connedwithAiM5i.1XMi_SEN向匕cioutpuivaijeorXMON0*XKlOhQUtpULla0(XMHkZJ.1=XMQHwlpulIE1XM=GNQioXF_$ENHl部nifiGrwu4丽lnq面rffiiPOJ0rtXPOTJOLrffaLi|WIXP-ExLerriaJ1MPCMndbputkft1(XPA&cahnMtedwflhA1N7UlVEULJ产同PulO-upMiluhenable.0工XPenable1xppai-up日证ehei1AUTQ_PaTPMtGEAlmlyMJiquanDmgconmrkriofKipoastionnnd拿

9、二晔,幅on。事NormalACconvraiqo1=Aufci(SequeniQiiX/PosdxnGonwersioinModeXY_PSTsMsnusirrefi&jremenlofK-;poJlkncrVpositon00NaoptiPiidJanmode01KgBrtlMmMMJWnfK10 =V-pogiiionmBacummerrl11 -MdEilmg1orlintemjcCModoWOFElinAuksmcnlw,ADCTSCregate#iiouldbe-e-oxljfiguredbefcreread口ziefaLion.图6ADC触摸屏控制寄存器图ADC启动延时寄存器(A

10、DCDLY):ADCSTARTDELAY(ADCDLTlREGISTERRcgiSftrRMDescriptionAC-CDLYMSBOOOOOgFbWADCorin*.如Kay5杳应DnOOffADCDLYBit口Men曲wlntnal8ltELAY11501ijNwmiQ)nweranMode.物仲“审pmjmCwite博mModerhMAgio(Sequant.nlX/PoflltinmCor.gMi松曲hX/YPmAdfiCcnveninAlayValue21WailingifbrIrwruptModMienStylusdownoccurain聊art1叫lwInlemjptModet

11、trtsr&gWferIrrierruSignaljlNT_TC)MmHaifhmkrAu10JCffRosigcngMrsMNOTE:Dgnetuw加v砥醇(OcQQOOlowr图7DC启动延时寄存器图ADC专换数据寄存器(ADCDAT0)如下:ADCC0NYEH3ICNUATAAtKbATO)RLGk1tFRtglMtrAddmiRWVtlMADGDATOOmaBOOOOQCRADGcscnwrwrajS,同峰业ADCtMTDaa口0时诃的lnMJa.1期很UPDOWN|1G|UporWgmngUy礴mjprMod4RcwmkIImo)RawedYPDAT*僧叼Y-pwUunGOrvmSU

12、uDatavfliue:0-3FF-图9ADC转换数据寄存器2.9 相关寄存器定义AHDconverterADCCON。蜷gg欢Q4-wFVWADCConvnlADCTSC0点B30OD4ADCTouchScreenConrtiolAUGDLVUxStWWJHADCSlktwInternalLJekJyADCDTOX5800000CRADCCorheiTion匚示总ADCDAT1IUxSBOOOOIOADCConversion口源已图10相关寄存器定义ADC虫摸屏控制寄存器(ADCTSC地址为0x58000004ADCB动延时寄存器(ADCDLY)地址为 0x58000008ADC专换数据寄存

13、器(ADCDAT0)地址为 0X5800000CADC专换数据寄存器(ADCDAT1)地址为 0x58000010时钟寄存器(CLKCON地址为0X4C00000C2.10 查数据手册根据底板确定与AIN0有关在gpio中查找AIN0查找结果如下图:P52SSCLKJGPE1T2Q6/GPD8U16AJNUP6SDCUD/GPFnT3VQ7flfGPDl3LJ17AIU2P7SDDT2/GPE9T4VD22/PSS1CPD14一图11在gpio中查找AIN0查找结果图第三章实验步骤以及相关程序设计3.1 eclipse工程运行步骤3.1.1 启动串口调试首先连接串口线,一端连实验箱的RS232

14、-0,另一端连电脑主机的串口。双击桌面的出现下图界面:图12双击后的界面图选中Serial ,如下图所示:将“9600”改为“115200”,如下图所示:图14将“9600”改为“115200”后的界面图点击左边树形列表中的“Serial图15点击左边树形列表中的“Serial”后的界面图将右边最后一项改为“None:点击Open”按钮,出现如下串口调试界面:1?日立lj1-iiTTV1|W痴图17出现如下串口调试界面的界面图拨动实验箱电源开关,若串口调试界面中有如下显示,表示串口通了,配置好了:CDIJ-PnTTT-|X|VIVIver-icii0.141nyjd&lKZ4LLhn3tlIo

15、czaJ_d!UiHla_LxL:iGqu匚version2.9Sa22CDQD51Cfx*lH疸启自世世耳包二口=to.1.4wel19CST2(17Hmiltablta3addiresj*-g33Mle。0HSucc-edMarxmhHANDdevicc:MnnufactUTeID:OireCjChriID;g76(SamffQ-ngR-9D12C0VOHJ,CuLll-ln-QZfQLLn-a3口amaVivipaj.-uecz:3.口廿七TeH3UJL工Vl-Jlpa二dn匚工当.firwiDttyoooEtfieratCoBTr*llerHPressReturnto讨thT-THUV

16、cmiw,4nyothr*0了forvivicvikhspmtheip图18拨动实验箱电源开关的界面图按电脑键盘的任意键,光标停在vivi处,等待eclipse程序运行。3.1.2 启动H-JTAG先确定实验箱电源打开,并口线连接好,然后单击“开始-所有程序-H-JTAG-H-JTAG”,可以自动检测到CPU型,如下:3.1.3 运行Eclipse工程以及编写相关程序创建Eclipse工程,双击桌面的eclipse。图20双击后的界面图选择工作空间(存放源代码及工程文件的地方),点击OK按钮,打开如下界面:图21选择工作空间的界面图进入主界面后,单击File-New-CProject菜单项,E

17、clipse将打开一个标准对话框,输入project_s3c2410(希望新建工程的名字)单击Finish即可创建一个新的工程,建议对每个新建工程使用才立的文件夹。创建Keil工程,点击如下菜单:C/CJ-4lerVs+;11-+.s-Eclipjre-ax|Fill工也tSpjwflifm-zrTEnt门*北gbrjiKi叫弼Ylaiif陋0xwttrenn-nr匚MErl/目r;HCm4:Trflject出CjC-H-1:U:M吨3start.9hd_iviM.b6led3”SdidsledTTpcA6iinixtrvfznr帆flIhdivjf&jnlIthrfsle,42打向IULMJ

18、;二BR1_hdklm/1中,rEmtiiS口M-.-r卜|$Tt-nrt52如以Wf国DinibOiL,抑胪:1,M附由jghAlShtfl+aQ仃口同iMwJwd。强W田机即i砧面yUVl=3ECIkl-pAltiShkll+lVPjtrwitUpdate司131ML门阳轨匕进入如下界面:_,_三-JI-L隹式3ff71小央:HC=EXd图22F=MTiffionProjectpVtsioiiProjectGeneratorThiswizardcratts/upiatestPVisiomLprojectAdditioCcompilerciptiom0Launch-*-1sionprojec

19、tonFinishC&nctl点击Next按钮,如下图图24点击Next按钮的界面图选择S3c2410A设备,点击Finish按钮,这时会打开keil软件,关闭keil工程。添加文件到工程。拷贝老师发的工程文件夹“project_s3c2410空”中的所有内容到D:eclipse_projects_cygproject_s3c2410工程目录下,在Eclipse软件下,按F5刷新ctrl+s 保存,按ctrl+b 编译工程目录,再按照上课讲的新建文件夹和文件,添加程序,按工程。调试工程,点击下图菜单:右键单击,下面红颜色部分:图26右键单击的界面图出现如下菜单:点击New菜单,出现如下界面:图

20、28点击New菜单后的界面图点击Browse.,出现下面界面:选中led,点击OK按钮,出现如下界面:图30选中led点击OK按钮的界面图点击Browse.,出现下面界面:图31点击Browse.后的界面图选中led.uvproj,然后点击。侬钮,出现如下界面:口!?”:r-nFii.511at甚匚FJlFErraainagerHmdnvnrciinfirjyratbpi5Llg*图32选中led.uvproj的界面图点击TargetOptions按钮,出现如下界面:图33点击TargetOptions按钮的界面图选才OOutput标签,界面如下:OptT-fnrrd丁依丁百弋十3JC才4II

21、IR图34选才iOutput标签的界面图点击SelectFolderforObjects按钮,出现如下界面:图35点击SelectFolderforObjects的界面图点击向上按钮,如下图:Brdivf?ipfcijrPnlaJfllder;|Qled二|一电廿匿tlfpl事tivi.diffiinistrat-oruv和i_Adfiiinistr*torUYptuwprojibek匚匚-JnBi匚eEJIslg回国回cprojsct-projiact.ExtDll.iexFathOK点击OK按钮,出现如下界面:图37点击OK按钮的界面图点击Debug标签,出现如下界面:选才iH-JTAGA

22、RM然后点击。侬钮,出现如下界面:图39选才iH-JTAGARM勺界面图点击Debug按钮,开始调试程序,如下图:.feiK餐LIii咯2m2Mn,6rs.工打壮门网“LQli2fc=l:L:-_l2c色llU*r1“回Bh一471山TuEdEHaijuimHUuf.1L.MJ1L*iMil41.113441!演“yjd士IljUJulL勺*1.迪金filET”电07FPjSc1i-jEtllllunB刊正3TbjK-:_a-4ll41fEli:ra:ct:ijlciksLiriTCjd-BMf&t:&i:*PCEEC|旬include文件夹-adc文件夹-adc.h,在adc.h中添加:#d

23、efineADCCON(volatileunsignedint*)0x58000000)adc控制寄存器#defineADCTSC(volatileunsignedint*)0x58000004)adc触摸屏控制寄存器#defineADCDLY(*(volatileunsignedint*)0x58000008)adc启动或间延时寄存器#defineADCDAT0(*(volatileunsignedint*)0x5800000C)/adc转化数据寄存器0#defineADCDAT1(*(volatileunsignedint*)0x58000010)/adc转化数据寄存器1#defineCL

24、KCON(*(volatileunsignedint*)0x4C00000C)intadc_read(void);/读取模拟型号voidadc_init(void);/A/D转化初始化3.3.1 实现驱动在工程中新建drivers文件夹,在drivers中新建adc文件夹,在adc中新建adc.c文件,在adc.c中添加如下代码:#includeadc/adc.hvoidadc_init(void)/时钟配置,CLKCON15=0b1,表示使能CLKCON|=0x115;/时钟分频ADCCON14=0b1,ADCCON13:6=0xFF;ADCCON|=0x114;ADCCON|=0xFF6;

25、/通道选择,选择通道2,ADCCON:53=010;ADCCON&=(0x73);ADCCON|=0x14;/模式选择:选择正常模式ADCCON2=0;ADCCON&=(0x12);/设置启动AD专换的方式:读启动ADCCON&=(0x11);/启动AD专换ADCCON|=0X1;intadc_read(void)intdata;/启动AD专换ADCCON|=0X1;/判断采样转换完成while(!(ADCCON&(1main.c,在main.c中添力口:#includeadc/adc.h#includeuart/uart.h#includekey/key.h#includegpio/led.

26、hintmain(void)uart_init();led_init();key_init();adc_init();while(1)读写采样值intch,i=0,j=0;ch=adc_read();printf(%dn,ch);return0;voiddo_irq(void)/中断采样值部分intsrc=INTOFFSET;inti;printf(中断操作中:doirqn);打印中断switch(src)case4:key_isr();led_off();for(i=0;i1000000;i+);led_on();for(i=0;i1000000;i+);break;INTPND|=1key

27、中,在drivers-adc下的Makefile中找到:“COBJS:=改为:COBJS:=adc.o/即将adc.c编译成adc.o找到“LIB=改为:LIB=libadc.a/将adc.o生成库文件libadc.a找到工程中的Makefile文件,在其中添加:LIBS+=drivers/adc/libadc.a/将libadc.a链接到工程中1.1.4 保存文件并编译3.4 创建Keil工程打开eclipse中run-debugconfigurations,右击科Visionproject创建NewBrowse选中adc,点击TargetOptions,打开output中SelectFolderforObjects.点击向上按钮后ok.接着点击debug选择H-JTAGARM最后点击D

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论