[PSOC™] ARM Cortex-M SysTick 定时器寄存器理解

[复制链接]
133|0
IFX_Lingling 发表于 2025-9-2 14:09 | 显示全部楼层 |阅读模式
本帖最后由 IFX_Lingling 于 2025-9-2 14:12 编辑

SysTick ARM Cortex-M 内核内置的 24 位系统定时器,其核心功能由以下四个寄存器实现:
1.
CTRL(控制与状态寄存器)​​
  • 地址偏移0x000
  • 功能:控制定时器运行、中断及时钟源选择,提供状态标志。
  • 关键位段
  
位段
  
  
名称
  
  
类型
  
  
功能描述
  
  
0
  
  
ENABLE
  
  
R/W
  
  
使能定时器(1=启用,0=禁用)
  
  
1
  
  
TICKINT
  
  
R/W
  
  
使能中断(1=计数到0时触发中断)
  
  
2
  
  
CLKSOURCE
  
  
R/W
  
  
时钟源选择(0=外部时钟 HCLK/81=内核时钟 HCLK
  
  
16
  
  
COUNTFLAG
  
  
R
  
  
计数完成标志(1=计数器已归零,读取后自动清零)
  
2.LOAD(重装载值寄存器)​​
  • 地址偏移0x004
  • 功能:设置定时器递减计数的初始值,决定定时周期。
  • 特性
    • 24 位宽,有效值范围 0x000000 ~ 0xFFFFFF
    • 当计数器减至 0 时,自动从 LOAD 重新加载值
3.VAL(当前值寄存器)​​
  • 地址偏移0x008
  • 功能:实时读取计数器当前值,或清零计数器。
  • 特性
    • 只读:读取时返回剩余计数值。
    • 可写:写入任意值会立即清零计数器,并清除 COUNTFLAG
4.CALIB(校准值寄存器)​​
  • 地址偏移0x00C
  • 功能:提供校准参数(通常由芯片厂商预设),用于补偿时钟偏差。
  • 关键位段
[td]
  
位段
  
  
名称
  
  
类型
  
  
功能描述
  
  
31
  
  
NOREF
  
  
R
  
  
1=无外部参考时钟,0=外部参考时钟可用
  
  
30
  
  
SKEW
  
  
R
  
  
1=校准值不准确,0=校准值精确(10ms基准)
  
  
23:0
  
  
TENMS
  
  
R
  
  
10ms 对应的计数值(用于校准时钟频率)
  
  • 注意事项
    • 通常为只读寄存器,用户无需直接操作。
    • 校准值可用于计算精确的定时参数(如补偿时钟频率偏差)。


SysTick
中断入口函数
SysTick中断入口函数(通常命名为 SysTick_Handler)的配置涉及中断服务程序(ISR)的声明、优先级设置及中断触发逻辑
ModusToolbox里面直接使能中断,编写中断入口函数就可以了。
示例代码见附件:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:
简介:关于英飞凌——我们致力于打造一个更加便利、安全和环保的世界,在赢得自身成功发展的同时,积极践行企业社会责任。

129

主题

217

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部