基于51单片机的太阳能追踪系统文档格式.docx
《基于51单片机的太阳能追踪系统文档格式.docx》由会员分享,可在线阅读,更多相关《基于51单片机的太阳能追踪系统文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
C2000,C3X,C5000andC6000series.IncludingSEED-DTKexperimentboxinthemaincontrolboardSEED-DECxxxxadoptsunifiedsystemstructure,modulestructure,mechanicalstructureandstandardbusinterface,andthesamephysicalsize,themaincontrolboardontheexperimentboxcanbereplacedwithdifferentSEED-DECxxxxseries,toadapttothedifferentdepartmentsonthesameexperimentboxtocarryouttheexperimentcontent,greatlysavestheschoolequipment。
Keywords:
digitalsignalprocessingcontrolalgorithmexperimentalboxcontrolmodel
引言
SEED-DTK(DSPTeachingKit)是一套可以满足大学本科、研究生和教师科研工作的综合实验设备。
SEED-DTK是我公司在总结以往产品的基础上,以独特的多DSP结构、强大的DSP主板功能、丰富的外围实验电路、精心设计的实验程序、精湛的产品工艺形成的高性能产品。
本文档主要介绍的是SEED-DTK646实验箱,它由SEED-DVS6446板卡以及相应外设构成。
SEED-DVS6446板卡介绍:
采用TMS320DM6446,用于满足下一代嵌入式系统的网络多媒体的编解码处理应用,该处理器采用双核架构ARM+DSP,其中ARM处理器采用ARM926EJ-S核,工作主频为297MHz,DSP处理器采用TI的高端DSP核C64x+,工作主频为594MHz。
本实验箱中主要使用SEED-DVS6446板卡,其处理器为TI的TMS320DM6446,采用的编译环境为CodeComposerStudiov3.3。
gcc与Makefile使用
一.实验目的
1.掌握Linux环境搭建方法及基础命令
2.掌握gcc编译器及Makefile的使用方法
二.实验内容
在Linux系统中通过命令行完成以下步骤:
在当前用户的主工作目录下创建以本人学号命名的目录,在该目录下使用Vi创建源文件(含.c,.h),编写程序实现对一个不少于20个数值的数组进行排序,要求使用make进行程序的编译,在Makefile中要顺序实现三个功能:
生成可执行文件(存放在与源程序相同的目录下)、对所创建的目录进行打包压缩(存放在主工作目录下,以姓名的全拼命名)、删除以本人学号所创建的目录。
三.实验步骤
1.安装交叉编译器arm-linux-gcc,并配置环境。
解压hybus-arm-linux-R1.1.tar.gz文件。
[root
@localhost
~]#
cp
XSBASE/xsbase/Toolchain/hybus-arm-linux-R1.1.tar.gz
/usr/local
tar
zvxf
/usr/local/hybus-arm-linux-R1.1.tar.gz
此时是hybus-arm-linux-R1.1.tar.gz解压完成时候的截图。
设置路径。
local]#
vi
~/.bash_profile
此时将会进入编辑路径的编辑框,在编辑框内添加一条路径即可。
添加的路径为:
PATH=$PATH:
/usr/local/hybus-arm-linux-R1.1/bin
当编辑完上面的时候,按下ESC,然后输入"
:
wq"
退出编辑框,使路径生效。
source
④测试arm-linux-gcc是否配置成功。
当出现arm-linux-gcc:
No
input
files的时候,说明已经配置成功,没有输入文件是说明此时没有对任何一个文件进行交叉编译。
2.Linux简单程序设计。
在Linux环境下编程:
实现20个数的排序:
mkdir
2008550533
cd
2008550533
2008550533]#
hehui
hehui]#
ji_oushu.c
代码:
#include"
stdio.h"
#defineN20
main()
{
inti,j;
floata[N],t;
printf("
input20numbers:
\n"
);
for(i=0;
i<
N;
i++)
scanf("
%f"
&
a[i]);
for(j=i+1;
j<
j++)
if(a[i]>
a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
i++)
%f\t"
a[i]);
}
四.实验结果:
5.实验心得
在为期一周的LINUX课程实训中,我每天跟随老师一起做实验,与同学们一起观看pdf教程,对网络有了更深刻的认知,在自己做实验中不断与老师的教学内容相比较,尽力独立完成各种实验内容,虽然困难很多,但是实训很高兴。
SEED-DTK6446实验箱开发环境配置
一.实验目的
1.掌握交叉编译环境配置方法
2.掌握NFS环境搭建方法,熟悉U-Boot常用操作
二.实验内容
搭建SEED-DTK6446实验箱的开发环境,包括以下内容:
在宿主机建立交叉编译工具;
配置NFS服务;
配置串口终端,熟悉U-Boot常用命令操作;
测试环境搭建是否成功:
交叉编译源程序,通过NFS方式运行程序进行测试。
三.实验步骤
建立工作目录
在linux开发主机桌面点击鼠标右键,打开终端,在当前目录下建立工作目录
Host#mkdirhelloworld
以vim文本编辑器为例说明其编写过程。
1.进入helloworld;
Host#cdhelloworld
2.使用vi命令编辑代码;
Host#vihello.c
3.按―i‖或者―a‖进入编辑模式,将上面的源代码输入,完成后按Esc键进入命令状态,再输入命令―:
wq‖保存并退出。
完成以上步骤便在helloworld目录下建立了一个名为hello.c的文件。
编写Makefile要使的hello.c程序能够编译,我们必须要编写一个Makefile文件,Makefile文件定义了一系列的规则,它指明了哪些文件需要编译,哪些文件需要先编译,哪些文件需要重新编译等等更为复杂的命令。
使用它带来的好处就是自动编译,你只需要敲一个―make‖命令整个工程就可以实现自动编译。
当然我们本实验中只有一个源文件,它还不能体现出使用Makefile
的优越性,但当工程比较大文件比较多时,不使用Makefile几乎是不可能的。
下面我们介绍本实验中用到的Makefile文件。
上面这个Makefile文件的主要包含了以下几个主要部分:
指明编译器
表示编译后生成的执行文件名称
目标文件列表
编译主入口
清除编译结果
与上面编写hello.c的过程类似,使用vi来创建一个Makefile文件并将代码录入其中,
保存退出即可。
调试应用程序
1.在helloworld目录下输入如下命令,编译应用程序;
Host#make
CC=arm_v5t_le-gcc
EXEC=hello
OBJS=hello.o
all:
$(EXEC)
$(EXEC):
$(OBJS)
$(CC)-o$@$(OBJS)
clean:
-rm-f$(EXEC)*.o
2.如果用户不想使用自己编写的代码,可以使用我们实验包中提供的,它在linux开发主机的/opt/dvevm_1_20/seed_exp/01.hello/helloworld/目录下,该程序已经编译过,若用户需要重新编译,需要先进入该目录,然后执行如下命令:
Host#makeclean
3.复制编译生成的可执行文件到NFS根文件系统中;
Host#cphello/opt/nfs/opt/seed_exp
4.上电启动SEED-DTK6446,超级终端显示启动信息,启动信息如下,显示―Hitanykeytostopautoboot:
‖时按下回车键,中断系统自动系统;
5.输入如下指令,将系统配置为从NFS根文件系统启动;
SEED-DTK6446_v1.0#setenvbootargsmem=60Mconsole=ttyS0,115200n8
93
root=/dev/nfsnoinitrdrwip=dhcpnfsroot=192.168.253.210:
/opt/nfs
video=dm64xxfb:
output=pal
注意:
a)此处的192.168.253.210为Linux开发主机的IP地址,用户需要根据自己的情
况进行调整;
ip=dhcp表示DVS6446通过dhcp获取ip地址,如果用户网络连接不支持dhcp,将该处地址配置为静态ip地址。
b)可以输入如下命令对改配置进行保存,以便下次实验时无需重设:
SEED-DTK6446_v1.0#save
c)实验箱在出厂时的默认配置是从硬盘上的根文件系统启动,用户若需要恢复默认配置,输入如下命令:
SEED-DTK6446_v1.0#setenvbootargsmem=60Mconsole=ttyS0,115200n8
root=/dev/hda1noinitrdrwip=dhcpvideo=dm64xxfb:
若使用实验箱配套的直连网线连接电脑(不通过局域网),则不支持DHCP,需要将该地址配置为静态IP地址。
假设实验箱IP设为192.168.253.183,并且从硬盘启动,输入如下命令:
root=/dev/hda1noinitrdrwip=192.168.253.183:
255.255.255.0:
192.168.253.1
6.启动系统(默认硬盘启动);
SEED-DTK6446_v1.0#boot
等待直至系统启动完毕,显示如下提示符:
xxx.xxx.xxx.xxxlogin:
7.登陆系统;
xxx.xxx.xxx.xxxlogin:
root
四.实验结果
环境配置成功
五、实验心得
本次实验是一门和我们专业紧密相关的实训,它综合了图像的知识和linux环境编程。
这门课综合性比较强,所以这门课程知识的实用性很强,因此实验就显得非常重要。
刚开始做实验的时候,由于自己的理论知识基础不好,在实验过程遇到了许多的难题,也使我感到理论知识的重要性。
但是我并没有气馁,在实验中发现问题,自己看书,独立思考,最终解决问题,也深刻理解彩色图像转换成灰度图像的原理并掌握图像处理的基本法。
通过本次实验,我掌握交叉编译环境配置方法掌握NFS环境搭建方法,熟悉U-Boot常用操作。
SEED-DTK6446平台上音频采集回放实验
一、实验目的:
1、进一步熟悉基于SEED-DTK6446平台的linux开发环境;
2、熟悉基于linux
OSS音频驱动的应用程序编写。
二、实验内容:
基于linux
OSS音频驱动程序接口,编写音频采集回放程序。
三、
实验步骤:
OSS(Open
Sound
System)是linux平台上一个统一的音频接口,即只要音频处理应用程序按照OSS的API来编写,那么在移植到另外一个平台时,只需要重新编译即可。
下面是关于OSS涉及到的一些基本概念:
数字音频设备(有时也称codec,PCM,DSP,ADC/DAC设备):
播放或录制数字化的声音。
它的指标主要有:
采样速率(电话为8K,DVD为96K)、channel数目(单声道,立体声)、采样分辨率(8-bit,16-bit)。
mixer(混频器):
用来控制多个输入、输出的音量,也控制输入(microphone,line-in,CD)之间的切换。
synthesizer(合成器):
通过一些预先定义好的波形来合成声音,有时用在游戏中声音效果的产生。
MIDI
接口:
MIDI接口是为了连接舞台上的synthesizer、键盘、道具、灯光控制器的一种串行接口。
在linux系统中,所有的设备都被统一成文件,通过对文件的访问方式(首先open,然后read/write,同时可以使用ioctl读取/设置参数,最后close)来访问设备。
在OSS中,主要有以下的几种设备文件:
/dev/mixer:
访问声卡中内置的mixer,调整音量大小,选择音源。
/dev/sndstat:
测试声卡,执行cat
/dev/sndstat会显示声卡驱动的信息。
/dev/dsp
、/dev/dspW、/dev/audio:
读这个设备就相当于录音,写这个设备就相当于放音。
/dev/dsp与/dev/audio之间的区别在于采样的编码不同,/dev/audio使用μ律编码,/dev/dsp使用8-bit(无符号)线性编码,/dev/dspW使用16-bit(有符号)线形编码。
用户在编写应用程序过程中需要注意,SEED-DTK6446
实验箱中提供的内核对OSS的部分接口并不支持。
四、程序分析:
/*
OSS
and
Mixer
devices
*/
#define
SOUND_DEVICE
"
/dev/dsp"
MIXER_DEVICE
/dev/mixer"
The
sample
rate
of
the
audio
codec.*/
SAMPLE_RATE
44100
„
number
channels
NUM_CHANNELS
2
用户可以通过修改SAMPLE_RATE(audio_thread.c第21行)值,来修改采样率;
修改NUM_CHANNELS(audio_input_output.c文件第18行)来修改采样通道数,该值可以为1或2,设为1表示单声道,为2表示立体声。
a.初试化Mixer;
Mixer设备打开操作如下:
音频输入源的配置操作如下:
Open
mixer
device
if
((mixerFd
=
open(device,
O_RDONLY))
==
-1)
{
}
由于DVS6446板卡就1个line
in输入口,程序中将输入源配置为line
in。
Set
(ioctl(mixerFd,
SOUND_MIXER_WRITE_RECSRC,
&
recmask)
b.音频设备初始化;
音频设备打开操作如下:
mode有三种选择:
O_RDONLY,O_WRONLY和O_RDWR,分别表示只读、只写和读写。
在录音时配置O_RDONLY模式,而播放音频时配置为O_WRONLY模式。
在程序中通过下列函数的“mode”参数将读写方式传递进来。
sound
((fd
mode))
int
init_sound_device(int
*fdByRef,char
*device,
format,
numchannels,
samplerate,
mode)
采样格式设置操作如下:
format
(only
AFMT_S16_LE
currently
supported)
(ioctl(fd,
SNDCTL_DSP_SETFMT,
format)
通道数目设置