C语言定时器实验
实验三 C语言定时器实验
一、实验目的
1.进一步熟悉DSP的中断机制
2.在掌握中断服务程序编写的基础上进一步熟悉定时器的运用
3.进一步掌握如何编写DSP中断服务子程序
二、实验设备
1.具有USB接口的PC机一台
2.USB仿真器一台
3.ARM/DSP/FPGA实验箱一台
三、实验原理
本实验是在我们基本上掌握DSP中断机制的基础上,进一步学习如何在DSP内部实现定时器的正确操作以及定时器中断服务程序的编写。
在TMS320VC5410A中,有一个16位的硬件定时器,该定时器有一个4位的预分频器,由CLKOUT来驱动,也就是说在CLKOUT时钟的作用下进行递减计数。当计数器递减到0的时候,会产生一个定时器中断。通过控制定时器相关寄存器,该定时器可以被停止、重新启动、复位或禁止。
与该定时器有关的寄存器有定时计数寄存器(TIM)、定时周期寄存器(PRD)以及定时器控制寄存器(TCR)。
下面对这几个寄存器作简要介绍:
TIM:该寄存器是一个存储器映射的寄存器,地址为0x0024。该寄存器
中保存了定时器当前的计数值,并且该寄存器的值会在预分频器中的计
数器递减至0的时候递减1。当TIM寄存器中的至递减至0的时候,定
时器复位,TIM重新加载PRD寄存器中的值,开始下一轮计数,与此
同时,当该寄存器中的值递减至0的时候,产生定时器中断。
PRD:该寄存器是一个存储器映射的寄存器,地址为0x0025。该寄存器
用于控制定时器的周期。
TCR:该寄存器是一个存储器映射的寄存器,地址为0x0026。该寄存器
主要用于控制定时器的启动、停止、复位以及初始化定时器的预分频器
等操作。该寄存器的具体内容如表3-1所示。
表3-1 TCR寄存器
TCR寄存器中的具体内容意义如下:
TDDR:定时器的4位预分频器,TDDR的值为0~15。
TSS:定时器启动/停止位。‘1’可停止定时器计数;‘0’可启动定时器。 TRB:向该位写入‘1’可复位定时器。
PSC:预分频器的递减计数器。该计数器会在CLKOUT的作用下递减,
当递减至0的时候,TIM的值便会递减1,同时PSC会重新加载TDDR
的预分频值。