TMS320F28035使用学习系列分享(二)CPU定时器初始化配置
1 简述
本篇是对TMS320F28035定时器基本的初始化配置使用的总结,针对相关文件函数进行调用与配置。该部分用作系统定时器初始化设置。
操作配置文件 DSP2803x_CpuTimers.c
调用的函数 ConfigCpuTimer(&CpuTimer, Freq, Period)
2.CPU定时器设置

TMS320F28035共有3个CPU定时器TIMER 0、TIMER 1、TIMER 2,分别对应中断INT1.7、INT13、INT14,每个定时器中的寄存器有控制寄存器TCR、周期寄存器PRD、预定标寄存器TPR、定时计数器TIM。常用定时器为TIMER 0。
(1)控制寄存器
控制标寄存器共16位,具有定时中断标志位、中断使能、定时器重载、启停等功能。
(2)周期寄存器
周期寄存器共32位,用来装载定时计数器TIM初始值。
(3)预定标寄存器
预定标寄存器共32位,用以扩展计数器的上限。
(4)定时计数器
定时计数器共32位,用作计数。
ConfigCpuTimer(&CpuTimer, Freq, Period)用作具体定时参数设计
(1)&CpuTimer
选择定时器编号,有CpuTimer0,CpuTimer1和CpuTimer2
(2)Freq
选择工作频率,单位MHz,若工作在60MHz,则此处最终应为60
(3)Period
设置定时周期,单位μs。
3.操作步骤总结(TIMER 0)
(1)打开定时器时钟
EALLOW;
SysCtrlRegs.PCLKCR3.bit.CPUTIMER0ENCLK = 1; // CPU Timer 0
EDIS;
(2)设置TIMER 0的中断入口地址为中断向量表的INT0
EALLOW;
PieVectTable.TINT0 = &TIM0_IRQn;
EDIS;
(3)指向定时器TIMER 0的寄存器地址
CpuTimer0.RegsAddr = &CpuTimer0Regs;
(4)设置TIMER 0 周期寄存器值
CpuTimer0Regs.PRD.all = 0xFFFFFFFF;
(5)初始化预定标计数器
CpuTimer0Regs.TPR.all = 0;
CpuTimer0Regs.TPRH.all = 0;
(6)初始化TIMER 0控制寄存器
CpuTimer0Regs.TCR.bit.TSS = 1;//确保定时器0为停止状态
CpuTimer0Regs.TCR.bit.TRB = 1;//重载使能
(7)设置调用ConfigCpuTimer(&CpuTimer, Freq, Period)
ConfigCpuTimer(&CpuTimer0, Freq, Period);
(8)开启定时器功能
CpuTimer0Regs.TCR.bit.TSS=0;
(9)开启中断INT1.7
IER |= M_INT1;
PieCtrlRegs.PIEIER1.bit.INTx7 = 1;
(10)开启总中断,使能调试事件
EINT;
ERTM;
以上步骤可打包为定时器初始化函数void TIM0_Init(float Freq, float Period)
(11)编写中断函数
interrupt void TIM0_IRQn(void)
{
EALLOW;
用户函数;
PieCtrlRegs.PIEACK.bit.ACK1=1;//中断结束,退出中断
EDIS;
}