arm编程.docx

上传人:b****0 文档编号:9242448 上传时间:2023-05-17 格式:DOCX 页数:18 大小:490.52KB
下载 相关 举报
arm编程.docx_第1页
第1页 / 共18页
arm编程.docx_第2页
第2页 / 共18页
arm编程.docx_第3页
第3页 / 共18页
arm编程.docx_第4页
第4页 / 共18页
arm编程.docx_第5页
第5页 / 共18页
arm编程.docx_第6页
第6页 / 共18页
arm编程.docx_第7页
第7页 / 共18页
arm编程.docx_第8页
第8页 / 共18页
arm编程.docx_第9页
第9页 / 共18页
arm编程.docx_第10页
第10页 / 共18页
arm编程.docx_第11页
第11页 / 共18页
arm编程.docx_第12页
第12页 / 共18页
arm编程.docx_第13页
第13页 / 共18页
arm编程.docx_第14页
第14页 / 共18页
arm编程.docx_第15页
第15页 / 共18页
arm编程.docx_第16页
第16页 / 共18页
arm编程.docx_第17页
第17页 / 共18页
arm编程.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

arm编程.docx

《arm编程.docx》由会员分享,可在线阅读,更多相关《arm编程.docx(18页珍藏版)》请在冰点文库上搜索。

arm编程.docx

arm编程

武汉理工大学华夏学院

设计报告

课程名称嵌入式技术与应用

题目基于ARM9的ADC驱动程序设计

 

专业测控技术与仪器

班级测控1131_____

学号

姓名______

成绩_______

__2015年____5___月___22____日

第一章目录

1.1设计目的...................................................................................................

1.2设计任务....................................................................................................

2.2软硬件平台..................................................................................................

第二章

2.1硬件原理图.................................................................................................

2.2硬件原理分析...........................................................................................

2.3硬件驱动步骤及分析.................................................................................

.

第三章

3.1代码设计......................................................................................................

.

第四章

4.1运行及调试步骤............................................................................................

第五章

5.1总结与体会........................................................................................................

第一章

 

1.1设计目的

由于这门课程是理论与实践相结合且实践性很强的课程,该课程的学习目标是培养学生嵌入式开发的基本能力,考核方式拟采用学生独立编写一个嵌入式应用程序的方式。

1.2设计任务

通过S3C2410X(ARM9)的ADC采集实验箱电位器的值,旋转电位器时可在屏幕上看到当

前采集值的变化。

1.3实验平台

硬件平台:

博创经典UP-NETARM2410实验箱(S3C2410处理器)

软件平台:

eclipse+keil+PUTTY(串口调试助手)。

 

 

第二章

2.1硬件原理图

 

2.2硬件原理分析

由硬件原理图可知AD和DA转化与AIN0,AIN1,AIN2三个引脚有关,在gpio一章中查找可知这三个引脚均不是多功能引脚。

在AD和DA转化时也不需要用到时钟信号。

A/D转换器是模拟信号和CPU之间联系的接口,它将连续变化的模拟信号转换为数字信号,以供计算机和数字系统进行分析、处理、存储、控制和显示。

2.3驱动编程步骤及分析

A/D转换相关的寄与存器:

ADC触摸屏控制寄存器(ADCTSC)地址为0x58000004

ADC启动延时寄存器(ADCDLY) 地址为0x58000008 

ADC转换数据寄存器(ADCDAT0) 地址为0x5800000C 

ADC转换数据寄存器(ADCDAT1) 地址为0x58000010

时钟寄存器(CLKCON)地址为0x4C00000C 

 

(1)搞清楚原理

查找AD的原理图搞清楚原理

ADC控制寄存器

ADC触摸屏控制寄存器(ADCTSC)如下:

 

ADC启动延时寄存器:

ADC转换数据寄存器:

 

(2)列出问题

1.muxed

在IO一章搜索电位器引脚,是多功能引脚吗?

AIN0,AIN1,AIN2,不是多功能引脚。

2.clk

需配置时钟开启时钟在07-clockpowermanagement一章中搜索ADC,找到了什么

时钟分频在16-ADC&touchscreen一章中的寄存器中配置。

256分频,并使能分频。

设置哪些位?

(3)设置参数

ADC通道选择,怎么选择?

通过底板AD-DA-CAN图可知三个ADC电位器对应AINO2所以选择通道2。

ADCCON[5:

3]=010; ADCCON&=~(0x7<<3); ADCCON|=0x1<<4; 

模式选择:

正常/闲置,选择正常模式。

闲置模式(StandbyMode):

在该模式下转换数据寄存器中的值都被保留为上次转换时的数据。

设置启动AD转换的方式:

读启动

(4)功能

intadc_read(void);

如何判断采样转换完成?

如果转换完成,可读取采样值,否则继续等如何读取采样值(整数)?

判断采样转换完成以及读取:

while(!

(ADCCON&(1<<15))); data=ADCDAT0&0xFFF; 

voidadc_init(void);

设置muxed、clk及参数,怎么设置?

如何启动ADC?

设置启动AD转换的方式:

读启动ADCCON&=~(0x1<<1); 启动AD转换ADCCON|=0X1; 

(5)硬件驱动步骤:

首先连接串口线。

选择serial,9600改成115200

点击左边树形列表中的“Serial”:

将右边最后一项改为None。

点击“Open”按钮,出现如下串口调试界面:

拨动实验箱电源开关,若串口调试界面中有如下显示,表示串口通了,配置好了:

 

 

第三章

3.1代码设计:

(1)adc.c

#include"adc/adc.h"

intc;

intadc_read(void)

{

while(!

(ADCCON&(0b1<<15)));//判断ADC转换是否结束,ADCCON[15]=1,转换结束,否则等待转换结束

returnADCDAT0&0x3ff;//ADCDAT0[9:

0]为数模转换数据位,其他位置零即可

}

voidadc_init0()//使用AIN0通道的初始化函数

{

CLKCON|=0b1<<15;//使用ADC时钟

ADCCON|=0b1<<14;//分频因子使能

ADCCON|=0b11111111<<6;//设置分频因子ADCCON[13:

6]=255

ADCCON&=~(0b111<<3);//启用通道000即使用ANI0;

ADCCON&=~(0b1<<2);//正常模式

ADCCON|=0b1<<1;//通过读操作启动

c=ADCDAT0;//启动ADC转换

}

(2)adc.h

#defineCLKCON(*(volatileunsigned*)0x4C00000C)//时钟寄存器

#defineADCCON(*(volatileunsigned*)0x58000000)//adc控制寄存器

#defineADCDAT0(*(volatileunsigned*)0x5800000C)//adc转换数据寄存器0

intadc_read(void);//读转换数据

voidadc_init0(void);//初始化

(3)Main.c

#include"uart/uart.h"

#include"adc/adc.h"

inta,b,c;

intmain(void)

{

uart_init();//串口初始化

puts("曾伟阳07\n");

while

(1)

{

adc_init0();//使用AIN0通道的ADC初始化

a=adc_read();//读转换数据

printf("a0=%4d",a);

puts("\r");

}

return0;

}

voiddo_irq(void)

{

}

(4)#中断向量表

.global_start

_start:

breset

ldrpc,_undefined_instruction

ldrpc,_software_interrupt

ldrpc,_prefetch_abort

ldrpc,_data_abort

ldrpc,_not_used

ldrpc,_irq

ldrpc,_fiq

_undefined_instruction:

.word_undefined_instruction

_software_interrupt:

.word_software_interrupt

_prefetch_abort:

.word_prefetch_abort

_data_abort:

.word_data_abort

_not_used:

.word_not_used

_irq:

.wordirq_handler

_fiq:

.word_fiq

reset:

//设置SVC模式,关闭中断

mrsr0,cpsr

bicr0,r0,#0x1f

orrr0,r0,#0xd3

msrcpsr,r0

//时钟这频率

//FCLK:

202800000Hz

//HCLK:

101400000Hz

//PCLK:

50700000Hz

//关闭看门狗

ldrr0,=0x53000000

movr1,#0

strr1,[r0]

init_stack:

ldrr0,stacktop

//svcmodestack

movsp,r0

subr0,#128*4

//irqmodestack

msrcpsr,#0xd2

movsp,r0

subr0,#128*4

//fiqmodestack

msrcpsr,#0xd1

movsp,r0

subr0,#0

//abortmodestack

msrcpsr,#0xd7

movsp,r0

subr0,#0

//undefinemodestack

msrcpsr,#0xdb

movsp,r0

subr0,#0

//设置SVC模式,开中断

mrsr0,cpsr

bicr0,r0,#0x1f

orrr0,r0,#0xd3

bicr0,r0,#0x80

msrcpsr,r0

//拷贝中断向量表到0地址

ldrr0,=_start

ldrr1,=reset

movr2,#0

loop:

cmpr0,r1

ldrner3,[r0],#4

strner3,[r2],#4

bneloop

@如果需要添加执行代码,加在这个地方

bmain

@如果要添加函数,加在这个地方

.align5

irq_handler:

sublr,lr,#4

stmfdsp!

{r0-r12,lr}

bldo_irq

ldmfdsp!

{r0-r12,pc}^

stacktop:

.wordstack+4*512

.section.data

@如果要添加数据,加在这个地方

stack:

.space4*512

 

第四章

4.1运行及调试步骤:

1启动H-JTAG

先确定实验箱电源打开,并口线连接好,然后单击“开始-->所有程序-->H-JTAG-->H-JTAG”

可以自动检测到CPU类型,ARM920T0X0032409D

2.运行Eclipse工程

创建Eclipse工程

双击桌面的eclipse

进入主界面后,单击File->New->CProject菜单项,Eclipse将打开一个标准对

3创建Keil工程

选择S3C2410A设备,点击Finish按钮,这时会打开keil软件,关闭keil工程。

 

4添加文件到工程

到D:

\eclipse_projects_cyg\工程目录下删除project_s3c2410文件夹,然后拷贝新的project_s3c2410再到Eclipse软件下,按F5刷新工程目录,再按照上课讲的新建文件夹和文件,添加程序,按ctrl+s保存,按ctrl+b编译工程。

 

5调试工程:

Run-bebug-configurations-uvisionproject-new.选择bedug调试-yes-页面。

 

6.调试结果:

 

 

 

第五章

5.1总结与体会:

在本次实验设计中,我碰到的问题还是蛮多的,当然在解决它们的同时我又学到了很多,使我对ARM9嵌入式设计这门学科有了更进一步的认识与熟悉。

通过自学和网上查资料,学到了许多新的知识,也发现了自身的许多不足,也明白了理论要与实际相结合。

进行实验设计这样的工作,要有恒心,要能静下新来做,要善于同别人交流与合作,要真真实实多查资料,多问,多看。

 

 

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

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2