实验三定时器实验
一、实验目的
1. 了解DSP 程序各段的含义;
2. 熟悉如何用C语言来编写中断服务程序;
3. 掌握长时间间隔的定时器的处理。
4. 掌握片内外设的设置方法。
二、实验内容
1. DSP 的初始设置;
2. DSP 中断向量表的建立;
3. 定时中断的编写;
三、实验背景知识
TMS320LF2407的定时器的说明:
LF2407 中有四个可编程的16-位片上定时器,每一个定时器中又包含有四个可由用户设置的寄存器,并可以申请主机的中断。这三个寄存器分别为TxCNT、TxCMPR、TxPR、TxCON。这些寄存器与对应的存贮空间地址如下表所示:
时间寄存器(TxCNT)是一个16 位的存贮器映射寄存器,它的值由周期寄存器来进行装载,并且做减一操作。
周期寄存器(Tx PR)是一个16 位的存贮器映射寄存器,它是用来重装时间寄存器(TIM)寄存器的值的。
定时器控制寄存器(TxCON)是一个16 位的存贮器映射寄存器,包含了定时器的控制
与状态信息。
四、实验要求
用TMS320LF2407片上的Timer1,使其PRD寄存器设为0xFFFF,产生上溢、下溢、比较、周期4中断,分别在中断服务程序控制D5、D6、D7、D8指示灯。(对LED操作采用外部IO操作形式,IO地址为0x0003,目标板上发光二极管D5
连接2407上数据线D0,如点发光二极管D5,则C语言指令为outport(3,0x0001),类似目标板上发光二极管D6、D7、D8分别连接2407上数据线D1、D2、D3)五、实验程序功能与结构说明
在C Time 实验调试程序中,主要包含以下文件:
1. Ctime.c:这是实验的主程序,主要包含DSP 初始化,Timer 及Timer中断初始化,Timer 中断程序。
2. vector.asm:包含2407 的中断向量表。
3. 2407CMD.cmd:声明了系统的存贮器配置与程序各段的链接关系。
六、实验步骤
1. 将DSP 仿真器与计算机连接好;
2. 将DSP 仿真器的JTAG 插头与SEED-07 单元的J1 相连接;
3. 启动计算机,当计算机启动后,接通电源。观察电源指示灯D1是否亮;若不亮,请断开电源,检查电源。
4. 打开CCS,进入CCS 的操作环境。
5. 装入C time.pjt 工程文件,添加f2407.gel 文件,并选择“flash_disable”。
6. 装载程序c time.out,进行调试。
7. 在程序flag=*EVAIFRA&0X0080;”处设置断点。
8. 运行程序,程序会停在断点处,表明已进入定时器中断。继续运行程序,程序每次都会停在断点处。实验者可根据自己的需要改变周期寄存器的值,从而控制每次进中断的时间。修改程序分别观察上溢、下溢、比较、周期4中断的实验现象(D5、D6、D7、D8闪烁情况。)
七、思考题
深入理解DSP 程序的编写过程,尤其是中断程序的编写。
1、查找相关寄存器,以周期中断为例程序如下。
flag=*EVAIFRA&0X0080; //读取中断标志
switch(flag) //判断中断
{
case 0x0080:zqd();break; //执行中期中断
default:{enable();return;};break;
}
2完成上溢、下溢、比较中断程序编写。