佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 2258|回复: 25

real time clock

[复制链接]
发表于 28-12-2007 02:19 AM | 显示全部楼层 |阅读模式
有没有人可帮帮我???
我正要做个real time clock 时要用basic来写的。
至少可指点小弟一下。。。
thanks sifu....
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 28-12-2007 02:22 AM | 显示全部楼层
忘了注我是用 pic16f877a 的 mcu
help help 我啦大佬 !!!
回复

使用道具 举报

发表于 28-12-2007 10:51 AM | 显示全部楼层
原帖由 zethteh 于 28-12-2007 02:22 AM 发表
忘了注我是用 pic16f877a 的 mcu
help help 我啦大佬 !!!


功课?
什么都没讲, 大大大大大大大大大大大大大大大大大大大大大大佬都很难帮你啦。

你要的是什么real time clock.是external ic 的real time clock还是自己用pic写real time clock?
用external的话,rtc ic number 是什么??
回复

使用道具 举报

 楼主| 发表于 28-12-2007 11:37 AM | 显示全部楼层
大大佬,谢谢你的回复我要的是自己用pic写real time clock 我的pic是 pic16f877A 有没有办法???
if 我的xtal 是用20Mhz 的能做吗???
回复

使用道具 举报

发表于 28-12-2007 12:20 PM | 显示全部楼层
原帖由 zethteh 于 28-12-2007 11:37 AM 发表
大大佬,谢谢你的回复我要的是自己用pic写real time clock 我的pic是 pic16f877A 有没有办法???
if 我的xtal 是用20Mhz 的能做吗???


可以写。
不过问题就是关电过后时间就会reset.

简单数学。 20mhz = 5 mips.
如果用interrupt 写, let say interrupt period = 10ms.
一秒= 100 个10ms.
一分钟 = 60 秒。
一小时 = 60分钟。
一天= 24个小时。
一个礼拜=7天。

用几个memory来hold  秒,分,时,天。在适当的时候increment / decrement。
你用什么language来写?asm, c, basic?
回复

使用道具 举报

 楼主| 发表于 28-12-2007 05:09 PM | 显示全部楼层
basic 但是realtime clock 好像很复杂, 对吧?
but somehow, 我对picbasic 的coding不是很熟。
你有什么sample code 吗???
回复

使用道具 举报

Follow Us
发表于 28-12-2007 07:20 PM | 显示全部楼层
原帖由 zethteh 于 28-12-2007 05:09 PM 发表
basic 但是realtime clock 好像很复杂, 对吧?
but somehow, 我对picbasic 的coding不是很熟。
你有什么sample code 吗???


以前有写过。 in c language。要找找看。

如果要用basic写,你先打好你basic的基础。这样比较容易做porting.
回复

使用道具 举报

 楼主| 发表于 30-12-2007 01:05 PM | 显示全部楼层

回复 7# 的帖子

我已写了些but 觉得时间有蛮大的差距,大约一小时out 15 sec
请问能不能tuned tuned 呢,是不是要放delay time???
回复

使用道具 举报


ADVERTISEMENT

发表于 30-12-2007 01:45 PM | 显示全部楼层
原帖由 zethteh 于 30-12-2007 01:05 PM 发表
我已写了些but 觉得时间有蛮大的差距,大约一小时out 15 sec
请问能不能tuned tuned 呢,是不是要放delay time???


呵呵!我还不太了解你们所指的 realtime clock 的用途与目的呢! 可以告诉我们你要做的事项吗?为什么 16F877 要用到 20MHz 的 crystal 呢?有时候是看你的需要,而不是想要,也不要以为快就好。你的计时器一个小时相差 0.41%, 误差是太大了。当然是能调整咯!不过是否需要调整,而且要如何调整,就得看你要做的事项了。
回复

使用道具 举报

发表于 31-12-2007 12:37 AM | 显示全部楼层
原帖由 zethteh 于 30-12-2007 01:05 PM 发表
我已写了些but 觉得时间有蛮大的差距,大约一小时out 15 sec
请问能不能tuned tuned 呢,是不是要放delay time???


你用什么technique? polling? interrupt?
通常mcu写rtc不会很准。要准就要读他的assembly. 算execution time.才能tune到准。
所以建议用real time clock ic.容易。 又准。
回复

使用道具 举报

发表于 31-12-2007 01:46 AM | 显示全部楼层
对于 pic16F877A 的话,你可以用 32.768kHz  的crystal , 你的 rtc 将会非常准,要看你用的 crystal 是多少 ppm 了。因此在第九楼我就特别追问你要做的事项了。目的是要知道你要求的准确性有多高,mcu 执行的速度真的需要这么快吗?如果使用 mcu 要达到 rtc 请务必使用 interrupt 的方法,polling 这方法将会影响你的准确性,而且受限制。不鼓励用 intruction 来计算,原因是误差比较大,纵然是汇编语言也不例外。
回复

使用道具 举报

发表于 31-12-2007 09:31 AM | 显示全部楼层
原帖由 rothmans 于 31-12-2007 01:46 AM 发表
对于 pic16F877A 的话,你可以用 32.768kHz  的crystal , 你的 rtc 将会非常准,要看你用的 crystal 是多少 ppm 了。因此在第九楼我就特别追问你要做的事项了。目的是要知道你要求的准确性有多高,mcu 执行的速度真的 ...


如果用external clock 呢?
另外接一个 1second 的 clock 来interrupt ( 时钟里面的quartz)
准确性会高吗?(经过MCU)
回复

使用道具 举报

发表于 31-12-2007 09:52 AM | 显示全部楼层
原帖由 rothmans 于 31-12-2007 01:46 AM 发表
对于 pic16F877A 的话,你可以用 32.768kHz  的crystal , 你的 rtc 将会非常准,要看你用的 crystal 是多少 ppm 了。因此在第九楼我就特别追问你要做的事项了。目的是要知道你要求的准确性有多高,mcu 执行的速度真的 ...


其实32.768khz的crystal也是会差一点。只是比较准而已。 因为mcu始终要有execution time.
用asm算可以去到很准,不懂为什么你讲误差比较大。

以前写过soft rtc.最后没用, 就是觉得tuning不如用ic算了吧。又省ram, rom等mcu资源。
回复

使用道具 举报

发表于 31-12-2007 09:55 AM | 显示全部楼层
原帖由 chan1314 于 31-12-2007 09:31 AM 发表


如果用external clock 呢?
另外接一个 1second 的 clock 来interrupt ( 时钟里面的quartz)
准确性会高吗?(经过MCU)



这个方法也是很准。depend to 你那1second的准确性有多高。
这个方法就不需要考虑到execution 所浪费的时间。
回复

使用道具 举报

发表于 31-12-2007 10:18 AM | 显示全部楼层
原帖由 chan1314 于 31-12-2007 09:31 AM 发表


如果用external clock 呢?
另外接一个 1second 的 clock 来interrupt ( 时钟里面的quartz)
准确性会高吗?(经过MCU)


呵呵!这要看你的需求了,为什么要用external clock 呢?既然 mcu 已经有这个资源了,为什么不用?还特地接个外部时钟。。 (除非资源不足够了,就另当别论).


原帖由 fritlizt 于 31-12-2007 09:52 AM 发表

其实32.768khz的crystal也是会差一点。只是比较准而已。 因为mcu始终要有execution time.
用asm算可以去到很准,不懂为什么你讲误差比较大。

以前写过soft rtc.最后没用, 就是觉得tuning不如用ic算了吧。又省ram, rom等mcu资源。


抱歉,没给大家说明白,我的意思是用mcu 的内部时钟。如果说 crystal 的准确性不高,我也不懂有什么东西比 crystal  更准的了。我是说如果做 rtc 的话,你只能不停的在哪里 polling, 一旦执行其他的程序,你的误差还不大吗?

[ 本帖最后由 rothmans 于 31-12-2007 10:26 AM 编辑 ]
回复

使用道具 举报

发表于 31-12-2007 10:43 AM | 显示全部楼层
原帖由 rothmans 于 31-12-2007 10:18 AM 发表


呵呵!这要看你的需求了,为什么要用external clock 呢?既然 mcu 已经有这个资源了,为什么不用?还特地接个外部时钟。。 (除非资源不足够了,就另当别论).




抱歉,没给大家说明白,我的意思是用mcu  ...


哦。。。原来如此。看来rothmans大大误会我的意思了。。当然我也不建议polling.不过我说指的算instruction是当你要进interrupt service routine的时候, 一定会有一点delay。
假设每1ms interrupt一次。一次interrupt delay 1us.
1秒delay 1ms. 一个钟 = 3600秒= 3600*1ms = 3.6秒。
我相信楼主那15秒时这个原因而来。解决的方法就是读seembly code.找出interrupt delay,再从timer value下手修改。
回复

使用道具 举报


ADVERTISEMENT

发表于 31-12-2007 01:15 PM | 显示全部楼层
其实, 要用MCU做RTC, 可以做到很准确的。。。是有一个简单的方法的。。。。(我的商业秘密, 所以不要问, 不好意思。。。)

我做过Game 的Score baord, 那种大型运动会用的stop watch + 计分表,是那时研发出来的技术, 几乎是零误差, 有误差也是crystal引起的。。。

一般的Interrupt 方法,也会有误差 , 要想办法纠正误差, 是重点。。。
有些人想到用preload timer,可是还是有误差, interrupt latency 的问题。。。。
解决了 , 就可以做到很准确了。。。


用External RTC, 32,768KHz 是重点。。。。一般能买到的是100ppm,还随温度改变, 还是不够好。。。要较好的, 可以用IC DS32Khz (+/- 2ppm, by Maxim), 一年的误差只有+/-60秒。。。。

还有一种方法, 就是用AC的50Hz, 这是一般旧式RTC clock的做法。。。。
TNB会定时的调成50.0Hz。。。

这里我发一个问题给大家猜猜看,
那种我们在马路边/户外看到的电子时钟,sign board型那种LED 钟, 是怎样的。。。。
1. 它的时间准确吗?
2. 它挂在电灯柱上那么高,谁人和怎样去调它的时间?
3. 什么原理?

(如果你不懂我说的那种钟, 那很抱歉。。。, 毕竟并不多见)

[ 本帖最后由 pic 于 31-12-2007 01:20 PM 编辑 ]
回复

使用道具 举报

发表于 31-12-2007 05:19 PM | 显示全部楼层
原帖由 pic 于 31-12-2007 01:15 PM 发表
其实, 要用MCU做RTC, 可以做到很准确的。。。是有一个简单的方法的。。。。(我的商业秘密, 所以不要问, 不好意思。。。)

我做过Game 的Score baord, 那种大型运动会用的stop watch + 计分表,是那时研发出 ...



是不是像路上的camera 那样。 用RJ 45 cable ???
还是像 traffic light 用 PLC ?
难道是用 satellite ???
回复

使用道具 举报

发表于 31-12-2007 08:13 PM | 显示全部楼层
原帖由 chan1314 于 31-12-2007 05:19 PM 发表



是不是像路上的camera 那样。 用RJ 45 cable ???
还是像 traffic light 用 PLC ?
难道是用 satellite ???


我猜就用电力的频率-50Hz

除了这个方法外,据我所知,有些国家会每天定时(例如:12点)用特定的无线电发出信号,时钟就会自动对时。

我相信最准确的是卫星(GPS)对时,误差应该不超过1 us
回复

使用道具 举报

 楼主| 发表于 31-12-2007 09:09 PM | 显示全部楼层
hey, 各位大佬别把话题扯得太远啦。
其实我正用着development board with xtal 在里面了,所以以为可以用现有的20Mhz xtal 来做我的real time clock。
除了以上各位大佬所讲的,我现在的这个setting真的很难tune比较准吗???
我也有听过maxim的那粒chip, 不知道有多贵呢???
回复

使用道具 举报

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

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 1-2-2025 08:07 AM , Processed in 0.139319 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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