OpenEdv-开源电子网

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

关于RTC时间问题

[复制链接]

71

主题

183

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
494
金钱
494
注册时间
2013-1-29
在线时间
1 小时
发表于 2013-5-15 08:53:12 | 显示全部楼层 |阅读模式

本人用RTC写了一个时钟日历  现在还有一个W25X16用来存储系统中的数据  我存储数据的时间间隔为[1--1440]分钟  可以任意调整 谁能指点一下思路  这个时间间隔怎么得到啊??

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

75

主题

458

帖子

4

精华

金牌会员

Rank: 6Rank: 6

积分
1635
金钱
1635
注册时间
2012-8-28
在线时间
71 小时
发表于 2013-5-15 09:48:52 | 显示全部楼层
1毫秒=1000us
你这样需要一个基波(就像心脏一样)跳一次需要间隔多少时间。
u16  i=0x00,s=0x00,m=0x00,h=0x00,d=0x00,z=0x00 x=0x01;//z是过了多少分钟,x是过多少分钟去触发一函数
用RTC写一个1毫秒的 i  。
i++;if(i>=1000){i=0x00;s++;}//秒
if(s>=60){s=0;m++;z++}//分,z是用来存储数据的时间间隔为[1--1440]分钟。。判断用
if(m>=60){m=0;h++}//时
if(h>=24){h=0;d++}//天
if(z>=0x01){if(z>=x){z=0;写个函数去保存数据}}//如果x是0x01就是1分钟后(数据保存)x的调节范围(1分钟~16个1)如果还想时间长点可以改x为u32型
基波函数i++最好放到中断函数里,到时间 i 触发一次(要是放程序里,如果被其他中断打断,或者卡在别的中断函数5个小时,你这时钟就不准了)所以i++这句最好放最高抢占,最高优先的中断里
QQ750273008有好的资料记得发给我哦。。。
回复 支持 反对

使用道具 举报

71

主题

183

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
494
金钱
494
注册时间
2013-1-29
在线时间
1 小时
 楼主| 发表于 2013-5-15 15:41:31 | 显示全部楼层
回复【2楼】750273008:
---------------------------------
 你好 感谢你的回答 我这样尝试过 但是如果你用中断产生基波的话 这个中断在任意时刻都不能被屏蔽 否则就不准了 但是 如果工程中有一些对时序要求比较严格的传感器的话 需要屏蔽所有中断 这样这个方法就行不通了  还有什么更好的方法吗?
回复 支持 反对

使用道具 举报

75

主题

458

帖子

4

精华

金牌会员

Rank: 6Rank: 6

积分
1635
金钱
1635
注册时间
2012-8-28
在线时间
71 小时
发表于 2013-5-16 15:15:05 | 显示全部楼层
回复【3楼】langwanglx:
---------------------------------
简单,用ds1302之类的模块,程序过一段时间去读取ic时间值。
QQ750273008有好的资料记得发给我哦。。。
回复 支持 反对

使用道具 举报

71

主题

183

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
494
金钱
494
注册时间
2013-1-29
在线时间
1 小时
 楼主| 发表于 2013-5-17 16:26:59 | 显示全部楼层
回复【4楼】750273008:
---------------------------------
恩看来只能用其他IC了  呵呵 不过还是用高级别的中断吧 呵呵 一般对时序要求不是哪么严格
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-20 04:21

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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