Wi-Fi 设备、Wi-Fi 低功耗设备、Wi-Fi BLE 双模设备、Ethernet设备、Ethernet+Wi-Fi设备等
-
hzb
- Posts: 38
- Joined: 2023年 Nov 14日 21:50
基于AXYU模组二次开发, 因为考虑本产品是低功耗4路场景开关,4个按键io分别是0,1,2,17(该模组支持的唤醒引脚),按键驱动使用io外部中断模式,在中断回调函数中开启软件定时器(用于按键去抖),系统就会崩溃,请问:
- 中断函数是不能调用软件定时器嘛?如果不行,如何实现低功耗模式下实现按键扫描功能呢?
- ECR6600-TS2D_TuyaOS-3.8.4 通过哪个接口唤醒配置,没有找到tkl_wakeup_source_set 这个接口
- 唤醒的gpio 0, 1, 2, 17,需要配置成什么io模式?还是无需其他处理,只需要调用类似tkl_wakeup_source_set唤醒设置即可
- 唤醒后,模组默认再次睡眠的时间是多长, 是否可以通过tkl_cpu_force_wakeup接口强制唤醒
- 是否有低功耗相关demo参考
-
Attachments
-
-
JSHANG
- Posts: 35
- Joined: 2023年 Jul 9日 17:45
问题1:不能用,软件定时器封装的函数用到了互斥锁;抛到其它任务去做,可以参考demo里面的tuya_app_key.c处理。
问题2:这个版本里面没这个部分代码,我附件给附上,需要自己合并一下。
vendor\eswin_ecr6600\tuyaos\tuyaos_adapter\src\system\tkl_system.c
vendor\eswin_ecr6600\tuyaos\tuyaos_adapter\include\wakeup\tkl_wakeup.h
问题3:tkl_wakeup_source_set 函数会配置成支持唤醒的IO.
问题4:深度休眠模式,休眠是有业务控制的,你自己要他休眠就会休眠;唤醒后,你不设置让他休眠,模组不会睡。
wake_cfg.source=TUYA_WAKEUP_SOURCE_GPIO;
wake_cfg.wakeup_para.gpio_param.gpio_num=TUYA_GPIO_NUM_0;
wake_cfg.wakeup_para.gpio_param.level=TUYA_GPIO_LEVEL_HIGH;
tkl_wakeup_source_set(&wake_cfg); 设置gpio唤醒
tkl_cpu_sleep_mode_set(1, TUYA_CPU_DEEP_SLEEP) ; 进入deep sleep
定时唤醒:
wake_cfg.source=TUYA_WAKEUP_SOURCE_TIMER;
wake_cfg.wakeup_para.timer_param.mode=TUYA_TIMER_MODE_ONCE;
wake_cfg.wakeup_para.timer_param.timer_num=0;
wake_cfg.wakeup_para.timer_param.ms=60000;
tkl_wakeup_source_set(&wake_cfg); 进入deep sleep
问题5: 深度休眠,唤醒的demo没有,参考问题4。
-
hzb
- Posts: 38
- Joined: 2023年 Nov 14日 21:50
好的,感谢解答,另外:
- 在ECR6600-TS2D_TuyaOS-3.8.4 这份sdk 没有找到相关demo中tuya_app_key.c 文件, 能否帮忙发下,我参考下
- 关于:这个版本里面没这个部分代码,我附件给附上,需要自己合并一下。
vendor\eswin_ecr6600\tuyaos\tuyaos_adapter\src\system\tkl_system.c
vendor\eswin_ecr6600\tuyaos\tuyaos_adapter\include\wakeup\tkl_wakeup.h
没有找到附件有相关文件, 麻烦一起再发下
-
hzb
- Posts: 38
- Joined: 2023年 Nov 14日 21:50
tuya_app_key.c 是通过创建任务不断读按键状态,这种方式适合非低功耗产品, 因为本项目是低功耗产品(进入睡眠模式后,任务失效了), 想要通过按键触发外部中断,再开启按键扫描,而在中断函数中又无法开启软件定时器接口, 那如何实现呢?
-
hzb
- Posts: 38
- Joined: 2023年 Nov 14日 21:50
另外将附件中的tkl_system.c和tkl_wakeup.h替换原sdk,编译链接报错,以下接口未定义
Code: Select all
psm_enable_lower_deep_mode
psm_deep_sleep
pin_func_set_gpio
SDK版本:ECR6600-TS2D_TuyaOS-3.8.4
请问如何解决呢?
-
JSHANG
- Posts: 35
- Joined: 2023年 Jul 9日 17:45
可以切到SDK 3.5的版本上:ECR6600-TSD-3.5.7; 这个版本上deep sleep是正常的,看是否能满足您的需求.
-
hzb
- Posts: 38
- Joined: 2023年 Nov 14日 21:50
下载了3.5.7版本sdk,为什么这个sdk每个demo编译都报错.....
-
hzb
- Posts: 38
- Joined: 2023年 Nov 14日 21:50
-
JSHANG
- Posts: 35
- Joined: 2023年 Jul 9日 17:45