C2000 CPU Timer 学习笔记

1. CPU Timer 是什么

C2000 的 CPU Timer 本质是:

复制代码
32 位倒计数器

从设定值开始减,减到 0 后产生中断,然后重新装载,继续下一轮。


2. 工作流程

CPU Timer 流程图​编辑

核心流程:

ini 复制代码
SYSCLKOUT
↓
预分频器 PSC
↓
TIMCLK
↓
主计数器 TIM
↓
TIM = 0
↓
产生中断

3. 两级计数

CPU Timer 时序图
​编辑

第一级:预分频器

复制代码
SYSCLKOUT 驱动 PSC 递减
PSC 减到 0 → 产生 TIMCLK

第二级:主计数器

复制代码
TIMCLK 驱动 TIM 递减
TIM 减到 0 → 产生定时器中断

4. 主要寄存器

寄存器 作用
PRD / PRDH 设置 32 位定时周期
TIM / TIMH 32 位当前计数值
TPR / TPRH 存放预分频设定值和当前预分频计数值
TCR 控制定时器启动、停止、中断

TPR、TDDR、PSC 的关系

TPRTPRH 是两个 16 位寄存器,但里面又分成几个 8 位字段:

寄存器 高 8 位 低 8 位
TPRH PSCH TDDRH
TPR PSC TDDR

组合后:

组合字段 含义
TDDRH:TDDR 16 位预分频设定值
PSCH:PSC 16 位预分频当前计数值

简单记:

makefile 复制代码
TDDRH:TDDR 决定分频多少
PSCH:PSC 是当前倒计数值
TPR/TPRH 只是存放这些字段的寄存器

5. 定时时间

scss 复制代码
定时时间 ≈ (PRD + 1) × (TDDR + 1) / SYSCLKOUT

不使用预分频时:

ini 复制代码
TDDR = 0
定时时间 ≈ (PRD + 1) / SYSCLKOUT

例子:

ini 复制代码
SYSCLKOUT = 60MHz
目标定时 = 1ms
PRD = 60000 - 1
TDDR = 0

6. 配置步骤

markdown 复制代码
1. 设置 PRD
2. 设置 TPR / TPRH
3. 重装载计数器
4. 使能定时器中断
5. 启动定时器
6. 配置 PIE 和 CPU 中断

7. 核心代码

ini 复制代码
CpuTimer0Regs.TCR.bit.TSS = 1;      // 停止定时器

CpuTimer0Regs.PRD.all = 60000 - 1;  // 1ms,60MHz
CpuTimer0Regs.TPR.all  = 0;         // TDDR = 0,不预分频
CpuTimer0Regs.TPRH.all = 0;

CpuTimer0Regs.TCR.bit.TRB = 1;      // 重装载
CpuTimer0Regs.TCR.bit.TIF = 1;      // 清中断标志
CpuTimer0Regs.TCR.bit.TIE = 1;      // 使能中断

CpuTimer0Regs.TCR.bit.TSS = 0;      // 启动定时器

8. 总结

makefile 复制代码
CPU Timer = 预分频器 + 32 位倒计数器。
TDDRH:TDDR 设置预分频;
PSCH:PSC 是预分频当前值;
TIMH:TIM 减到 0 后产生中断。

相关推荐
xuxie995 小时前
start9 霍尔双相编码器
单片机
兆龙电子单片机设计6 小时前
【STM32项目开源】STM32单片机语音分类垃圾桶-蓝牙APP
stm32·单片机·嵌入式硬件·物联网·开源·自动化·毕业设计
零涂毕业设计7 小时前
毕业设计模块开发-OLED显示屏(IIC协议0.96寸)STM32 ESP32 FPGA Linux驱动免费分享
linux·stm32·单片机·嵌入式·esp32·fpga·oled
ye150127774558 小时前
220V转5V1A隔离芯片WT5602
单片机·嵌入式硬件·其他·硬件工程
ye150127774559 小时前
DC24V-100V转3.3V500mA隔离芯片WT5602
单片机·嵌入式硬件·其他·硬件工程
Lumos6fly9 小时前
51单片机从零到实战(15)——数字时钟温度计
单片机·嵌入式硬件·51单片机
碎光拾影14 小时前
I2C总线通信全解析:从原理到实战
单片机·嵌入式硬件
愈心凌14 小时前
SSI 绝对值编码器通信 - 单片机TM32Cubemax配置教程
单片机·嵌入式硬件
科芯创展14 小时前
1.5A,5.5VIN,单灯,XZ4059A/D,4.2V/4.34V
单片机
江哥工作室14 小时前
几分钱的 LM358 采集心电
单片机·lm358·心电·小信号