原始数据- 100Hz

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.wsdof.com/support.我们将在未来几天修复bug /优化搜索和标记。
4个职位/ 0个新
最后发表
gomezago
离线
最后看到:1年4个月前
加入:2018-12-04星期日晚上
原始数据- 100Hz

你好,
我目前使用的DA1458和我已经修改user_sensor_reporting .h添加一个额外的数据字段(uint32_t, currTime)从HW获得当前的时间值。我在user_sensor_reports.c上调用lld_evt_time_get()如下:

pdrc = (data_report_acc_gyr_mag *)请求- >报告[0];
pdrc - > ucReportId = rep_id;
pdrc - > ucSensorState = 2;//2准备好,3没有数据
pdrc - > ucSensorEvent = 3;
Switch (sensor_type) {
案例SENSOR_TYPE_ACCELEROMETER:
pdrc - > val_x = sensor_data.accel_xyz.x;
pdrc - > val_y = sensor_data.accel_xyz.y;
pdrc - > val_z = sensor_data.accel_xyz.z

pdrc - > curTime = lld_evt_time_get ();

BLE_ATTRIBUTE_IDX (DWS_IDX_ACCEL_VAL);
打破;
....

我这样做是为了同步采集到的数据,一个100Hz的采集,与连接到一个应用程序的其他传感器的数据。我修改了应用程序,只使用DA1458,我在时间戳上看到了一个奇怪的行为,由于我的采样频率是100Hz,我期望两个连续时间戳之间有大约10ms的近似差异,但我得到的值在10到50ms之间波动很大。
考虑到采集的时间,采样频率为100Hz时,每次采集的采样数量是预期的,但是时间戳有点错误。附件中有一个关于时间戳与单个获取的差异的文件。

我能做点什么来弥补吗?lld_evt_time_get()有任何已知的问题吗?我的方法有什么问题吗?

提前感谢你的帮助!

设备:
PM_Dialog
离线
最后看到:1周2小时前
工作人员
加入:2018-02-08 11:03
嗨gomezago,

嗨gomezago,

让我查一下,我会尽快给您答复。

谢谢,PM_Dialog

gomezago
离线
最后看到:1年4个月前
加入:2018-12-04星期日晚上
嗨PM_Dialog,

嗨PM_Dialog,

你对此有何消息?

所有最好的!

PM_Dialog
离线
最后看到:1周2小时前
工作人员
加入:2018-02-08 11:03
嗨gomezago

嗨gomezago

我为耽搁道歉。让我与您分享一些关于lld_evt_time_get()的提示。但是,由于您已经修改了物联网源代码,所以这取决于您的应用程序,由您决定。

lld_evt_time_get()基于625us基准时间计数器测量时间,并返回BLE计时器的值。该计数器没有稳定的时钟输入,但会根据设备是否处于休眠或唤醒状态而变化,并根据XTAL16和XTAL32来测量从上电开始所经过的时间。所以的时间是衡量从XTAL16当睡着的时间消耗在睡眠中通过XTAL32得到补偿和测量应用于定时器装置是醒着的,所以引入了一个错误的时间测量是不固定的。

此外,还可以使用user_add_sensor_report_acc_gyro_mag()。该功能将传感器数据以通知(报告)的形式发送到中心设备。传感器数据通知称为报告。此功能为加速度计、陀螺仪或磁力计形成报告。形成一个DWS_VAL_NTF_REQ消息并发送到DWS配置文件任务。

谢谢,PM_Dialog