嗨,我想触发按钮按下2秒后触发唤醒事件,我可以先在空闲或活动模式下测试吗?
我的代码作为屏幕的过程,
user_app_init.
- > wkup_button_enable.
-----> wkupct_register_callback(wkup_button_cb);
wkupct_enable_irq(wkupct_pin_select(wkup_button_port,wkup_button_pin),
wkupct_pin_polarity(wkup_button_port,wkup_button_pin,wkupct_pin_polarity_low),
40,
50);
静态void wkup_button_cb(void)
{
if(getBits16(sys_stat_reg,per_is_down))
{
periph_init();
}
gpio_configurepin(gpio_led_port,gpio_led_pin,输出,pid_gpio,false);
app_easy_timer(1,LED_BLINK_TIMER_CB_HANDLER);
}
静态void LED_BLINK_TIMER_CB_HANDLER()
{
静态UINT8_T IDX = 0;
if(gpio_getpinstatus(gpio_led_port,gpio_led_pin)){
gpio_setinactive(gpio_led_port,gpio_led_pin);
}别的{
gpio_setactive(gpio_led_port,gpio_led_pin);
}
if(idx <10){
IDX + = 1;
app_easy_timer(100,LED_BLINK_TIMER_CB_HANDLER);
}别的{
Idx = 0;
gpio_configurepin(gpio_led_port,gpio_led_pin,input_pulldown,pid_gpio,false);
}
}
嗨Andrew886,
WKUP控制器始终打开,因此您可以使用活动或睡眠模式以检测中断。通常,WKUP控制器一直在使用从睡眠模式唤醒。请检查SDK的BLE_APP_SLEEPMODE示例以获取更多信息。关于wkupct_enable_irq()events_num是唤醒中断之前的事件数,所以您需要将其设置为1.此外,允许的最大逐个衰变时间为0x3f。您能否让我知道您使用的SDK的哪个项目是您的问题?
谢谢,PM_DIALOG.
嗨pm_dialog,
我使用BLE_APP_PERITELAL项目(DA14580的SDK 5.0.4)开发我的应用程序,我也引用BLE_APP_SLEEPMODE项目。
我想通过2秒长按一个按钮从深睡眠模式唤醒芯片。由于芯片仅在OTP编程时才进入深度睡眠模式。所以我想在活动模式下测试软件,或者尽可能地扩展睡眠模式。
我的第一个问题:是否有方便的方法测试深睡眠模式?如果将十六进制文件刻录到OTP并无法正常工作,那么我不能再次在同一芯片/板上测试深度睡眠模式。
第2问题:
我可以使用以下代码来触发唤醒时段。如果我评论gpio_setpinfunction,它就不起作用。为什么?
据我所知,在深度睡眠模式下,Periphral是掉电的。gpio_setpinfunction不需要执行。
静态void wkup_button_cb(void)
{
app_easy_timer(1,lowlevel_hold_timer_cb_handler);
// wkupct_register_callback(wkup_button_cb);
wkupct_enable_irq(wkupct_pin_select(wkup_button_port,wkup_button_pin),\
wkupct_pin_polarity(wkup_button_port,wkup_button_pin,wkupct_pin_polarity_low),\
1,\
40);
}
void wkup_button_enable(void)
{
gpio_setpinfunction(wkup_button_port,wkup_button_pin,input_pullup,pid_gpio);
wkupct_register_callback(wkup_button_cb);
wkupct_enable_irq(wkupct_pin_select(wkup_button_port,wkup_button_pin),
wkupct_pin_polarity(wkup_button_port,wkup_button_pin,wkupct_pin_polarity_low),
1,// 1事件
40);
}
嗨Andrew886,
问题#1:请检查da1458x_config_basic.h文件中的cfg_development_debug宏。此宏支持开发/调试模式。对于生产模式,必须禁用它。启用后,SYSRAM不会在深度睡眠模式下断电。因此,允许开发人员使用深度睡眠模式运行应用程序而无需编程OTP内存。雷竞技安卓下载请阅读宏的评论。
问题#2:您是否可以在user_periph_setup.c文件中保留和配置的wkup gpio,说明您是否拥有WKUP GPIO?您不应调用WKUP_BUTTON_ENABLE中的GPIO_SETPINFUNCTION()。请检查GPIO_Button如何在SDK的BLE_APP_SLEEPMODE示例的BLE_PERIPH_SETUP.c / .h文件中定义和配置。
如果您发现任何答案有用,请将其中一个标记为“已接受”。
谢谢,PM_DIALOG.