Microchip
直播中

孙秀英

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

Pic24 RTCC既未设置也未勾选

大家好,我已经在pic24FJ64GB002(实际上是MPLABX v3.05&XC16 v1.25)上成功地使用RTCC外设多年了,使用了相同的重用代码(部分从Microchip外设库帮助中复制)。这次我正在开发一个更大的项目,它可能对RTCC做错了什么,换句话说,每当我读日历时,它总是给我一个“Sun 00-0000:00:01”,除了秒以外,所有的值都为零。因此,当零点本身是非法值(MON:01-12,MTE:01-31)时,也会使零点和零点归零。每当我调用RTCC日历read时,它总是给我这个答案,它只是看起来RTCC没有设置(RtccWritetimeDate给出“1”作为输出)并且没有打勾(它卡在那个非法日期上)。它总是给我答案。跟着代码:我忘了做一些必要的事情了吗?感谢任何人的帮助,卢卡。

回帖(4)

薄坤坤

2019-10-10 11:25:30
在您的.#include中,您已经(正确地)在开始时得到了xc.h(并且我怀疑您是否实际需要stdio和stdlib include——它们通常被认为在嵌入式系统应用程序几乎不需要它们的地方是必需的),但是您应该删除“p24fxxx”include——即我很少使用库函数来访问外围设备(我是个“控制狂”并且想知道到底发生了什么),并且您没有显示振荡器配置代码,但是我怀疑您需要在OSCCON中设置SOSCEN位(请记住解锁序列!启动振荡器苏珊
举报

丁峙昌

2019-10-10 11:36:30
你好,苏珊,谢谢你的快速回复,为了,我使用stdio进行printf和s printf,使用stdlib进行伪随机数生成器,使用string进行字符串操作,我知道它们对于嵌入式应用程序不是很优化,但是这不是我在这个项目中要重点关注的,CH实际上是我的硕士论文项目。:)谢谢你的无用的包含,删除。我切换到perip库,不必在移植项目上做很大的努力,并且用它的bug来支付一些头痛的费用,毕竟我正在愉快地与它们一起工作。是的,振荡器配置可能是问题,我有点羞于显示振荡器。IALOTER配置,因为我知道它真的坏编码…sad:(假设RTCC与LPRC一起工作)我只是不明白为什么这个代码在另一个具有相同设置的项目中成功工作,现在不能工作。这不但是个不定时问题,而且是个不定时问题,甚至在RtccWriteTimeDate之后也不能理解为什么那个非法的日期。我真的疯了,这是第三天的工作,没有找到解决办法,在这个项目的许多其他问题上积累了延迟,这是我的MSC论文。S项目。谢谢你的帮助,卢卡
举报

郑雅颖

2019-10-10 11:51:53
在您最初的帖子中,我看到了以下顺序:但是mRtccOn()没有任何效果,因为此时,您已经禁用对rtc寄存器的写入(!)试着帮我换一下衣服。(MPLABX版本3.26,XC16版本1.24)[/startEdit]我注意到有些人在Xc16的后续版本中报告了plib rtcc函数的问题。我不经常使用这样的plib材料(plib被废弃了,并且在不久的将来不会被Microchip支持,我想),我也是当我直接写和读rtc模块的寄存器时,XC16的任何版本都没有问题。例如,您可以使用_u builtin_write_RTCWEN(),或者,如果您真的想要控制,可以使用数据表中示例20-1中的序列来启用对rtc寄存器的写入。加德,戴夫
举报

丁峙昌

2019-10-10 12:04:48
你好,Dave,谢谢你的提示,我刚试过,但不幸的是,移动mRtccWrOff宏,甚至从代码中删除它,仍然不能解决问题。问题可能在别的地方吗?无论如何谢谢你的帮助,Lualas-RTCC代码:
举报

更多回帖

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