外部唤醒后SPI ISR

2个帖子/ 0新
最后一篇
RALF S.
离线
最后一次露面:4年1个月前
加入:2016-02-16 08:06
外部唤醒后SPI ISR

你好,

我从示例“BLE_APP_SLEEPMODE”中实现了外部唤醒,以便能够永远睡眠并从外部中断唤醒。

当设备保持唤醒时,SPI ISR正好工作,但是当设备睡觉时,随后通过外部中断醒来时,ISR需要很长时间才能完成,有时呼叫很晚,所以我缺少字节。保持设备醒来后,ISR正常工作。所以我的假设是正确的,系统需要一段时间在完全活跃之前解决?

这只发生在外部唤醒中,当我使用同步唤醒时,每10秒都在唤醒后正常工作?

那么从计时器和外部唤醒醒来之间有什么区别?

设备:
mt_dialog.
离线
最后一次露面:2个月3周前
职员
加入:2015-06-08 11:34
嗨Ralf S,

嗨Ralf S,

是的,在睡觉时,系统不会立即醒来,它会通过一系列操作,直到它可以在执行任何唤醒代码之前,它需要1.5ms到2ms和OFCOUSS需要设置其引脚和外围设备需要调用periph_setup()函数。当您提及每10秒使用同步唤醒时,您的意思是使用ke_timer配置580以每10秒唤醒一次?也许当中断发生的时候,580就是唤醒,这就是为什么你不会错过任何ISR。此外,当您从ke_timer唤醒时,由于BLE核心是必需的,以便调度消息并调用回调,所以首先执行的函数是LP_Handler()和SLP_Handler(),这意味着XTAL16用作系统时钟并且外围设备被初始化。

当使用外部唤醒时,没有唤醒,因此系统上没有XTAL16(除非调用ARCH_BLE_FORCE_WAKEUP)以及使用的时钟是RC16。所以通常你应该能够通过使用RC16获取数据,但这取决于您对580个设备馈送的频率,因为我记得580作为从属操作,并且在这种情况下,您的奴隶应该有4次你的主人的时钟。

谢谢mt_dialog.