你好,
我正在工作的一个应用程序,其中大部分时间驻留在延长睡眠模式。我指的是prox_reporter的例子。我有以下几个问题。
1.我想唤醒我的系统时,按下按钮,以及释放。是可能的吗?2.我可以根据我的申请状态控制通过按钮唤醒吗?意味着一旦生成中断,我想停止检测按钮唤醒中断。1秒后,我想再次重新启用按钮唤醒中断。
嗨Ankit,
选项:
当按钮被wkupct_enable_irq(uint32_t sel_pins, uint32_t pol_pins, uint16_t)按下或释放时,你可以唤醒你的系统
Events_num, uint16_t deb_time)函数通过定义极性(高或低)根据您的实现计划。
如果你没有调用wkupct_enable_irq()来启用中断,你可以在中断发生后停止检测按钮。
您可以在文档选项卡的软件开发工具包部分中建议UM-B-51。
谢谢STS_Dialog。
我同意按下或释放按钮我都可以醒来。
但我想在这两件事上醒来。意味着当按钮被按下时,我想被称为button_press_cb(),当按钮释放时,我想被称为button_relase_cb()。
a.目前,我必须手动切换它们。意味着当我检测按钮按下时,我为按钮释放配置唤醒irq,当按钮释放时相同。如果有更好的解决办法,请告诉我。b.关于停止检测,唤醒按钮,它是否适用,只要我调用wkupct_enable_irq()。函数?
1)没有其他选项触发唤醒定时器,此过程由唤醒irq函数实现。这取决于极性的定义(高或低)。
2)如果你调用wkupct_enable_irq()启用中断,使按钮(唤醒定时器),在其他情况下,如果你不调用上述函数什么也不会发生。
谢谢,
STS_Dialog。
我现在明白了。
让我们谈谈情景(b)。
我已经启用了叫醒按钮。在那个注册的回调函数被调用之后,我在里面做了一些处理。之后,如果我想继续接收那个按钮上的中断。我必须再次通过调用wkupct_enable_irq()函数启用irq吗?
是的,你必须再次调用wkupct_enable_irq()函数,否则当你再次按下按钮时将不会有中断(启动整个过程的中断时间)。正如你所看到的,你想按下按钮,使中断,所以你必须调用上述功能的次数。
每当按钮唤醒回调被调用,我必须配置按钮引脚每唤醒调用GPIO_ConfigurePin()函数?
不,定义引脚功能的配置只在设备唤醒时完成一次,通过外围init()函数,你不需要做任何其他的唤醒中断来触发除了调用wkupct_enable_irq(),正如我的同事提到的。
由于MT_dialog
现在我正面临着新的问题。
我已经观察到,进入扩展睡眠模式后,有时不会检测到按钮事件。按下2-3次后,它实际上检测按钮按下事件,并调用唤醒回调。当设备不在睡眠模式时,它工作正常。看门狗在它中扮演角色吗?我启用了CFG_WDOG。
我检查了您的场景,它工作良好(在进入延长睡眠模式之后),您可以检查当您按下按钮时,是否调用wkupct_enable_irq()函数。也许你在一个条件中调用函数,它是假的,另一个选择是再次检查极性。
谢谢你!
嗨hantig,
请不要在现有的帖子中发布其他问题。为新问题创建一个新线程。
要启动新线程,请转到https://support.dialog-semiconductor.com/forum,选择相关论坛类别,如“dialog-smartbond-bluetooth-low-energy- software”。在这里你可以看到一个按钮“新主题”。通过点击它,你可以开始新的线程。
嗨Ankit,
选项:
当按钮被wkupct_enable_irq(uint32_t sel_pins, uint32_t pol_pins, uint16_t)按下或释放时,你可以唤醒你的系统
Events_num, uint16_t deb_time)函数通过定义极性(高或低)根据您的实现计划。
如果你没有调用wkupct_enable_irq()来启用中断,你可以在中断发生后停止检测按钮。
您可以在文档选项卡的软件开发工具包部分中建议UM-B-51。
谢谢STS_Dialog。
我同意按下或释放按钮我都可以醒来。
但我想在这两件事上醒来。意味着当按钮被按下时,我想被称为button_press_cb(),当按钮释放时,我想被称为button_relase_cb()。
a.目前,我必须手动切换它们。意味着当我检测按钮按下时,我为按钮释放配置唤醒irq,当按钮释放时相同。如果有更好的解决办法,请告诉我。
b.关于停止检测,唤醒按钮,它是否适用,只要我调用wkupct_enable_irq()。函数?
嗨Ankit,
1)没有其他选项触发唤醒定时器,此过程由唤醒irq函数实现。这取决于极性的定义(高或低)。
2)如果你调用wkupct_enable_irq()启用中断,使按钮(唤醒定时器),在其他情况下,如果你不调用上述函数什么也不会发生。
谢谢,
STS_Dialog。
我现在明白了。
让我们谈谈情景(b)。
我已经启用了叫醒按钮。在那个注册的回调函数被调用之后,我在里面做了一些处理。之后,如果我想继续接收那个按钮上的中断。我必须再次通过调用wkupct_enable_irq()函数启用irq吗?
是的,你必须再次调用wkupct_enable_irq()函数,否则当你再次按下按钮时将不会有中断(启动整个过程的中断时间)。正如你所看到的,你想按下按钮,使中断,所以你必须调用上述功能的次数。
谢谢STS_Dialog。
你好,
每当按钮唤醒回调被调用,我必须配置按钮引脚每唤醒调用GPIO_ConfigurePin()函数?
嗨Ankit,
不,定义引脚功能的配置只在设备唤醒时完成一次,通过外围init()函数,你不需要做任何其他的唤醒中断来触发除了调用wkupct_enable_irq(),正如我的同事提到的。
由于MT_dialog
现在我正面临着新的问题。
我已经观察到,进入扩展睡眠模式后,有时不会检测到按钮事件。按下2-3次后,它实际上检测按钮按下事件,并调用唤醒回调。当设备不在睡眠模式时,它工作正常。看门狗在它中扮演角色吗?我启用了CFG_WDOG。
嗨Ankit,
我检查了您的场景,它工作良好(在进入延长睡眠模式之后),您可以检查当您按下按钮时,是否调用wkupct_enable_irq()函数。也许你在一个条件中调用函数,它是假的,另一个选择是再次检查极性。
谢谢你!
STS_Dialog。
嗨hantig,
请不要在现有的帖子中发布其他问题。为新问题创建一个新线程。
要启动新线程,请转到https://support.dialog-semiconductor.com/forum,选择相关论坛类别,如“dialog-smartbond-bluetooth-low-energy- software”。在这里你可以看到一个按钮“新主题”。通过点击它,你可以开始新的线程。