Microchip
直播中

张玉英

8年用户 194经验值
私信 关注
[问答]

RTCC跳过每月的第31天

嗨,目前我正在使用由MCC为PIC24FJ128GC000 6微控制器生成的微芯片RTCC库,由于某种原因,RTCC保持跳过本月的第三十一天(一月、3月、5月等)。我已经把闹钟设置为每分钟一次,当闹钟被触发时,我的UC醒来并使用RTCJtimeGET函数读取时间,它将数据存储在Time.h库中定义的StultTM中。RTCC工作得很好,每分钟都在唤醒,并且总是用RTCJTimeGET函数读取正确的日期,但是由于某种原因,它从一月三十日滚到二月一日(对于31个月的任何月份都是一样的)。物质)依赖于Time.H.C.库的定义,它表示TMtMMay1接受值1-31。如果是这样的话,为什么RTCC从30个月到31个月不转?如果我使用RTCJTimeSET将日期和时间值设置为第三十一个月,那么它就完美地工作了。RTCC是否使用月30日的值,与时间H库的定义相反?下面是我的RTCC init,获取和设置代码,如果需要的话。在我的RTCC初始化之后启用了警报。

回帖(16)

高志新

2020-3-18 07:11:59
嗨,BobAGi,我尝试从2月28日到3月1日,相反,它翻转到2月29日,好像2018是闰年。在不同的年份(2017)测试31个月,同样的情况发生。根据我在PIC24f系列RTCC参考手册中看到的,RTCC具有从2000年到2099年的自动闰年检测。
举报

高志新

2020-3-18 07:27:59
HISRC,我使用XC16 1.25,不包括外围库。但是,如果我错了,请纠正我,但不是Plib的遗产,不再需要下载,因为它们包含在MCC?我将看到您发送的app.,看看是否有什么可以帮助您的,尽管如果我已经在使用XC16编译器,我认为没有必要实现。谢谢!
举报

薄坤坤

2020-3-18 07:44:37
我已经很长时间没有为RTCC编写代码了,但是在RTCC_GetTime函数中有几个点:-据我所知,您不需要设置RTCWEN位来设置RTCPTR位,并且数据表建议只在必要时设置RTCWEN位-而且RTCPTR位将自动执行每个RTCVAL读数的递减
举报

李子跃

2020-3-18 07:59:11
从您对发生的事情的描述中可以看出,问题在于转换月份值。正如您所说,C时间结构使用0-11的月份值(可能是为了便于对字符串进行索引)和mday的1-31。使用1-12个月的值。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分