完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我已经用PIC32MX130F064D构建了一个基于GPS的时钟。它工作正常,我能够根据美国变化的日期打开和关闭DST。DST在3月的第二个星期日启用,截止到十一月的第一个星期日。我这样做是通过使用一天的周功能,适用于任何一年。然后,我查看月份,以确定当前第0天是否是进行更改的那一天。我需要做的是在开始时确定DST是否有效。现在,当DST的状态发生变化时,我将新的状态保存到Flash并在启动时读取。只要时钟在DST改变的那天运行,就可以正常工作。但是,假设时钟在2月28日关机,直到3月20日才重新上电。当时钟通电时,它读取闪存并告诉DST关闭。但是,DST现在已经生效,因为它是在3月13日(2016)生效。我需要一些算法,可以在启动时使用,以实际确定DST的状态,在当前时间。我想我可以在接下来的50年里创建一个查找表并使用它。但也许有人对如何做到这一点有更好的想法?
|
|
相关推荐
8个回答
|
|
只要确定DST应该关闭或打开,并将其与先前状态进行比较。如果不同,则改变它。伪代码::
|
|
|
|
这只是一些涂鸦,你需要根据你的DayOfMax()函数来调整数字,但是我希望它能给你一些想法。编辑:修正了“12”-gt;“11”。
|
|
|
|
请注意,参与DST愚蠢是高度的位置依赖性(而不仅仅是在美国大陆)。更不用说传播神话的ID10T可以(并且已经)任意地改变开始/结束日期。祝你好运。
|
|
|
|
在RIC的代码(第二个函数)中,我认为他需要:因为(月和12)很少是真的。
|
|
|
|
相关但有些OT:在UTC(最好)或非DST中保留所有时间戳的一个原因是,如果使用DST记录本地时间,则存在不明确和不可能的时间。例如(使用美国转换时间):2015年11月1日,01:30a,本地时间发生两次。2016年3月13日,02:30a,DST从来没有发生过。它持续一秒钟,之后是7月1日,00:00。---我不会对大卫的帖子多加评论,但是我确实给全世界(至少那些喜欢DST的人)提供了一个很棒的节能设备:它被称为“热能储蓄日历”。它就像DST一样工作。在一月份,你称之为6月(北半球),瞧:你节约能源是因为,嗯,仅仅因为GPEdit1:“一秒钟”->;“一秒钟”。编辑2:“2015年11月1日,02:30a”->;“2015年11月1日,01:30a”。由于Wikipedia文章中图表和文本之间的差异而导致的更改:https://en.wikipedia.org/wiki/Daylight_save_time#Procedure——注意图表对于美国是不正确的。
|
|
|
|
的确。好发现!
|
|
|
|
谢谢你的评论。格伦,时钟不会被用于时间戳。只是为了时间的目的。我自己做的只是收集GPS知识,以及如何在LCD上显示大写字母。另外,我需要一个项目让我开始沿着PIC32的路径。Ric,你的第二篇文章似乎包含了所有我需要指向正确方向的内容。谢谢你的建议。
|
|
|
|
这里是另一个基于DST的,从3月的最后一个星期日到十月的最后一个星期日:Ruben
|
|
|
|
只有小组成员才能发言,加入小组>>
5277 浏览 9 评论
2052 浏览 8 评论
1966 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3228 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2275 浏览 5 评论
810浏览 1评论
706浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
642浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
700浏览 0评论
597浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-8 02:27 , Processed in 1.141011 second(s), Total 90, Slave 74 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号