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

你好,
我目前使用DA1458,我已经修改了user_sensor_reports.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;
开关(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到50 ms之间。
考虑到采集的时间,对于采样频率为100Hz的样本,每个采集的样本数量与预期的一样,但是时间戳有一点偏差。附件中有一个单独获取的时间戳差异的文件。

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

提前感谢您的帮助!

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

嗨gomezago,

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

谢谢,PM_Dialog

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

嗨PM_Dialog,

你有这方面的消息吗?

所有最好的!

PM_Dialog
离线
最后看到:1周1天前
工作人员
加入: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