TMS320F28035使用學(xué)習(xí)系列分享(二)CPU定時(shí)器初始化配置
1 簡(jiǎn)述
? ? ? ?本篇是對(duì)TMS320F28035定時(shí)器基本的初始化配置使用的總結(jié),針對(duì)相關(guān)文件函數(shù)進(jìn)行調(diào)用與配置。該部分用作系統(tǒng)定時(shí)器初始化設(shè)置。
操作配置文件 DSP2803x_CpuTimers.c
調(diào)用的函數(shù)? ? ConfigCpuTimer(&CpuTimer, Freq, Period)
2.CPU定時(shí)器設(shè)置

????????TMS320F28035共有3個(gè)CPU定時(shí)器TIMER 0、TIMER 1、TIMER 2,分別對(duì)應(yīng)中斷INT1.7、INT13、INT14,每個(gè)定時(shí)器中的寄存器有控制寄存器TCR、周期寄存器PRD、預(yù)定標(biāo)寄存器TPR、定時(shí)計(jì)數(shù)器TIM。常用定時(shí)器為TIMER 0。
(1)控制寄存器
????????控制標(biāo)寄存器共16位,具有定時(shí)中斷標(biāo)志位、中斷使能、定時(shí)器重載、啟停等功能。
(2)周期寄存器
????????周期寄存器共32位,用來(lái)裝載定時(shí)計(jì)數(shù)器TIM初始值。
(3)預(yù)定標(biāo)寄存器
????????預(yù)定標(biāo)寄存器共32位,用以擴(kuò)展計(jì)數(shù)器的上限。
(4)定時(shí)計(jì)數(shù)器
????????定時(shí)計(jì)數(shù)器共32位,用作計(jì)數(shù)。
????????ConfigCpuTimer(&CpuTimer, Freq, Period)用作具體定時(shí)參數(shù)設(shè)計(jì)
(1)&CpuTimer
????????選擇定時(shí)器編號(hào),有CpuTimer0,CpuTimer1和CpuTimer2
(2)Freq
????????選擇工作頻率,單位MHz,若工作在60MHz,則此處最終應(yīng)為60
(3)Period
????????設(shè)置定時(shí)周期,單位μs。
3.操作步驟總結(jié)(TIMER 0)
(1)打開定時(shí)器時(shí)鐘
EALLOW;
SysCtrlRegs.PCLKCR3.bit.CPUTIMER0ENCLK = 1; // CPU Timer 0
EDIS;
(2)設(shè)置TIMER 0的中斷入口地址為中斷向量表的INT0
EALLOW;
PieVectTable.TINT0 = &TIM0_IRQn;
EDIS;
(3)指向定時(shí)器TIMER 0的寄存器地址
CpuTimer0.RegsAddr = &CpuTimer0Regs;
(4)設(shè)置TIMER 0 周期寄存器值
CpuTimer0Regs.PRD.all? = 0xFFFFFFFF;
(5)初始化預(yù)定標(biāo)計(jì)數(shù)器
CpuTimer0Regs.TPR.all? = 0;
CpuTimer0Regs.TPRH.all = 0;
(6)初始化TIMER 0控制寄存器
CpuTimer0Regs.TCR.bit.TSS = 1;//確保定時(shí)器0為停止?fàn)顟B(tài)
CpuTimer0Regs.TCR.bit.TRB = 1;//重載使能
(7)設(shè)置調(diào)用ConfigCpuTimer(&CpuTimer, Freq, Period)
ConfigCpuTimer(&CpuTimer0, Freq, Period);
(8)開啟定時(shí)器功能
CpuTimer0Regs.TCR.bit.TSS=0;
(9)開啟中斷INT1.7
IER |= M_INT1;
PieCtrlRegs.PIEIER1.bit.INTx7 = 1;
(10)開啟總中斷,使能調(diào)試事件
EINT;
ERTM;
????????以上步驟可打包為定時(shí)器初始化函數(shù)void TIM0_Init(float Freq, float Period)
(11)編寫中斷函數(shù)
interrupt void TIM0_IRQn(void)
{
EALLOW;
用戶函數(shù);
PieCtrlRegs.PIEACK.bit.ACK1=1;//中斷結(jié)束,退出中斷
EDIS;
}