




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、武汉理工大学华夏学院设 计 报 告课程名称 嵌入式技术 题 目基于arm9的数据采集程序设计专 业 班 级 学 号 姓 名 成 绩 _2015_年_ 月_日(注:为设计报告完成的日期)目录第1章 功能及原理.1 1.1实现的功能.1 1.2软件硬件平台.11.3硬件原理分析及原理图.11.4硬件驱动的实现步骤及分析.1第2章 代码设计.42.1相关寄存器定义.42.2实现驱动.42.3编写驱动.52.4修改两个makefile.6第3章 实验运行步骤.83.1启动串口调试.83.2运行h-jtag.83.3运行eclipse工程.93.4调试工程.9第4章 调试及结果分析.114.1实验现象.
2、114.2总结体会.12第1章 功能及原理1.1实现的功能通过s3c2410x(arm9)的adc采集实验箱电位器的值,旋转电位器时可在屏幕上看到当前采集值的变化。中断功能:按下中断按键触发中断,中断时三个led灯闪烁一次,且屏幕上打印正在中断的提示。报警功能:设定一个临界值(如500),当采集的值超过此临界值时,灯闪烁报警,三个电位器可与三个灯一一对应。1.2软件硬件平台 硬件平台为博创经典up-netarm2410实验箱(s3c2410处理器)。 软件平台为eclipse+keil+putty(串口调试助手)。1.3硬件原理分析及原理图 由底板文件夹中第10章10-ad-da-can文件中
3、可得电位器原理图如下:图1 硬件原理图 s3c2410的adc是8路复用的,开发平台上的3个adc电位器对应ain0-2,触摸屏电路使用ain5和ain7。adc电路的参考电压verf固定为3.3v电压,输入电压范围是0到3.3v。 a/d转换器是模拟信号和cpu之间联系的接口,它将连续变化的模拟信号转换为数字信号,以供计算机和数字系统进行分析、处理、存储、控制和显示。1.4硬件驱动的实现步骤及分析1.4.1 muxed通过在09章io ports章节搜索ain0、ain1、ain2,没有找到,因此,不是多功能引脚。1.4.2 clk 开启时钟在07-clock power managemen
4、t一章中搜索adc,发现:表1 clock power management设置使能设置为使能状态,clkcon15=0b1。时钟分频在16-adc & touch screen一章中的寄存器中配置,发现:表2 adc & touch screen寄存器配置a/d转换器预分频器使能 adccon14=0b1。a/d转换器预分频器数值为256分频 adccon13:6=0xff。1.4.3参数设置查看表2可知:adc通道选择:输入通道选择ain2,adccon5:3=0b010。模式选择:模式选择为正常模式,adccon2=0b0。设置启动ad转换的方式:读启动,adccon1=0b1。启动ad
5、转换:adccon0=0b1。1.4.4功能判断采样转换完成: if (adccon15 = 0b1)则转换完成,可读取采样值,否则继续等。读取采样值(整数):data = adcdat00:11。启动adc:tmp = adcdat00:11。第2章 代码设计2.1相关寄存器定义在工程中新建include文件夹,在include文件夹中新建tao(adc)文件夹,在tao文件夹中新建tao.h文件,在tao.h中添加如下代码:#define taocon (*(volatile unsigned int *)0x58000000)/tao控制寄存器#define taotsc (*(vola
6、tile unsigned int *)0x58000004)/tao触摸屏控制寄存器#define taodly (*(volatile unsigned int *)0x58000008)/tao启动延时寄存器#define taodat0 (*(volatile unsigned int *)0x5800000c)/tao转换数据寄存器0#define taodat1 (*(volatile unsigned int *)0x58000010)/tao转换数据寄存器1#define clkcon (*(volatile unsigned int *)0x4c00000c)/时钟寄存器in
7、t tao_read(void);void tao_init01(void);void tao_init02(void);void tao_init03(void);表3 相关寄存器定义2.2实现驱动在工程中新建drivers文件夹,在drivers文件夹中新建tao文件夹,在tao文件夹中新建tao.c文件,在tao.c中添加如下代码:#include tao/tao.hvoid tao_init01(void)clkcon |= 0x1 15; /时钟配置,clkcon15 = 0b1,表示使能taocon|=0x114;taocon|=0xff6; /时钟分频taocon14=0b1,t
8、aocon13:6=0xff;taocon&=(0x73); /通道选择,选择通道0,taocon5:3=010;taocon&=(0x12); /模式选择:选择正常模式 taocon2=0;taocon&=(0x11); /设置启动ad转换的方式:读启动taocon|=0x1; /启动ad转换void tao_init02(void) clkcon |= 0x1 15; /时钟配置,clkcon15 = 0b1,表示使能taocon|=0x114; taocon|=0xff6; /时钟分频taocon14=0b1,taocon13:6=0xff;taocon&=(0x73); taocon|
9、=0x34; /通道选择,选择通道1,taocon5:3=010;taocon&=(0x12); /模式选择:选择正常模式 taocon2=0;taocon&=(0x11); /设置启动ad转换的方式:读启动taocon|=0x1; /启动ad转换void tao_init03(void) clkcon |= 0x1 15; /时钟配置,clkcon15 = 0b1,表示使能taocon|=0x114; taocon|=0xff6; /时钟分频taocon14=0b1taocon13:6=0xff;taocon&=(0x73);taocon|=0x14; /通道选择,选择通道2,taocon5
10、:3=010;taocon&=(0x12); /模式选择:选择正常模式 taocon2=0;taocon&=(0x11); /设置启动ad转换的方式:读启动taocon|=0x1; /启动ad转换int tao_read(void) int data;taocon|=0x1; /启动ad转换while(!(taocon&(1 main.c,在main.c中添加:#include tao/tao.h#include uart/uart.h#include key/key.h#include gpio/led.hint main(void) uart_init(); /屏幕打印驱动 led_ini
11、t(); /led灯驱动 key_init(); /中断驱动 int t1,t2,t3; while(1) /读写采样值 tao_init01(); t1=tao_read(); if(t1500) *(volatile unsigned int *)0x56000024) |= 0x15;/灯0灭 for(i=0;i1000000;i+); *(volatile unsigned int *)0x56000024) &= (0x1 5);/灯0亮 for(i=0;i500) *(volatile unsigned int *)0x56000024) |= 0x16;/灯1灭 for(i=0;
12、i1000000;i+); *(volatile unsigned int *)0x56000024) &= (0x16);/灯1亮 for(i=0;i500) *(volatile unsigned int *)0x56000024) |= 0x17;/灯2灭 for(i=0;i1000000;i+); *(volatile unsigned int *)0x56000024) &= (0x17);/灯2亮 for(i=0;i1000000;i+); printf(t1=%4d,t2=%4d,t3=%4dn,t1,t2,t3); return 0;void do_irq(void) /中断采
13、样值部分 int src = intoffset; int i; printf(do_irqtaon); /打印中断switch (src) case 4: key_isr(); led_off();for(i=0;i1000000;i+);led_on();for(i=0;i1000000;i+); break; intpnd |= 1 tao中, 在drivers- tao下的makefile中找到:“cobjs:=”改为:cobjs:= tao.o /即将tao.c编译成tao.o 找到“lib=” 改为:lib= libtao.a /将tao.o生成库文件libtao.a 找到工程中的
14、makefile文件,在其中添加:libs += drivers/tao/libtao.a /将libtao.a 链接到工程中第3章 实验运行步骤3.1启动串口调试 双击桌面程序putty.exe,出现putty configuration 界面,选择serial,将speed改为115200,点击左边树形列表中的“serial”, 将右边最后一项改为“none”, 点击“open”按钮,出现串口调试界面,拨动实验箱电源开关,串口调试界面中有如下显示,表示串口通了,配置好了。按电脑键盘的任意键,光标停在vivi处,等待eclipse程序运行。图2 putty程序图3.2启动h-jtag先确定实
15、验箱电源打开,并口线连接好,单击“开始-所有程序-h-jtag-h-jtag”。图3 h-jtag程序图33 运行eclipse工程331创建eclipse工程 双击桌面程序eclipse,选择工作空间(存放源代码及工程文件的地方d:eclipse_project_cyg),点击ok按钮。进入主界面后,单击filenewc project菜单项,eclipse将打开一个标准对话框,输入project_s3c2410,单击finish即可创建一个新的工程,建议对每个新建工程使用独立的文件夹。332创建keil工程 点击vision-create/update vision project,进入v
16、ision project界面,将compiler设置为gcc,点击next-s3c2410a-finish,这时会打开keil软件,关闭keila工程。333 添加文件到工程 拷贝project_s3c2410(uart实验完成版)文件夹到eclipse project_s3c2410文件夹中,替换掉新建的project_s3c2410,在eclipse软件下,按f5刷新工程目录。在include文件夹中新建tao文件夹,在tao文件夹中新建tao.h文件,在tao.h中添加tao.h的代码;在drivers文件夹中新建tao文件夹,在tao文件夹中新建tao.c文件,在tao.c中添加ta
17、o.c的代码;在common文件夹里的main.c里添加代码;复制工程中common文件夹中的makefile文件到drivers-tao中, 在drivers tao下的makefile中找到:“cobjs:=”改为:cobjs:= tao.o /即将tao.c编译成tao.o 找到“lib=” 改为:lib= libtao.a /将tao.o生成库文件libtao.a 找到工程中的makefile文件,在其中添加:libs += drivers/tao/libtao.a /将libtao.a 链接到工程中34 调试工程点击run-debug configurations,出现debug c
18、onfigurations界面,右键单击vision project,点击new,单击browse- protect_s3c2410-ok;单击file的browse,选中protect_s3c2410.uvproj-ok,点击target options按钮,选择output -select folder for objects按钮,点击向上按钮,然后点击ok按钮;点击debug标签,选择h-jtag arm,然后点击ok按钮,点击debug按钮,开始调试程序。再弹出几个请求确认界面点击yes就好。调试成功后出现debug界面,点击绿色按钮击开始运行。观察试验箱以及串口调试界面变化。图4 eclipse树状图图5 debug程序图第4章 调试及结果分析4.1实验现象 点击绿色三角按钮运行后,putty界面连续读取并显示ain0,ain1,ain2的数值,分别旋转3个电位器,串口调试助手屏幕上显示的数值也回发生变化。按下中断按键触发中断,中断时三个led灯闪烁一次,且屏幕上打印正在中断的提示,并停止继续读取。再过一定的延时时间后,会继续读取并显示数值于屏幕上。图6 采集及中断现象图图7 采集的第一个电位器ain0大于500时图8 采集的第二个电位器ain1大于500时图9 采集的第三个电位器ain2大于500时设定的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025标准国有企业员工劳动合同
- 2025年房屋买卖合同的履行与违约行为解析
- 2024年日用织物制品项目资金筹措计划书代可行性研究报告
- 2025电子产品转让合同范本
- 2025年合同履行过程中的变更解析
- 2025网站设计服务合同范本
- 2025年北京市劳动合同模板
- 2025年杭州市劳动合同范本全文
- 2025短期劳动合同全面解析
- 2025网站建设合同协议模板
- GB/T 4706.53-2024家用和类似用途电器的安全第53部分:坐便器的特殊要求
- 化工企业重大事故隐患判定标准培训考试卷(后附答案)
- 《智能网联汽车用摄像头硬件性能要求及试验方法》编制说明
- 2024公务员培训合同协议书模板
- 2024年3月ITSMS信息技术服务管理体系基础(真题卷)
- 停工检修安全方案
- 节能评审和节能评估文件编制费用收费标准
- 2023-2024年《劳务劳动合同样本范本书电子版模板》
- 企业财务风险防范的参考文献
- 中国居民口腔健康状况第四次中国口腔健康流行病学调查报告
- MOOC 数据挖掘-国防科技大学 中国大学慕课答案
评论
0/150
提交评论