dsp 28035(定时器基础)

1、定时器介绍

1.1 CPU工作原理

TIMER0

TINT0

PIE

INT1

TIMER1

TINT1

CPU

INT13

TIMER2

用于DSP/BIOS

,当该功能不使用时,用户可以使用

TINT2

CPU

INT14

预分频模块

定时器分频寄存器

TDDRH:TDDR

16位

预定标计数器

PSCH:PSC

16位

定时/计数模块

周期寄存器

PRDH:PRD

32位

计数寄存器

TIMH:TIM

32位

1.2定时器相关寄存器

地址

寄存器

名称

TIMERxTIM

Timer x,计数寄存器低

TIMERxTIMH

Timer x,计数寄存器高

TIMERxPRD

Timer x,周期寄存器低

TIMERxPRDH

Timer x,周期寄存器高

TIMERxTCR

Timer x,控制寄存器

保留

TIMERxTPR

Timer x,预定标寄存器

TIMERxPPRH

Timer x,预定标寄存器高

(1)定时器控制寄存器TIMERxTCR

名称

功能描述

15

TIF

CPU定时器中断标志位

当定时器计数器递减到零时,该位置1,可以通过软件向该位写1清零

0:写0无影响

1:写1清零

14

TIE

定时器中断使能

如果定时计数器递减到0,TIE为使能,定时器向CPU申请中断

13、12

保留

保留

11

FREE

CPU定时器仿真模式

10

SOFT

CPU定时器仿真模式

FREE

SOFT

0

0

下次计数器递减操作完成后定时器停止

0

1

计数器递减到0后定时器停止

1

0

自由运行

1

1

自由运行

9~6

保留

保留

5

TRB

定时器重载控制位

0:禁止重载

1:使能重载

4

TSS

启动和停止定时器的状态位

0:为了启动或重新启动,将其清零

1:停止状态

3~0

保留

保留

2、定时器配置步骤

定时器相关库函数在DSP2833x_CpuTimers.c文件中

(1)使能定时器时钟

EALLOW;

SysCtrlRegs.PCLKCR3.bit.CPUTIMER0ENCLK = 1; // CPU Timer 0

EDIS;

(2)初始化定时器参数,包括制定定时器寄存器地址、周期寄存器值、预定标计数器值等

//指向定时器0的寄存器地址

CpuTimer0.RegsAddr = &CpuTimer0Regs;

//设置定时器0的周期寄存器值

CpuTimer0Regs.PRD.all  = 0xFFFFFFFF;

//设置定时器预定标计数器值为0

CpuTimer0Regs.TPR.all  = 0;

CpuTimer0Regs.TPRH.all = 0;

//确保定时器0为停止状态

CpuTimer0Regs.TCR.bit.TSS = 1;

//重载使能

CpuTimer0Regs.TCR.bit.TRB = 1;

// Reset interrupt counters:

CpuTimer0.InterruptCount = 0;

(3)定时器的设置

TI提供的库函数“DSP2833x_CpuTimers.c”内已经有函数实现

void ConfigCpuTimer(struct CPUTIMER_VARS *Timer, float Freq, float Period)

(4)开启定时器中断功能,并使能定时器

//设置定时器0的中断入口地址为中断向量表的INT0

EALLOW;

PieVectTable.TINT0 = &TIM0_IRQn;

EDIS;

//开始定时器功能

CpuTimer0Regs.TCR.bit.TSS=0;

//开启CPU第一组中断并使能第一组中断的第7个小中断,即定时器0

IER |= M_INT1;

PieCtrlRegs.PIEIER1.bit.INTx7 = 1;

//使能总中断

EINT;

ERTM;

(5)编写定时器中断服务函数

interrupt void TIM0_IRQn(void)

{

......功能程序

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值