一.实验目的
1.通过实验熟悉F28335A的定时器;
2.掌握F28335A定时器的控制方法;
3.掌握F28335A的中断结构和对中断的处理流程;
4.学会C语言中断程序设计,以及运用中断程序控制程序流程。
二.实验设备
电脑一台、实验箱一套。
三.实验原理
1.通用定时器介绍及其控制方法
TMS320F28335A内部有三个32位通用定时器(TIMER0/1/2),定时器1和2被保留给实时操作系统(DSPBIOS)用,只有定时器0可以提供给用户使用。
2.中断响应过程
a.接受中断请求。必须由软件中断(从程序代码)或硬件中断(从一个引脚或一个基于芯片的设备)提出请求去暂停当前主程序的执行。
b.响应中断。必须能够响应中断请求。如果中断是可屏蔽的,则必须满足一定的条件,按照一定的顺序去执行。而对于非可屏蔽中断和软件中断,会立即作出响应。
c.准备执行中断服务程序并保存寄存器的值。
d.执行中断服务子程序。调用相应得中断服务程序ISR,进入预先规定的向量地址,并且执行已写好的ISR。
3.中断类别
可屏蔽中断:这些中断可以用软件加以屏蔽或解除屏蔽。
不可屏蔽中断:这些中断不能够被屏蔽,将立即响应该类中断并转入相应的子程序去执行。所有软件调用的中断都属于该类中断。
4.中断的优先级
如果多个中断被同时激发,将按照他们的中断优先级来提供服务。中断优先级是芯片内部已定义好的,不可修改。
5.实验程序流程图
6.实验程序分析
本实验设计的程序是在上实验3.1基础上修改得来,由于实验3.1控制指示灯闪烁的延时控制是用循环计算方法得到的,延时不精确也不均匀,采用中断方式可以实现指示灯的定时闪烁,时间更加准确。
四.实验步骤
1.实验准备
准备进行硬件仿真:
⑴按照第三部分第一章二ICETEK-DSP教学实验箱的硬件连连接实验箱。
⑵检查ICETEK-xds100v2+仿真器的黑色JTAG插头是否正确连接到ICETEK-F28335-A板的J1插头上。
⑶检查其他连线是否符合实验要求。
⑷打开实验箱上电源开关(位于实验箱底板左上角),注意开关边上红色指示灯点亮。ICETEK-F28335-A板上指示灯D1点亮。如果打开了ICETEK-CTR的电源开关,ICETEK-CTR板上指示灯L1、L2和L3点亮。如果打开了信号源电源开关,相应开关边的指示灯点亮。
⑸用实验箱附带的miniUSB信号线连接ICETEK-XDS100v2+仿真器和PC机后面的USB插座,注意ICETEK-XDS100v2+仿真器上指示灯Power和Run灯点亮。
⑹打开设备管理器,确保仿真器被正确驱动起来
2.启动CodeComposerStudio53.导入工程文件
工程文件目录为:C:\ICETEK\F28335A-V5.0\Lab303-Timer
在项目浏览器中,双击timer.c,激活timer.c文件,浏览该文件的内容,理解各语句作用。
3.点击按钮,CCS会自动编译、连接和下载程序
4.点击菜单Run->Resume,运行程序,或者直接点击按钮,观察结果。
5.改变“CpuTimer0Regs.PRD.all =0xffff;”函数里的值;重复步骤5,6观察实验现象。
6.退出CCS
五.实验结果
指示灯D2在定时器的定时中断中按照设计定时闪烁,并且D5-D2完成了四位二进制的闪烁累加,D5是最高位,D2是最低位。使用定时器和中断服务程序可以完成许多需要定时完成的任务,比如DSP定时启动A/D转换,日常生活中的计时器计数、空调的定时启动和关闭等。
在调试程序时,有时需要指示程序工作的状态,可以利用指示灯的闪烁来达到,指示灯灵活的闪烁方式可表达多种状态信息。