Topic

FAQ
Login Register
SDK计算唤醒时间点错误
Jul 22, 2022 17:52

/

A

/A

SDK: telink_b85m_ble_single_connection_sdk_v3.4.2.1

芯片:8250

工程及问题描述:

       1、在825x_ble_sample基础上,修改广播采用Ext_adv模式,如下图初始化及启动广播

            

            

      2、初始化软件定时器及开启一个1s的软件定时器;

          

      3、工程配置改成32K模式;

      4、在休眠进入函数,打印定时器的唤醒tick、当前时间tick、要设置的唤醒tick,如图

          

     5、设备启动后,手机连接设备,连接30秒之后,手机断开与设备的连接,设备进入休眠,发现计算的唤醒  

          tick值不正确,如下图

        

      如何处理此问题?









4 replies
TL_Soyo Jul 25, 2022 11:37
0
/A

你好,
   如果你的设备断开连接后,状态为非广播和连接态的空闲状态时,协议栈的休眠管理交给用户,所以在空闲状态下当你设置了软件定时器的值时,需要自行调用cpu_sleep_wakeup_32k_rc来设置唤醒时间,同时你在初始化设置了1s定时器,他会在1s后就执行,为什么要在30s后再判断呢。

andy2013 [Author] Jul 25, 2022 12:35
0
/A

hi Soyo

    你可能还没明白具体问题是什么,问题是SDK进入休眠了,但是唤醒tick值计算的不对(这个tick是SDK计算的,非用户,用户没有调用

     cpu_sleep_wakeup_32k_rc进入休眠)。

     第一,目前程序未处理空闲状态的休眠,但是断开连接后,还是广播状态,所以用户不需要处理休眠这块。

     第二,为什么要30s后,手机主动断开,那是因为在30s内断开连接,不会出现SDK计算的唤醒tick不正确的情况。

    有没有FAE支持的联系方式,直接发工程,你们可以试下,为什么出现这问题。

TL_Soyo Jul 25, 2022 15:26
0
/A

你好,

    可以和原始工程比对一下修改,可以在首页获得FAE联系方式。

andy2013 [Author] Jul 26, 2022 17:50
0
/A

hi Soyo

    是在下面位置联系吗?