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

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


`

文章目录

  • TMS320F280025 CPUtimer定时器原理分析与使用
  • 框图分析
  • 定时器中断
  • 定时器使用
    • CPUtimers.c
    • CPUtimers.h


框图分析

定时器框图如图所示

在这里插入图片描述

定时器有一个预分频模块和一个定时/计数模块, 其中预分频模块包括一个 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
上一篇:记一次vue-cli老项目的打包时长优化


下一篇:一个服务器可以搭建几个网站