TI DSP TMS320F280025 Note13:CPUtimer定时器原理分析与使用

TMS320F280025 CPUtimer定时器原理分析与使用


`


框图分析

定时器框图如图所示

在这里插入图片描述

定时器有一个预分频模块和一个定时/计数模块, 其中预分频模块包括一个 16 位的定时器分频寄存器(TDDRH: TDDR) 和一个 16 位的预定标计数器(PSCH: PSC) ; 定时/计数模块包括一个 32 位的周期寄存器(PRDH: PRD)和一个 32 位的计数寄存器(TIMH:TIM)

使用定时器时初始化好定时器,设置好装载值并且启动定时器
在这里插入图片描述

每个系统时钟都会使定时器16位的预定标计数器减一,当16位的预定标计数器减到0时,16位的预定标计数器重置,同时32位计数器减一
在这里插入图片描述

当32位计数器减到0时,32位计数器重置,同时触发定时器中断

即:
当系统时钟(SYSCLKOUT) 来一个脉冲, PSCH: PSC 预定标计数器减 1, 当 PSCH: PSC 预定标计数器减到 0 的时候, 预定标计数器产生下溢后向定时器的 32 位计数器 TIMH:TIM 借位, 即 TIMH:TIM 计数器减 1, 同时 PSCH: PSC 可以重载定时器分频寄存器(TDDRH: TDDR) 的值; 当计数寄存器 TIMH: TIM 减到 0 产生下溢的时候, 计数寄存器会重载周期寄存器(PRDH: PRD) 的值, 同时定时器会产生一个中断信号给 CPU。

定时器中断

在这里插入图片描述

CPU定时器0的中断通过PIE传播给CPU
CPU定时器1和2的中断是直接传播给CPU
注意定时器中断优先级
定时器 0的中断属于 PIE 第一组中断中的第 7 个小中断。
在这里插入图片描述

CPU定时器1和2中断
在这里插入图片描述

定时器使用

(1) 使能定时器时钟

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

(3) 定时器的设置

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

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

CPUtimers.c

/*
 * TimerDriver.c
 *
 *  Created on: 2024年8月8日
 *      Author:
 */
#include "main.h"
#include "TimerDriver.h"


//
// Function Prototypes
//
__interrupt void cpuTimer0ISR(void);
__interrupt void cpuTimer1ISR(void);
__interrupt void cpuTimer2ISR(void);

/*
 * 配置定时器CpuTimer0、1、2,注意1、2不经过PIE
 */
void Time
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苦梨甜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值