DSP定时器实验.docx
《DSP定时器实验.docx》由会员分享,可在线阅读,更多相关《DSP定时器实验.docx(15页珍藏版)》请在冰豆网上搜索。
DSP定时器实验
DSP技术实验
实验名称:
定时器控制实验
姓名:
学号:
班级:
电科
(1)班
时间:
2010.11.05
南京理工大学工程学院
一、实验目的
1、掌握定时器基本原理
2、掌握中断的基本原理
3、掌握定时器控制C语言编程
二、实验原理
TMS320F2812片内有3个32位时钟,分别被称为CPU定时器0、1、2。
其中定时器1和定时器2预留给适时操作系统使用(例如DSPBIOS),只有定时器0用户可以在应用程序中使用。
每个定时器中均有一个32位减计数器,当计数器减到零时,产生一个中断。
其中,TIMER2中断为PIE中断,TIMER1中断直接连在CPU的INT13,TIMER2中断直接连在CPU的INT14.
注:
SEED-DEC2812未使用CPU定时器0,用户可以根据应用的需要灵活使用。
定时器功能框图:
定时中断信号与处理器内部链接示意图:
三、实验内容
定时器控制设计流程图:
1.将DSP仿真器与计算机连接好;
2.将DSP仿真器的JTAG插头与SEED-DEC2812单元的J1相连接;
3.打开SEED-DTK2812的电源。
4.装入cputimer.pjt工程文件后,添加2812.gel文件。
结合程序流程充分理解实验主程序CpuTimer.c,并完成以下工作:
(1)将中断服务主程序补充完整,要求能够实现SEED_DEC2812板卡上指示灯D1和D3交替闪烁。
定时器控制程序:
interruptvoidISRTimer2(void)
{
CPUTimer2.InterruptCount++;
If(Led_Flag==1)
{LED1_ON;
*LED3=0;
Led_Flag==0;}
Else{LED1_OFF;
*LED3=1;
Led_Flag=1;}
}
(2)尝试将指示灯D1和D3交替闪烁的时间改为2S
定时器控制程序:
interruptvoidISRTimer2(void);
voidmain(void)
{/*初始化系统*/
InitSysCtrl();
DINT;
IER=0x0000;
IFR=0x0000;
Led_Flag=0;
/*初始化PIE*/
InitPieCtrl();
/*初始化PIE中断矢量表*/
InitPieVectTable();
/*初始化外设*/
InitPeripherals();
EALLOW;
PieVectTable.TINT2=&ISRTimer2;
EDIS;
ConfigCpuTimer(&CpuTimer2,30,2000000);
StartCpuTimer2();
/*开中断*/
IER|=M_INT14;
EINT;
ERTM;
for(;;);
}
interruptvoidISRTimer2(void)
{
CpuTimer2.InterruptCount++;
if(Led_Flag==1)
{LED1_ON;
*LED3=0;
Led_Flag=0;}
else
{LED1_OFF;
*LED3=1;
Led_Flag=1;}//添加程序,完成LED1,LED3交替闪烁
}
四、小结与体会
通过本次实验,让我对DSP这门课程在应用软件上有了基本的操作知识,以及通过对定时器控制C语言编程的编写,已经基本掌握了定时器的基本原理以及中断基本原理,并能够很好的进行设计,达到对软硬件结合使用。
DSP技术实验报告
实验名称:
A/D采集实验
姓名:
刘凌凯
学号:
070403129
班级:
电科
(一)
时间:
2010.11.08
南京理工大学紫金学院电光系
一、实验目的
1.了解TMS320F2812片上外设AD;
2.熟悉片上AD的使用;
3.利用片上AD进行数据采集。
二、
A/D转换(ADC)是DSP中的一个非常重要的单元,它提供DSP与现实世界的连接通道。
诸如温度、湿度、压力、电流、电压、速度、加速度等模拟量,绝大部分都可用正比于原始信号的电压信号来表示。
ADC转换的功能就是将这些模拟电压信号转换成数字信号,DSP对它进行数字信号处理或数字显示等。
实验原理
TMS320F2812片内AD简介:
三、实验内容
1、程序流程图:
Timer
中断流程图
主
程
序
流
程
图
Ad
中
断
流
程
图
2、编写AD中断服务程序
interruptvoidad(void)
{
IFR=0x0000;//设置中断标志寄存器值
PieCtrl.PIEACK.all=0xffff;//设定PIE级中断应答寄存器值
if(adconvover==0)
{
Ad_data[convcount]=AdcRegs.RESULT0;
convcount++;//补充语句,读取AD转换结果
}
if(convcount==(SampleLong))
{
convcount=0;
adconvover=1;
}
}
3、A/D转换
(1)、用C语言编程对频率为500Hz、幅度为1V的正弦信号,利用通道0=〉ADCINA6口实现不同采样频率(8KHz、44KHz、96KHz)下的ADC转换,采样长度1024点。
(2)用C语言编程对频率为400Hz、幅度为1V的三角波;利用通道1=〉ADCINA4口实现不同采样频率(8KHz、44KHz、96KHz)下的ADC转换,采样长度1024点。
四、小结与体会
通过本次实验,我学习了将TMS320F2812片上外设AD,也了解了片上AD的使用及通道的选择,学会了如何利用片上AD进行数据采集。
DSP技术实验报告
实验名称:
有限冲击响应滤波器
(FIR)算法实验
姓名:
刘凌凯
学号:
070403129
班级:
电科
(一)
时间:
2010.11.08
南京理工大学紫金学院电光系
一、实验目的
1、掌握数字滤波器的设计过程
2、了解FIR的原理和特性
3、熟悉设计FIR数字滤波器的原理和方法
二、实验原理
1、有限冲击响应数字滤波器(FIR)的基础理论:
FIR数字滤波器是一种非递归系统,其冲激响应h(n)是有限长序列其差分方程表达式为:
N为FIR滤波器的阶数。
在数字信号处理应用中往往需要设计线性相位的滤波器,FIR滤波器在保证幅度特性满足技术要求的同时,很容易做到严格的线性相位特性。
为了使滤波器满足线性相位条件,要求其单位脉冲响应h(n)为实序列,且满足偶对称或奇对称条件,即
或
。
这样,当N为偶数时,偶对称线性相位FIR滤波器的差分方程表达式为
由上可见,FIR滤波器不断地对输入样本X(n)延时后,再做乘法累加算法,将滤波器结果y(n)输出。
因此,FIR实际上是一种乘法累加运算。
而对于线性相位FIR而言,利用线性相位FIR滤波器系数的对称特性,可以采用结构精简的FIR结构将乘法器数目减少一半。
2.本实验中FIR的算法公式:
三、实验内容
1、程序流程图:
2、打开工程文件,找到FIR_filter.c文件,根据FIR的算法公式,补充完整滤波函数。
for(j=0;j{
acc=0;y0=0;
for(i=0;i{
if(i+j>=m)
break;
else
{
y0=(long)(h[i]*x[j+i]);
acc=acc+y0;
}
}
*y++=(short)(acc>>s);
}
3、波形
噪声正弦300Hz1v通道0
滤波前时域
频域
滤波后
时域频域
噪声方波400Hz1v通道2
滤波前
时域频域
滤波后
时域频域
四、小结与体会
通过本次试验,我了解了如何使用MATLAB设计确定FIR滤波器系数;掌握了数字滤波器的设计过程,掌握了FIR的原理和特性,知道了设计FIR数字滤波器的原理和方法。