欢迎光临散文网 会员登陆 & 注册

TMS320F28035使用学习系列分享(二)CPU定时器初始化配置

2021-05-11 10:38 作者:小靜靜紫陌璃  | 我要投稿

1 简述

       本篇是对TMS320F28035定时器基本的初始化配置使用的总结,针对相关文件函数进行调用与配置。该部分用作系统定时器初始化设置。

操作配置文件 DSP2803x_CpuTimers.c

调用的函数    ConfigCpuTimer(&CpuTimer, Freq, Period)

2.CPU定时器设置

TMS320F28035定时器模块

        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;

}









TMS320F28035使用学习系列分享(二)CPU定时器初始化配置的评论 (共 条)

分享到微博请遵守国家法律