DA14580主机从机切换的时间问题

sdk3.0.6
需求:有两个设备同时都作为从机(分别叫SlaveA与SlaveB),SlaveA检测按键,当有按键触发时SlaveA切换成主机(MasterA)并搜索广播的设备(理论上会找到SlaveB),建立连接,搜索服务,并往相应的profile写数据,接收到应答后切换回从机(SlaveA)。
以上流程都实现了,测试基本没问题,但时间太慢了,有时候大致1s以内会响应(整个流程处理结束)有时候3s之后才会响应。
问题:
1、时间主要浪费在了哪个地方?
2、要使得功耗最低,速度最快的最优办法~

如下是我使用的方式:
广播间隔时间:500ms,
主机搜索参数:
msg->interval =10; // APP_SCAN_INTERVAL;// 10ms?此处不确定单位是不是ms
msg->window = 4; // APP_SCAN_WINDOW;//4ms?
连接间隔
50ms,超时500ms。
谢谢。

Parents
  • 搜索参数,单位都是625us。你先改大一点试试。
    另外需要确定,从你按键的中断响应,到开始发送命令,扫描adv包并获取地址,之后开始发起建立连接,所有过程的每一步的时间。
    可以用rwble_get_clock() 来获取计时,单位625us,hardware uart直接打印出来。也可以对照空中的sniffer文件看。

Reply
  • 搜索参数,单位都是625us。你先改大一点试试。
    另外需要确定,从你按键的中断响应,到开始发送命令,扫描adv包并获取地址,之后开始发起建立连接,所有过程的每一步的时间。
    可以用rwble_get_clock() 来获取计时,单位625us,hardware uart直接打印出来。也可以对照空中的sniffer文件看。

Children
No Data