蓝牙BLE芯片PHY6222之RTC计时

news/2025/1/13 6:35:01/

蓝牙BLE芯片PHY6222之RTC计时

个人建议使用外部32K作为RTC的时钟源,精度相对6222内部32K高很多,内部32K看官方资料是±500ppm的时钟精度

RTC驱动

datetime_t  ttdatetime;
#define UNIX_2000 946656000
UTCTimeStruct user_get_utc(void);
void user_set_utc(UTCTimeStruct *m_UtcStr);
void my_dump_byte_reverse(uint8_t* pData, int dlen);
void app_set_time(uint16 year, uint8 month, uint8 day, uint8 hour, uint8 minutes, uint8 seconds)
{UTCTimeStruct test_time;test_time.year    = year;test_time.month   = month - 1;test_time.day     = day - 1;test_time.hour    = hour;test_time.minutes = minutes;test_time.seconds = seconds;user_set_utc(&test_time);
}void get_current_systerm_time(datetime_t * rtc_time)
{UTCTimeStruct convet_timestamp_unit;UTCTimeStruct cnt;UTCTime utc_timecnt;
// »ñÈ¡utcʱ¼äcnt = user_get_utc();// ¸üÐÂʱ¼äµ½rtc_timeÖÐrtc_time->year      = cnt.year;rtc_time->month     = cnt.month;rtc_time->day       = cnt.day;rtc_time->hour      = cnt.hour;rtc_time->minutes   = cnt.minutes;rtc_time->seconds   = cnt.seconds;// ¸üÐÂʱ¼äµ½rtc_timeÖÐconvet_timestamp_unit.year      = cnt.year;convet_timestamp_unit.month     = cnt.month - 1;convet_timestamp_unit.day       = cnt.day - 1;convet_timestamp_unit.hour      = cnt.hour;convet_timestamp_unit.minutes   = cnt.minutes;convet_timestamp_unit.seconds   = cnt.seconds;utc_timecnt = osal_ConvertUTCSecs(&convet_timestamp_unit) + 946656000;LOG("#timestamp=%d\r\n", utc_timecnt);LOG("#%4d:%02d:%02d--%02d:%02d:%02d\r\n", rtc_time->year, rtc_time->month, rtc_time->day,rtc_time->hour, rtc_time->minutes, rtc_time->seconds);}UTCTime appUTC_time;
UTCTimeStruct appUTC_timeStruct;
//ʱ¼äת»»³ÉÃë²¢ÉèÖÃutc ʱ¼ä
void user_set_utc(UTCTimeStruct *m_UtcStr)
{appUTC_time = osal_ConvertUTCSecs(m_UtcStr);osal_setClock(appUTC_time - UNIX_2000);
}//»ñȡϵͳʱ¼ä
UTCTimeStruct user_get_utc(void)
{UTCTimeStruct tmp_utcStr;appUTC_time = osal_getClock();appUTC_time += UNIX_2000;osal_ConvertUTCTime(&appUTC_timeStruct, appUTC_time);tmp_utcStr = appUTC_timeStruct;tmp_utcStr.day += 1;tmp_utcStr.month += 1;return tmp_utcStr;
}

RTC初始化

app_set_time(2022, 4, 10, 12, 33, 56);
osal_set_event( simpleBLEPeripheral_TaskID, TIMER_DT_EVT );

定期获取RTC时间

    if ( events & TIMER_DT_EVT ){get_current_systerm_time(&ttdatetime);osal_start_timerEx( simpleBLEPeripheral_TaskID, TIMER_DT_EVT, 30000 );return ( events ^ TIMER_DT_EVT );}

PS:个人学习笔记,想参考就参考,不参考划走下一篇,工程师还是要具备的调试,分析能力

在这里插入图片描述


http://www.ppmy.cn/news/724226.html

相关文章

phy6222 IIC从机配置

phy6222 IIC从机配置 一、IIC从机初始化配置 void user_iic_slave_init(void) {hal_gpio_pin_init(P33, IE);hal_gpio_pin_init(P34, IE);hal_gpio_pull_set(P33, STRONG_PULL_UP);hal_gpio_pull_set(P34, STRONG_PULL_UP);uint8_t op_ret 0;I2C_Slave_Parameter iic_slave_…

蓝牙PHY6222添加OTA升级功能

主要步骤: 1:代码添加 ota_app_service 2:keil软件添加ota_app代码 3:烧录软件添加ota设置 4:手机ota_app升级准备: 奉加微电子官网下载6222的代码SDK,V3.0以上 下载官网的PhyPlusKit串口烧录工…

蓝牙BLE芯片PHY6222之I2C主从通信

蓝牙BLE芯片PHY6222之I2C主从通信 开发环境I2C主机I2C从机注意事项 开发环境 1.PHY6222开发板 2.SDK版本以及路径:SDK\release_bbb_sdk-PHY62XX_SDK_3.0.9\example\peripheral\gpio 3.硬件连接 SDA  GPIO_P33----------GPIO_33 CLK  GPIO_P34----------GPIO_34…

蓝牙BLE芯片PHY6222之OTA

蓝牙BLE芯片PHY6222之OTA 什么是OTA将OTA驱动移植到应用代码一、SLB移植用PhyPlusKit烧录支持SLB的文件支持SLB的OTA bin文件的制作使用APP进行SLB升级二、Single Bank 移植用PhyPlusKit烧录支持Single Bank的OTA文件支持Single Bank OTA 的hex16文件制作使用APP进行Single Ban…

如何修改Jupyter Notebook的默认目录和默认浏览器

一、修改默认目录 Jupyter Notebook的文件默认保存目录是C:\Users\Administrator,默认目录可在黑窗口中查看,如下图所示: 为了方便文档的管理,可将默认目录修改成自己想保存的地方。修改方法如下: 1、找到config文件 …

前端适配笔记本缩放125%,150%导致页面错乱问题

由于前端在开发时使用的都是标准ui设计图,基本都是按照所以1920*1080, 而小屏幕笔记本由于分辨率高,所以导致的显示元素变小,因此很多笔记本的默认显示都是放大125%或者150%。 如果页面比较简单就让多余的空白单边扩展&#xff0c…

台式机计算机型号怎么查,电脑配置怎么查询?笔记本台式机查询电脑配置的四种方法...

电脑配置怎么查询?虽然说现在网络非常的发达,但是并不是每个人都是电脑专家,还有一些不怎么接触电脑的小白用户,对于电脑配置怎么查询并不了解。今天智能手机网就为大家带来了电脑配置查询的具体方法,一起来瞧一瞧吧。…

查看电脑配置信息

在开始菜单的 “运行” 输入 dxdiag 后,点击确定(或者快捷键winR) 进入下面这个窗口,加载完后,点击 “保存所有信息”,在DxDiag.txt里可以查看本电脑的品牌(System Manufacturer)、型…