⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.wsdof.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
11个员额/ 0个新员额
最后发表
Ankit
离线
最后看到:4个月5天前
加入:2017-05-24 07:42
通过按钮唤醒

你好,

我正在开发一个应用程序,它的大部分时间驻留在扩展睡眠模式。我指的是代理记者的例子。我有以下几个问题。

1.我想唤醒我的系统,当按钮被按下和释放。是可能的吗?
2.我可以根据我的应用程序状态控制唤醒按钮吗?意味着我想停止检测按钮唤醒中断一旦中断产生。1秒后,我想再次启用按钮唤醒中断。

设备:
STS_Dialog(未验证)
嗨Ankit,

嗨Ankit,

选项:

1)当按钮被wkupct_enable_irq(uint32_t sel_pins, uint32_t pol_pins, uint16_t)按下或释放时,可以唤醒系统

Events_num, uint16_t deb_time)函数通过定义极性(高或低)根据您的实现计划。

2)如果你没有通过调用wkupct_enable_irq()来调用中断的启用,你可以在中断发生后停止检测按钮。

您可以在文档选项卡的“软件开发工具包”部分建议使用UM-B-51。

谢谢STS_Dialog。

Ankit
离线
最后看到:4个月5天前
加入:2017-05-24 07:42
我同意我能醒过来

我同意我可以唤醒按钮是按下或释放。

但我想从这两件事中清醒过来。意味着当按钮被按下时,我想被称为button_press_cb(),当按钮被释放时,我想被称为button_relase_cb()。

a.目前,我必须手动切换它们。意思是当我检测按钮按下,我正在配置唤醒irq按钮释放和相同时按钮被释放。如果有更好的解决办法,请建议我。
b.关于停止检测,唤醒按钮,当我调用wkupct_enable_irq()是否适用。函数?

STS_Dialog(未验证)
嗨Ankit,

嗨Ankit,

没有其他选项来触发唤醒定时器,这个过程由唤醒irq功能实现。它取决于极性的定义(高或低)。

2)如果你调用wkupct_enable_irq()使中断使按钮(唤醒计时器)生效,在其他情况下,如果你不调用上述函数,什么也不会发生。

谢谢,

STS_Dialog。

Ankit
离线
最后看到:4个月5天前
加入:2017-05-24 07:42
我现在很清楚(a)了。

我现在很清楚(a)了。

让我们谈谈情形(b)。

我已经按下了唤醒按钮。在那个注册的回调函数被调用之后,我在其中做了一些处理。之后,如果我想继续接收那个按钮上的中断。我必须通过调用wkupct_enable_irq()函数再次启用irq吗?

STS_Dialog(未验证)
是的,你得打电话给wkupct

是的,你必须再次调用wkupct_enable_irq()函数,否则当你再次按下按钮时,你将没有中断(唤醒时间,为整个过程启用中断)。正如你所看到的,你想要按下按钮多少次,使中断,所以你不得不调用上述功能。

谢谢STS_Dialog。

Ankit
离线
最后看到:4个月5天前
加入:2017-05-24 07:42
你好,

你好,

每当按钮唤醒回调被调用时,我是否必须通过调用GPIO_ConfigurePin()函数在每个唤醒上配置按钮pin ?

MT_dialog
离线
最后看到:三个月三个星期前
工作人员
加入:2015-06-08 34
嗨Ankit,

嗨Ankit,

不,定义引脚功能的配置只在设备唤醒时完成一次,通过外围init()函数,除了调用wkupct_enable_irq(),您不需要做任何其他事情来触发唤醒中断,就像我同事提到的。

由于MT_dialog

Ankit
离线
最后看到:4个月5天前
加入:2017-05-24 07:42
现在我面对的是新的

现在我面临着新的问题。

我观察到,在进入扩展睡眠模式后,有时按钮事件不会被检测到。按它2-3次后,它实际上检测按钮按下事件和唤醒回调正在被调用。当设备不在睡眠模式时,它可以正常工作。看门狗在其中发挥了作用吗?我已经启用了CFG_WDOG。

STS_Dialog(未验证)
嗨Ankit,

嗨Ankit,

我已经检查了您的场景,它工作正常(进入扩展睡眠模式后),您可以检查wkupct_enable_irq()函数是否在按下按钮时被调用。也许你在条件中调用函数,结果是false,另一个选项是再次检查极性。

谢谢你!

STS_Dialog。

Ankit
离线
最后看到:4个月5天前
加入:2017-05-24 07:42
嗨hantig,

嗨hantig,

请不要在现有的帖子中发布额外的问题。为新问题创建一个新线索。

要启动新线程,请转到https://support.dialog-semiconductor.com/forum,选择相关论坛类别,如“dialog-smartbond-bluetooth-low-energy- software”。在这里你可以看到一个按钮“新主题”。通过点击它,你可以开始新的线程。