[ZLG-ARM] LPCARM之RTC应用举例及日期校验和星期自动调节祥解

[复制链接]
5480|23
 楼主| hotpower 发表于 2007-1-28 01:19 | 显示全部楼层 |阅读模式
/*--------------------------------------------------------------------------<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LPCARM之RTC应用举例及日期校验和星期自动调节祥解<br /><br />本程序在周立功的LPC213x开发板上调试通过,用汽车电子的串口通V3.22进行输出测试。<br />本文主要介绍RTC的初始化,中断及串口命令设置及分析。<br />同时也介绍了软向量中断激活的范例及应用状态机对串口命令的分析例程。<br /><br />LPCARM的RTC只能在0时星期加1且不校对,故增加星期自动调节功能。<br />星期自动调节采用菜农自创的不需查表星期算法。此算法网上都能搜索到。<br />在百度里搜索:&quot;万年历星期的算法&quot;即可找到,<br />倒塌了,竟有如此多的人转载不注明来自菜地!!!真气晕了菜农!!!<br />不想点名了,搜索一下便知结果。<br /><br />有时也怪菜农自己,以前没博客,由没记笔记的习惯,随意在论坛里发表或答疑,有些<br />自传的算法随意发帖,现在想来真是很倒塌~~~<br /><br />本文给出的是菜农之不需查表的0000年~9999年星期算法(菜农自创)<br />并附赠0000年~9999年月最大天数算法(菜农自创)<br /><br />串口命令:<br />1.改写日期命令&nbsp;&nbsp;$Date,2007-01-28&ltCRLF&gt&nbsp;内带星期自动调节<br />2.改写时间命令&nbsp;&nbsp;$Time,11:11:11&ltCRLF&gt<br />3.改写星期命令&nbsp;&nbsp;$Week,0&ltCRLF&gt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;允许错误星期输入,可用$Date命令纠错<br /><br />菜地公告:引用本文必须注明出处!!!<br /><br />菜农HotPower&nbsp;2007.1.27&nbsp;于西安大雁塔菜地&nbsp;http://HotPower.21ic.org/<br />---------------------------------------------------------------------------*/<br /><br /> 相关链接:<a href='http://www.**/blog/hotpower/15218/message.aspx'>http://www.**/blog/hotpower/15218/message.aspx</a>
iversonma 发表于 2007-1-28 01:29 | 显示全部楼层

菜农申请个什么专利去吧,省得麻烦

半夜还的在坛子里面到处灌水~
 楼主| hotpower 发表于 2007-1-28 01:43 | 显示全部楼层

倒塌了~~~菜农就是一个苦命人~~~

主要是赶着为一本书附程序例程,要调试通过才能不误人子弟呀~~~
iversonma 发表于 2007-1-28 02:45 | 显示全部楼层

呵呵,菜农真负责任~

市面上卖地书有基本里面程序是完全能通过地呀,基本都是抄来抄去~<br />菜农写的什么书,有机会也买本瞅瞅~
 楼主| hotpower 发表于 2007-1-28 08:08 | 显示全部楼层

真不想搞这种倒塌的事~~~

主要是弟子们说写,基本由他们主笔.<br />我主要提供倒塌的思路和实战例程及解决方案等~~~<br /><br />被逼无奈...实在倒塌...<br /><br />但不管如何,菜农发表的例程都必须通过软件和硬件调试后才会发布,这是菜农的原则~~~
汽车电子 发表于 2007-1-28 09:10 | 显示全部楼层

好东东,我需要引用你的改进的算法

&nbsp;&nbsp;原来是pRTC-&gtWeek&nbsp;=&nbsp;((Day+2*Month+3*(Month+1)/5+wYear+wYear/4-wYear/100+wYear/400)+1)%7;<br /><br />&nbsp;&nbsp;执行慢些
 楼主| hotpower 发表于 2007-1-28 14:43 | 显示全部楼层

哈哈~~~这是以前搞DS1302时为校正其倒塌的星期做的算法

个人认为还行吧...至少省略了查表,不过查表也没什么不好的.<br />LPCARM的RTC比DS1302的更倒塌,都能改写为0月或250月0日日周9等,实在倒塌了~~~<br />而且0点翻转也是简单地星期加1,根本不管星期对否.真做产品不注意的话在用户面前就要倒塌了~~~<br /><br />打算在过年前赶写LPCARM的全部模块的例程和最终的非典体会.<br />也想谈下为什么选LPC213X系列是从倒塌的MCU向ARM迈进的最佳途径,因为菜农<br />将会把非典的倒塌思维全部灌输其内部,使水鸟们应用LPCARM比MCU更简单明了.<br /><br />只是弟子要我收敛点,例程最好用C,且少灌些非典的水~~~以免他们闹肚子~~~
iversonma 发表于 2007-1-28 17:41 | 显示全部楼层

菜农这里倒塌看来有好几个意思呀~

慢慢领会
电子蔡鸟 发表于 2007-1-28 18:06 | 显示全部楼层

星期算法太慢了.这么多除法运算,想死人?

查表省时省空间,为何不用?
汽车电子 发表于 2007-1-28 19:33 | 显示全部楼层

一天算一次就可以了,再复杂也不怕

  
 楼主| hotpower 发表于 2007-1-28 20:59 | 显示全部楼层

哈哈~~~实际上在初始化和0点翻转算即可.

如果只针对对某年将几乎不用任何算法~~~我几乎可以不超过8秒吧~~~<br /><br />菜农近日赶作业~~~马上发GPS状态机解码的程序包~~~<br /><br />倒塌了~~~作业还有8篇呀,赶紧做作业~~~否则过年没人给买红库带~~~
 楼主| hotpower 发表于 2007-1-28 22:02 | 显示全部楼层

现在掉电开始做LPCARM的RTC功耗实验

我加了个0.047F的法拉电容,现在开始断电,不知能否维持到明天.<br /><br />以前用DS1302做同样的实验可以维持7天左右,不知谁更倒塌~~~
 楼主| hotpower 发表于 2007-1-29 07:09 | 显示全部楼层

不到9个小时就倒塌了,估计还要早的多,是什么地方没关严???

看来要研究一下RTC如何低功耗的问题了~~~
simple1423 发表于 2007-1-29 12:44 | 显示全部楼层

什么叫“倒塌”,弟子是什么意思

电容怎么接的呢?把电容改成1F的呢?<br /><br />功耗试验的依据是什么?就靠电容的放电支撑
汽车电子 发表于 2007-1-29 14:40 | 显示全部楼层

对LPC2000的内部RTC确实没信心,我都用外部RTC

&nbsp;&nbsp;&nbsp;外部RTC和内部RTC一起用,但电池只对外部RTC供电。<br />&nbsp;&nbsp;&nbsp;系统每次启动,以外部RTC为基准较正内部的,GPS从无信号到有效信号时较准内部和外部RTC<br />&nbsp;&nbsp;&nbsp;系统进入正常工作状态时,所有时钟均用内部RTC,这样更方便。
 楼主| hotpower 发表于 2007-1-29 21:52 | 显示全部楼层

从下图可以看出LPCARM的RTC根本未做任何校验

这是在上电后的图示,89日肯定是倒塌的.<br />故上电必须初始化或进行校准.<br /><br />汽车电子的主义停不错~~~成本肯定增加.<br />但废除内部RTC肯定是不对的.因为外部RTC一般都是采用SPI/I2C等通讯.<br /><br />上电用外部RTC或GPS校准后,即可一直采用内部RTC.<br /><br />有网友说星期算法太慢,实际应用只在上电或某特定时刻才校准一次.
stycx 发表于 2007-1-29 22:10 | 显示全部楼层

我见过几种rtc都是不校验的

  
汽车电子 发表于 2007-1-30 01:16 | 显示全部楼层

是的,LPC2000的RTC是很烂...

&nbsp;&nbsp;&nbsp;&nbsp;很早前就遇到过有非法数据了。<br /><br />&nbsp;&nbsp;&nbsp;有个块LPC2138的板子,200mAh的电池供内部RTC工作一年了,还正常,只不过时间不是很准,一般3个月会相差1分钟的。其实准不准我并不关心,因为可以用GPS校正,我关心的是功耗...
 楼主| hotpower 发表于 2007-1-30 07:34 | 显示全部楼层

哈哈~~~小夜猫回来了~~~老夜猫准备变早猫

倒塌了~~~又没我上网的权力了~~~
soso 发表于 2007-1-30 08:28 | 显示全部楼层

您真早!

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;何不考虑搬一台PC回家呢?不要常熬夜。我给自己的原则:0点以前基本不睡,但到了0点,就是小孩尿床、老鼠捉猫我也立即停止一切工作,洗洗睡觉去!各位:医学证明,习惯熬夜超过0点以后,很容易诱发癌症的!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1460

主题

21617

帖子

508

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