OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2984|回复: 2

请教大家关于RTC时钟的问题

[复制链接]

74

主题

182

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
280
金钱
280
注册时间
2021-2-5
在线时间
133 小时
发表于 2023-4-22 17:58:28 | 显示全部楼层 |阅读模式
项目对时间戳虽说要求不高,但也要精确到秒,最近遇到一个问题就是配置的RTC实时时钟系统,在打印的时间的时候会出现间隔,比如打印21秒,再打印就是23秒,就是不精确,时钟源都反复确认过了,给到RTC经过分频后频率就是精确的1HZ,而且我看网上说的内部低俗时钟不精确,我又把时钟源换成外部时钟进行分频,还是出现这种情况,我现在的猜测就是时钟的运行或者获取是不是被其他中断打断了导致的,我是不是要在获取时间戳的时候加一个临界区啊,请教大家
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

113

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2538
金钱
2538
注册时间
2019-10-18
在线时间
403 小时
发表于 2023-4-23 16:21:29 | 显示全部楼层
一看就知道是程序的问题.因为你每次去向rtc要时间是间隔1秒多.21直接变到23.能计算得到你的打印执行间隔1/22+1=1.045秒
数学上有个采样极限问题.你要精确到1ms,那么你的获取时间就得1ms一次,精确到10ms,就得10ms一次.
你现在是1秒获取一次,那么当然的偏差就有正负1秒.
回复 支持 反对

使用道具 举报

74

主题

182

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
280
金钱
280
注册时间
2021-2-5
在线时间
133 小时
 楼主| 发表于 2023-5-16 11:38:23 | 显示全部楼层
decai 发表于 2023-4-23 16:21
一看就知道是程序的问题.因为你每次去向rtc要时间是间隔1秒多.21直接变到23.能计算得到你的打印执行间隔1/2 ...

谢谢回复,确实是程序上的问题,也就是你说的这种时间累计导致的时间间隔,程序采用的是相对延时vTaskDelay,这样的话,除了相对延时本分花费的时间是确定的,程序执行的时间就是不确定的,后者这种不确定就会导致时间累计,后面我用了vTaskDelayUntil绝对延时,规避这种延时累计,这个问题得到很好解决
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 11:14

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表