社区导航

 

搜索
查看: 416|回复: 4

[蓝牙BLE] BlueNRG-系列带睡眠的RTC参考设计

[复制链接]

14

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2018-12-6 14:28 | 显示全部楼层 |阅读模式
背景:BlueNRG系列带硬件RTC,但很不幸,在睡眠的时候,这部分是关掉的。如果此时使用会造成时间不准。
但是很多时候,我们又需要计时功能。怎么解决呢?

方案1:
使用HAL_VTimerTimeoutCallback,不断轮询。(一定程度上可以解决计时问题,但是如果不清楚会容易造成时间不准,误差。)
       因为VTime 接口uint32_t HAL_VTimerAcc_sysT32_ms(uint32_t sysTime, int32_t msTime)  本身就不是精确的,有省去一些tick。


方案2:
使用我原创的RTC代码计时(代码见附件),下面可能凑合着一些英文,大家凑合着看。


说说重点哈:VTime时钟是32K时钟x分频和y倍频得到的, (x可能是25,y可能是2, 或者x=50,y=4),并且睡眠也在计时。





The RTC Demo can  accurate  timing.
              Features:
1.      It include RTC time and Unix timestamp(Number of seconds passed  since 1970-01-01 00:00:00 GMT).
a.      uint32_t get_unix_timestamp(void);
b.      sysTime_t get_date(void);
2.      It base on VTimer(internal time), so  sleep do not effect timing.
3.      It can sync system time by RTC time and by Unix timestamp.
a.      bool sync_time_by_sec(uint32_t timestamp);
b.      bool sync_time_by_rtc(uint16_t year,uint8_t month,uint8_t day,
                                                                                      uint8_t hour,uint8_t minute,uint8_t second);
E[url=]xplain[/url]:
              internal time units is about 2.4114us (1000000/409600)
              409600 ticks is 1s(Relatively accurate)
              internal time will overflow [url=]per[/url] 5242879 ms[87 min]).
Use caution:
              It must be called periodically in a period  of internal time tick (called period < internal time tick period [87 min])
Usage examples:
              while(1) {
    /* BlueNRG-1 stack tick */
    refresh_sys_time();// or get_unix_timestamp();
    BTLE_StackTick();
    BlueNRG_Sleep(SLEEPMODE_WAKETIMER, wakeup_source, wakeup_level);
}


改天我有时间,再发布带软件定时器功能(结合睡眠),消息队列,批量数据透传参考设计。。。。。。敬请关注!
代码仅供参考,目前我测试了一天多,感觉还是挺准的。



sys_time.h

1.63 KB, 下载次数: 9

sys_time.c

5.07 KB, 下载次数: 15

评分

1

查看全部评分



回复

使用道具 举报

14

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2018-12-6 14:31 | 显示全部楼层
这个排版大家凑合着看,主要是看代码。代码才是重点


回复

使用道具 举报

5741

TA的帖子

9

TA的资源

版主

Rank: 6Rank: 6

发表于 2018-12-6 14:56 | 显示全部楼层
给力
虾扯蛋


回复

使用道具 举报

1923

TA的帖子

0

TA的资源

版主

Rank: 6Rank: 6

发表于 2018-12-7 00:45 | 显示全部楼层
很牛X的帖子了


回复

使用道具 举报

6

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2018-12-17 18:13 | 显示全部楼层
给力


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2019-4-19 23:00 , Processed in 0.174808 second(s), 19 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表