ARM9报告-基于ARM9的数据采集应用程序设计.doc_第1页
ARM9报告-基于ARM9的数据采集应用程序设计.doc_第2页
免费预览已结束,剩余22页可下载查看

下载本文档

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

文档简介

第1章 需求分析1.1实验设计题目基于arm9的数据采集应用程序设计。1.2 设计目的巩固、实践本课程所学理论知识,由于这门课程是理论与实践相结合且实践性很强的课程,该课程的学习目标是培养学生嵌入式开发的基本能力,通过实验设计培养学生查阅、合理运用参考资料的能力。1.3 设计任务及要求1.3.1 设计任务通过s3c2410x(arm9)的adc采集实验箱电位器的值,旋转电位器时可在屏幕上看到当前采集值的变化。实验箱有三个电位器,学生可自选一个或多个。可增功能:(1)中断功能:按下中断按键触发中断,中断时三个led灯闪烁一次,且屏幕上打印正在中断的提示。(2)报警功能:设定一个临界值(如500),当采集的值超过此临界值时,灯闪烁报警,三个电位器可与三个灯一一对应。、1.3.2 报告要求(1)实现的功能(2)软硬件平台(3)硬件原理分析及原理图(4)硬件驱动的实现步骤及分析(5)代码设计:所有需要编写的代码(如adc.c、adc.h、main.c、makefile等)、代码的注释。(6)运行及调试的步骤(7)心得体会1.4 实验平台硬件平台:博创经典up-netarm2410实验箱(s3c2410处理器)。软件平台:eclipse+keil+putty(串口调试助手)。第2章 实验分析2.1硬件原理在adc这章中相应的硬件原理图截图如下:图1 硬件原理图2.2设计原理由硬件原理图可知ad和da转化与ain0,ain1,ain2三个引脚有关,在gpio一章中查找可知这三个引脚均不是多功能引脚。在ad和da转化时也不需要用到时钟信号。a/d转换器是模拟信号和cpu之间联系的接口,它将连续变化的模拟信号转换为数字信号,以供计算机和数字系统进行分析、处理、存储、控制和显示。在编写驱动是可以通过查找数据手册。2.3选择通道通过底板ad-da-can图可知三个adc电位器对应aino2,所以选择通道2。adccon5:3=010;adccon&=(0x73);adccon|=0x14;2.4时钟配置与分频adc控制寄存器(adccon)地址为0x58000000。 图2 adc控制寄存器图时钟配置,clkcon15 = 0b1,表示使能 clkcon |= 0x1 15;时钟分频:图3 时钟分频图a / d转换器当预定标器值n,预定数据值是(n + 1),初始状态是0xff adccon14=0b1,adccon13:6=0xff;adccon|=0x114;adccon|=0xff6;2.5选择模式(如图2-3)图4 选择模式图模式选择:选择正常模式 adccon2=0;adccon&=(0x12);2.6设置启动设置启动ad转换的方式:读启动adccon&=(0x11);启动ad转换adccon|=0x1;2.7实现功能判断采样转换完成以及读取while(!(adccon&(1所有程序-h-jtag-h-jtag”,可以自动检测到cpu类型,如下:图19 自动检测到cpu类型的界面图3.1.3运行eclipse工程以及编写相关程序创建eclipse工程,双击桌面的eclipse。图20 双击后的界面图选择工作空间(存放源代码及工程文件的地方),点击ok按钮,打开如下界面:图21选择工作空间的界面图进入主界面后,单击file -new- c project菜单项,eclipse将打开一个标准对话框,输入project_s3c2410 (希望新建工程的名字)单击finish即可创建一个新的工程,建议对每个新建工程使用独立的文件夹。创建keil工程,点击如下菜单:图22进入如下界面:图23进入主界面后的界面图点击next按钮,如下图图24点击next按钮的界面图选择s3c2410a设备,点击finish按钮,这时会打开keil软件,关闭keil工程。添加文件到工程。拷贝老师发的工程文件夹“project_s3c2410空”中的所有内容到d:eclipse_projects_cygproject_s3c2410工程目录下,在eclipse软件下,按f5刷新工程目录,再按照上课讲的新建文件夹和文件,添加程序,按ctrl+s保存,按ctrl+b编译工程。调试工程,点击下图菜单:图25添加程序的界面图右键单击,下面红颜色部分:图26右键单击的界面图出现如下菜单:图27 出现的界面图点击new菜单,出现如下界面:图28点击new菜单后的界面图点击browse.,出现下面界面:图29点击browse.后的界面图选中led,点击ok按钮,出现如下界面:图30选中led点击ok按钮的界面图点击browse.,出现下面界面:图31点击browse.后的界面图选中led.uvproj,然后点击ok按钮,出现如下界面:图32选中led.uvproj的界面图点击target options按钮,出现如下界面:图33 点击target options按钮的界面图选择output标签,界面如下:图34选择output标签的界面图点击select folder for objects按钮,出现如下界面:图35 点击select folder for objects的界面图点击向上按钮,如下图:图36点击向上按钮的界面图点击ok按钮,出现如下界面:图37点击ok按钮的界面图点击debug标签,出现如下界面:图38点击debug标签的界面图选择h-jtag arm,然后点击ok按钮,出现如下界面:图39选择h-jtag arm的界面图点击debug按钮,开始调试程序,如下图:图40点击debug按钮的界面图出现下图的对话框时,点“yes”。图41 出现的界面图调试成功时出现下图的界面:图42 调试成功时的界面图点击绿色三角“运行”按钮,看实验箱上的运行效果。点击红色方块“停止”按钮,停止运行。3. 2打开软件新建一个c project工程,将第三次试验(i/o口,串口,中断)的文件复制到该工程,并删除创建的工程,刷新界面,获取之前的实验目录。3.3相关寄存器定义 工程-include文件夹-adc文件夹-adc.h,在adc.h中添加:#define adccon (*(volatile unsigned int *)0x58000000)/adc控制寄存器#define adctsc (*(volatile unsigned int *)0x58000004)/adc触摸屏控制寄存器#define adcdly (*(volatile unsigned int *)0x58000008)/adc启动或间延时寄存器#define adcdat0 (*(volatile unsigned int *)0x5800000c)/adc转化数据寄存器0#define adcdat1 (*(volatile unsigned int *)0x58000010)/adc转化数据寄存器1#define clkcon (*(volatile unsigned int *)0x4c00000c)int adc_read(void);/读取模拟型号void adc_init(void); /a/d转化初始化3.3.1实现驱动在工程中新建drivers文件夹,在drivers中新建adc文件夹,在adc中新建adc.c文件,在adc.c中添加如下代码:#include adc/adc.hvoid adc_init(void)/时钟配置,clkcon15 = 0b1,表示使能 clkcon |= 0x1 15;/时钟分频adccon14=0b1,adccon13:6=0xff;adccon|=0x114;adccon|=0xff6;/通道选择,选择通道2,adccon5:3=010;adccon&=(0x73);adccon|=0x14;/模式选择:选择正常模式 adccon2=0;adccon&=(0x12);/设置启动ad转换的方式:读启动adccon&=(0x11);/启动ad转换adccon|=0x1;int adc_read(void) int data;/启动ad转换adccon|=0x1;/判断采样转换完成while(!(adccon&(1 main.c,在main.c中添加:#include adc/adc.h#include uart/uart.h#include key/key.h#include gpio/led.hint main(void) uart_init(); led_init(); key_init(); adc_init(); while(1) /读写采样值 int ch,i=0,j=0; ch=adc_read(); printf(%dn,ch); return 0;void do_irq(void) /中断采样值部分int src = intoffset;int i;printf(中断操作中:do irq n);/打印中断switch (src) case 4:key_isr();led_off();for(i=0;i1000000;i+);led_on();for(i=0;i1000000;i+);break;intpnd |= 1 key中, 在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 链接到工程中3.3.4保存文件并编译3.4创建keil工程打开eclipse中run-debug configurations,右击vision project创建new browse选中adc,点击target options,打开output中select folder for objects.点击向上按钮后ok.接着点击debug选择h-jtag arm,最后点击debug按钮,开始调试程序。调试完成后运行。3.5运行结果图如下:图43 运行结果图第四章 课题总结和体会在本次实验设计中,我碰到的问题还是蛮多的,当然在解决它们的同时我又学到了很多,使我对arm9嵌入式系统设计这门学科有了更进一步的认识与熟悉。这次实验是和小伙伴们一起做,其中有两位都是几位学霸级人物,所以有不懂的就会咨询他们。通过这几次的arm9嵌入式系统设计,我对这学期arm9嵌入式系统设计的知识有了更进一步的认识,经过这次实验设计的鞭策和逼迫,我们才不得不通过各方面途径去查取相关资料,去自学相关知识,去一个个逐步消解我们学习上的盲点,使我受益匪浅,收获颇多,但从中也发现了自己许多的不足和需要改进

温馨提示

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

评论

0/150

提交评论