5个职位/ 0个新
最后发表
2455321262
离线
最后看到:2年9个月前
加入:2017-01-22 06:43
DA14580睡眠模式唤醒异常

你好,
我用自己打的板子,程序从外部睡眠模式唤醒后,进入下面这一段代码,跑不动了,请问如何解决吗?
if ((DEVELOPMENT_DEBUG) && (use_power_optimization))

slp_period_retained = slp_period;
//如果这个断言命中,那么LP ISR持续的时间比时间长
//已经通过LP_ISR_TIME_XTAL32_CYCLES和LP_ISR_TIME_USEC预留。
If (sleep_lp_cycles && (sleep_lp_cycles < slp_period))

user_gpio_status_set (PET_GREEN_LED_PORT PET_GREEN_LED_PIN、活动);
ASSERT_WARNING (0);

设备:
Qinjiny_Dialog
离线
最后看到:1个月1个星期前
工作人员
加入:2016-11-01 05:47
你修改了哪些低功耗或者唤醒相关的的处理函数吗

你修改了哪些低功耗或者唤醒相关的的处理函数吗?这个简单来说是你的设备比设定好的时间睡的久了。

去sdk平台\ \ arch.c可以看到关于设定LP_ISR_TIME_XTAL32_CYCLES和LP_ISR_TIME_USEC的说明,你可以尝试修改一下

/ *注意
* --------------------------
* XTAL16M解决后,代码需要~10usec + 1/2 LP周期来启动BLE和pop BLE寄存器。
*这转换为~26usec的XTAL32和~57usec的RCX。

因此,LP_ISR_TIME_USEC - XTAL16建立时间= 3357 - 2900 = 457usec和457 - 57 = 400usec
*作为最坏情况下的安全余量(RCX) (XTAL32的最佳情况是3357 - 2900 - 26 = 431)。

*原则上,这个时间可以减少到至少2个低功耗周期。

*如果剩余的时间不足以让外围init()完成,那么一个断言将命中
* BLE_WAKEUP_LP_Handler(当DEVELOPMENT_DEBUG为1时)
* XTAL16M是固定的,用户应该增加LP_ISR_TIME_USEC(因此,增加
* LP_ISR_TIME_XTAL32_CYCLES)。
*/

2455321262
离线
最后看到:2年9个月前
加入:2017-01-22 06:43
额,我没有修改任何关于低功耗或者唤醒相关的处理程序

额,我没有修改任何关于低功耗或者唤醒相关的处理程序,我的代码是在需求方的基础上修改的,我删除了部分我不需要的代码,然后新增自己需要的。
我尝试着将宏LP_ISR_TIME_USEC的值修改成我能够修改的最大值,但是它任然会进入1楼提到的警告中,我不知道该怎么做,你能给一些建议吗,谢谢

2455321262
离线
最后看到:2年9个月前
加入:2017-01-22 06:43
我尝试着禁用宏DEVELOPMENT_DEBUG

我尝试着禁用宏DEVELOPMENT_DEBUG,但是在设备从睡眠状态唤醒后,它无法进入串口中断,也不能进入GPIO中断,在每次唤醒设备后是否需要重新配置管脚?重新配置其中断?重新启用中断?

CYibin
离线
最后看到:8个月1周前
工作人员
加入:2017-12-14 02:48
你好,

你好,

每次唤醒系统后,都要重新初始化外设的,将相关需要用到的外设的初始化,集中放在periph_init函数中即可