找回密码
 立即注册

微信扫码登录

查看: 259|回复: 4

[BLE SDK] tlsr8258中接口blc_pm_setAppWakeupLowPower使用样例

[复制链接]

10

主题

16

回帖

126

积分

荣耀黄金

积分
126
发表于 2025-11-5 11:34:20 | 显示全部楼层 |阅读模式 来自 广东深圳
Information
说明:   建议参照本版块置顶帖内容输入必要信息
芯片型号: tlsr8258
SDK及版本: 多链接sdk
在tlsr8258低功耗sdk文档 低功耗管理章节中提到接口blc_pm_setAppWakeupLowPower是应用层唤醒的接口,sdk文档中没有过多的介绍,能否帮忙介绍下该接口的使用场景以及样例,

我使用了下该接口,好像不起作用,进入休眠(suspend模式)之后 应用层也无法唤醒

0

主题

15

回帖

78

积分

不屈白银

积分
78
发表于 2025-11-5 16:43:22 | 显示全部楼层 来自 上海
Hi
对于应用层,想在某个时刻唤醒的话,用soft timer就可以达到目的,参考handbook描述的如下demo

Demo
blt soft timer的Demo code请参考B91m (B91 and B92) feature中TEST_USER_BLT_SOFT_TIMER。

int gpio_test0(void)
{
    //GPIO toggle to see the effect
    gpio_toggle(GPIO_LED_BLUE);
    return 0;
}

_attribute_ble_data_retention_ static u8 timer_change_flg = 0;

int gpio_test1(void)
{
    //GPIO toggle to see the effect
    gpio_toggle(GPIO_LED_GREEN);
    timer_change_flg = !timer_change_flg;
    if (timer_change_flg) {
        return 7000;
    } else {
        return 17000;
    }
}

int gpio_test2(void)
{
    //GPIO toggle to see the effect
    gpio_toggle(GPIO_LED_WHITE);

    //timer last for 5 second
    if (clock_time_exceed(0, 5000000)) {
        //return -1;
        //blt_soft_timer_delete(&gpio_test2);
    } else {
    }

    return 0;
}

int gpio_test3(void)
{
    //GPIO toggle to see the effect
    gpio_toggle(GPIO_LED_RED);
    ;

    return 0;
}
初始化:

##if (BLT_SOFTWARE_TIMER_ENABLE)
blt_soft_timer_init();
blt_soft_timer_add(&gpio_test0, 23000);  //23ms
blt_soft_timer_add(&gpio_test1, 7000);   //7ms <-> 17ms
blt_soft_timer_add(&gpio_test2, 13000);  //13ms
blt_soft_timer_add(&gpio_test3, 100000); //100ms
##endif
定义了4个任务,这4个定时任务各有特点:

(1) gpio_test0每23ms toggle一次。

(2) gpio_test1使用了7ms/17ms两个时间的切换定时。

(3) gpio_test2在系统运行5s后将自己删掉。代码中有两种方式可以实现这个功能:一是调用blt_soft_timer_delete(&gpio_test2);二是return -1。

(4) gpio_test3每100ms toggle一次。



谢谢

10

主题

16

回帖

126

积分

荣耀黄金

积分
126
 楼主| 发表于 2025-11-6 09:11:16 | 显示全部楼层 来自 广东深圳
TL_YWY 发表于 2025-11-5 16:43
Hi
对于应用层,想在某个时刻唤醒的话,用soft timer就可以达到目的,参考handbook描述的如下demo

明白,多谢

10

主题

16

回帖

126

积分

荣耀黄金

积分
126
 楼主| 发表于 2025-11-6 17:49:53 | 显示全部楼层 来自 广东深圳
我使用定时的方式试了下,好像不行啊,cpu_sleep_wakeup 之后,定时器就不会跑了 ,一直无法唤醒    cpu_sleep_wakeup(SUSPEND_MODE, PM_WAKEUP_PAD,
                        (unsigned long)(clock_time() + 200 * CLOCK_16M_SYS_TIMER_CLK_1MS * 2))   

0

主题

15

回帖

78

积分

不屈白银

积分
78
发表于 2025-11-10 10:15:41 | 显示全部楼层 来自 上海
Hi、

请问是用的哪个demo? 帮忙用未做任何修改的demo,然后使用二层提到的blt_soft_timer_add这个接口唤醒试试看呢

感谢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Telink forum ( 沪ICP备17008231号-1 |沪公网安备31011502403548号 )

GMT+8, 2025-11-29 02:14 , Processed in 0.090339 second(s), 21 queries .

Powered by Discuz! 隐私政策

泰凌微电子版权所有 © 。保留所有权利。 2024

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