大家好,
如何通过BLE定时器同步唤醒DA14580设备,为BLE事件服务。
谢谢
您好ASMATHA,您是否阅读了关于如何同步(BLE定时器)或异步(中断)配置睡眠模式的应用程序注意?
http://support.dialog-semicondiondionder.com/um-b-006-user-manual-sleep-mode-code-configuration.
这是一个相当全面的应用程序说明,是最好的开始。
BR JE\u对话框
你好je_dialog,
我想知道如何识别唤醒事件,比如两个短脉冲异步唤醒系统。谢谢!
BR杨
你好DATeam,
我无法下载此文档。您能建议如何下载吗?
谢谢,毗湿奴
你好je_dialog,非常感谢你的回信。我已经看过文件了。但即使在da14580_config.h文件中禁用扩展和深度睡眠模式之后,也如下:#未定义CFG\u EXT\u SLEEP#undef cfg_deep_sleep.
我们无法看到该设备一直处于唤醒状态,也无法看到它没有连续播放广告。
谢谢,asmaith.
嗨,年轻的对话,
我没有得到你的问题,可以澄清吗?您可以使用唤醒控制器并使用多个引脚设置它,如果这是您的意思。
谢谢你的对话
嗨,MT\u dialog,
谢谢你的注意,我的意思是如何识别唤醒系统的引脚,例如一个引脚发送数据,另一个引脚执行ADC.i使用该方法来实现它的方法
但是我发现函数'wkupct\u register\u callback()'只能注册一个回调函数,所以当任何一个pin激活时,它们都会到达同一个回调,并且没有任何响应
寄存器指示哪个pin是活动的。这是我的方法对吗?有什么建议吗?
布罗尔,年轻
是的,没错,你可以声明许多唤醒管脚,但你只有一个回调,如果你想确定从哪个管脚你得到了中断,你可以尝试读取后,中断管脚的状态,并检查你的管脚是高或低。
当中断从诸如5US高脉冲的短脉冲导致时,读取引脚状态时难以识别。
我也想知道系统进入延长睡眠模式时如何保留PIN状态,谢谢!
没有其他方法可以做到这一点,您可以读取您的管脚,或者您可以尝试为连接的管脚设置GPIO IRQ,如果连接的源与可用的IRQ匹配。你不必做任何明确的事情,以保持580引脚的状态,当它进入睡眠状态,而你在睡眠模式的状态将被保留,但你将不得不保持你的引脚状态,因为当580唤醒,periph_init()将运行,你的引脚将被重新配置。
我尝试使用GPIO IRQs定期唤醒系统,并且在活动模式下运行良好,并且在扩展睡眠模式下不起作用。通过方式,脉冲触发中断
由ADC芯片产生,周期4ms,唤醒系统是否太短?有什么建议吗?
谢谢!
布罗尔,
年轻
我们知道,DA14580在长时间或深度睡眠模式下,可以通过唤醒定时器和正交解码器唤醒。我想知道当只使用GPIO IRQ时如何醒来?谢谢!
我不认为4ms太短,无法唤醒系统并触发中断,您是否尝试在唤醒设置和GPIO IRQ上正确配置去抖动参数?因为我尝试了4ms的脉冲,我可以唤醒系统并触发IRQ。
关于唤醒,您不能通过GPIO irq唤醒系统,只有唤醒计时器和正交可以唤醒它。
是的,如果我唤醒系统并设置GPIO IRQ,4ms并不太短,不能唤醒系统并触发中断。这就是我想要的!谢谢您!
如何更改睡眠模式?我们的使用场景是:扩展睡眠模式在广告时,连接时的主动/空闲模式,断开后返回扩展睡眠模式
重新广告。我尝试使用app_restore_sleep_mode()'或'arch_disable_sleep()使用app_sle_sleep_mode()'使用api'app_force_active_mode(),以在连接时更改睡眠模式
断开连接时,现象是连接时模式成功切换到活动模式,但连接后无法切换到延长睡眠模式或重新启动
断开。任何建议?谢谢!
要在睡眠模式之间切换时,可以使用以下功能:
arch\u disable\u sleep():设备将处于活动状态
arch\u set\u extended\u sleep():设备将切换到延长睡眠模式
当连接和断开与中央设备的连接时,您可以通过调用(用户应用程序连接回调中的arch\u disable\u sleep和用户应用程序断开连接中的arch\u set\u extended\u sleep)来调用上述函数。使用适当的参数,这与arch\u set\u sleep\u mode()相同。为了在断开连接后再次开始播发,您必须在用户应用程序断开连接中调用arch\u set\u extended\u sleep()和用户应用程序\u adv\u start(),以便将设备设置为exteded sleep并再次开始播发。
也请不要在同一个线程下发布不同的问题,你可以随时创建一个新的线程。
我很抱歉,但奇怪的是,我没有权限创建一个新的线程!怎么了?我没有足够的权限?
我现在找到了创建新线程的方法,谢谢!
您好ASMATHA,您是否阅读了关于如何同步(BLE定时器)或异步(中断)配置睡眠模式的应用程序注意?
http://support.dialog-semicondiondionder.com/um-b-006-user-manual-sleep-mode-code-configuration.
这是一个相当全面的应用程序说明,是最好的开始。
BR JE\u对话框
你好je_dialog,
我想知道如何识别唤醒事件,比如两个短脉冲异步唤醒系统。谢谢!
BR杨
你好DATeam,
我无法下载此文档。您能建议如何下载吗?
谢谢,
毗湿奴
你好je_dialog,
非常感谢你的回信。
我已经看过文件了。
但即使在da14580_config.h文件中禁用扩展和深度睡眠模式之后,也如下:
#未定义CFG\u EXT\u SLEEP
#undef cfg_deep_sleep.
我们无法看到该设备一直处于唤醒状态,也无法看到它没有连续播放广告。
谢谢,
asmaith.
你好je_dialog,
我想知道如何识别唤醒事件,比如两个短脉冲异步唤醒系统。谢谢!
BR杨
嗨,年轻的对话,
我没有得到你的问题,可以澄清吗?您可以使用唤醒控制器并使用多个引脚设置它,如果这是您的意思。
谢谢你的对话
嗨,MT\u dialog,
谢谢你的注意,我的意思是如何识别唤醒系统的引脚,例如一个引脚发送数据,另一个引脚执行ADC.i使用该方法来实现它的方法
但是我发现函数'wkupct\u register\u callback()'只能注册一个回调函数,所以当任何一个pin激活时,它们都会到达同一个回调,并且没有任何响应
寄存器指示哪个pin是活动的。这是我的方法对吗?有什么建议吗?
布罗尔,
年轻
嗨,年轻的对话,
是的,没错,你可以声明许多唤醒管脚,但你只有一个回调,如果你想确定从哪个管脚你得到了中断,你可以尝试读取后,中断管脚的状态,并检查你的管脚是高或低。
谢谢你的对话
嗨,MT\u dialog,
当中断从诸如5US高脉冲的短脉冲导致时,读取引脚状态时难以识别。
我也想知道系统进入延长睡眠模式时如何保留PIN状态,谢谢!
布罗尔,
年轻
嗨,年轻的对话,
没有其他方法可以做到这一点,您可以读取您的管脚,或者您可以尝试为连接的管脚设置GPIO IRQ,如果连接的源与可用的IRQ匹配。你不必做任何明确的事情,以保持580引脚的状态,当它进入睡眠状态,而你在睡眠模式的状态将被保留,但你将不得不保持你的引脚状态,因为当580唤醒,periph_init()将运行,你的引脚将被重新配置。
谢谢你的对话
嗨,MT\u dialog,
我尝试使用GPIO IRQs定期唤醒系统,并且在活动模式下运行良好,并且在扩展睡眠模式下不起作用。通过方式,脉冲触发中断
由ADC芯片产生,周期4ms,唤醒系统是否太短?有什么建议吗?
谢谢!
布罗尔,
年轻
嗨,MT\u dialog,
我们知道,DA14580在长时间或深度睡眠模式下,可以通过唤醒定时器和正交解码器唤醒。我想知道当只使用GPIO IRQ时如何醒来?谢谢!
布罗尔,
年轻
嗨,年轻的对话,
我不认为4ms太短,无法唤醒系统并触发中断,您是否尝试在唤醒设置和GPIO IRQ上正确配置去抖动参数?因为我尝试了4ms的脉冲,我可以唤醒系统并触发IRQ。
关于唤醒,您不能通过GPIO irq唤醒系统,只有唤醒计时器和正交可以唤醒它。
谢谢你的对话
嗨,MT\u dialog,
是的,如果我唤醒系统并设置GPIO IRQ,4ms并不太短,不能唤醒系统并触发中断。这就是我想要的!谢谢您!
布罗尔,
年轻
嗨,MT\u dialog,
如何更改睡眠模式?我们的使用场景是:扩展睡眠模式在广告时,连接时的主动/空闲模式,断开后返回扩展睡眠模式
重新广告。我尝试使用app_restore_sleep_mode()'或'arch_disable_sleep()使用app_sle_sleep_mode()'使用api'app_force_active_mode(),以在连接时更改睡眠模式
断开连接时,现象是连接时模式成功切换到活动模式,但连接后无法切换到延长睡眠模式或重新启动
断开。任何建议?谢谢!
布罗尔,
年轻
嗨,年轻的对话,
要在睡眠模式之间切换时,可以使用以下功能:
arch\u disable\u sleep():设备将处于活动状态
arch\u set\u extended\u sleep():设备将切换到延长睡眠模式
当连接和断开与中央设备的连接时,您可以通过调用(用户应用程序连接回调中的arch\u disable\u sleep和用户应用程序断开连接中的arch\u set\u extended\u sleep)来调用上述函数。使用适当的参数,这与arch\u set\u sleep\u mode()相同。为了在断开连接后再次开始播发,您必须在用户应用程序断开连接中调用arch\u set\u extended\u sleep()和用户应用程序\u adv\u start(),以便将设备设置为exteded sleep并再次开始播发。
也请不要在同一个线程下发布不同的问题,你可以随时创建一个新的线程。
谢谢你的对话
嗨,MT\u dialog,
我很抱歉,但奇怪的是,我没有权限创建一个新的线程!怎么了?我没有足够的权限?
布罗尔,
年轻
嗨,MT\u dialog,
我现在找到了创建新线程的方法,谢谢!
布罗尔,
年轻