高精度时钟 sysTimeStamp
sysTimeStamp()也称“时间戳”。是通过系统时钟实现的。刚开始也觉得费解,系统时
钟的定时周期就是 tick,怎么实现高精度时钟呢?通过读 BSP 底层代码发现,sysTimeStamp
其实是通过读取该定时器的当前计数值来获取高精度定时的。通过 sysTimestampFreq()函
数可以得到系统时间戳的频率,它往往反映的是 CPU 定时器的基准频率。当然,如此高的
分辨率只能是一个理想值,不同的系统不一定都能实现。毕竟该时间戳的实现方式有一个致
命的弱点:通过查询方式。系统时钟定时中断是以 ticb:为单位的,进一步提高分辨率读取
定时器计数值(CPU 的一个特殊功能寄存器),只能是查询方式实现。代码示例如下:
函数
如果支持 Timestamp,BSP 应提供以下函数
sysTimestampConnect() - 连接时间戳中断
sysTimestampEnable() - 使能时间戳
sysTimestampDisable() - 禁止时间戳
sysTimestampFreq() - 取得时间戳的频率
sysTimestampPeriod() - 取得时间戳周期
sysTimestamp() - 取得时间戳
sysTimestampLock() - 禁止中断,取得时间戳
sysTimestampInt() - 可选的时间戳 ISR
Cpu 精准获取
评论0