唤醒期间接入I2C设备

2个帖子/ 0个新
最后发表
auzzz
离线
最后看到:4个月4个星期前
加入:2016-06-20十43
唤醒期间接入I2C设备

嗨,对话框中,
我们要求在唤醒期间读取I2C传感器的测量值,如果读数满足条件,则切换到运行模式。
设置代码如下:
1.项目使用:Pxp_reporter DA1468x_SDK_BTLE_v_1.0.6.968;
2.睡眠模式设置为:pm_set_sleep_mode(pm_mode_extended_sleep);
3.广告时间间隔:set_advertising_interval (ADV_INTERVAL_POWER);

根据此设置,我们的常规程序可以正常进入延长睡眠模式,电流消耗与官方文件“AN-B-037 DA1468x Power measurements s_v1.3”相同。
为了提高效率,减少能源消耗,我们希望在附件的醒时接入I2C。是可能的吗?
如果是的话,我应该把I2C访问代码放在哪里?我们已经从I2C传感器中获取了运行模式下的数据。

附件:
设备:
MT_dialog
离线
最后看到:4个月3天前
工作人员
加入:2015-06-08 34
嗨auzzz,

嗨auzzz,

没有实现从SDK像钩子,你可以自定义代码,为了做到这一点,你可以尝试通知任务,我假设您已经为了与祝福的I2C的事件操作。所以在rwble_isr()中的rwble.c文件中,在事件中断结束的情况下,你可以向你的主任务发送一个通知,通知你需要I2C交互。不要使用简单的OS_TASK_NOTIFY,而是使用OS_TASK_NOTIFY_FROM_ISR版本。这是一种执行您想要的安全方法,因为您可以与I2C交互,而不必担心BLE事件和中断。

是这样的:

//事件中断的结束
if (irq_stat & BLE_EVENTINTSTAT_BIT)

RF_CHECK_DCOFFSET ();
event_isr ();
OS_TASK_NOTIFY_FROM_ISR(处理、MPU_DATA_NOTIF OS_NOTIFY_SET_BITS);

由于MT_dialog