完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正在使用 S32K314 板。在我的项目中,我添加了 RTC 并调用 Rtc_Ip_GettimeDate 来获取时间。
但我也需要得到毫秒数。有没有办法在 Rtc 中获取毫秒数? |
|
相关推荐
1个回答
|
|
S32K314 的 RTC 模块只能获取到秒级别的时间,无法直接获取毫秒数。不过,你可以通过自己的程序实现一个计数器来获取毫秒数,具体步骤如下:
1.在 RTC 初始化函数中开启 PIT(Periodic Interrupt Timer)模块,并将 PIT 设置为每 1 毫秒产生一次中断。 2.在 PIT 的中断函数中实现一个计数器,每次中断对计数器加 1。 3.使用 RTC 获取到秒级别的时间后,再加上计数器的值,即可得到毫秒数。 示例代码: ``` void RTC_Init(void) { /* 初始化RTC */ /* 初始化PIT */ PIT_Init(); PIT_EnableInterrupts(kPIT_Chnl_0, kPIT_TimerInterruptEnable); PIT_SetTimerPeriod(kPIT_Chnl_0, USEC_TO_COUNT(1000U, CLOCK_GetBusClkFreq())); PIT_StartTimer(kPIT_Chnl_0); } void PIT_IRQHandler(void) { static uint32_t milliseconds = 0; PIT_ClearStatusFlags(kPIT_Chnl_0, kPIT_TimerFlag); milliseconds++; } void GetTimeDate(void) { rtc_datetime_t datetime; /* 获取RTC时间 */ uint32_t milliseconds = PIT_GetLifetimeTimerCount(PIT); uint32_t seconds = datetime.second; uint32_t totalMilliseconds = seconds * 1000 + (milliseconds / 1000); /* 计算出的总毫秒数即为当前时间的毫秒数 */ } ``` 需要注意的是,该方法只是一种近似的获取毫秒数的方式,并不是精确的毫秒数。 |
|
|
|
只有小组成员才能发言,加入小组>>
1924个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
36400 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
4625 浏览 1 评论
6090 浏览 1 评论
6797 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
4235 浏览 0 评论
634浏览 2评论
求助,S32G上Core M启动后如何让Core A在Flash指定位置加载uboot?
631浏览 2评论
ESP32-WROVER-IE + LAN8720以太网,GPIO0电压只有1.6v,无法正常进入spi flash boot模式如何解决?
633浏览 2评论
求分享适用于PN7160 Android的NFC工厂测试应用程序
716浏览 2评论
819浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-11 19:28 , Processed in 1.229703 second(s), Total 46, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号