为ADC制作自定义配置文件

⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.wsdof.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
18个员额/ 0个新员额
最后发表
herochua617
离线
最后看到:3年11个月前
加入:2017-01-18 46
为ADC制作自定义配置文件

你好,

我想要捕捉ECG信号,然后把它们转换成心率,以bpm为单位,我想要信号通过BLE发送到智能手机。智能手机将使用BLE扫描仪读取读数。我已经修改了SDK文件夹中的ble_app_peripheral示例,以便能够捕获数据(参见附件)。我意识到这个问题很可能是由于ADC的功能。我是否放错了位置?我应该放在哪里?

adc_init (GP_ADC_SE GP_ADC_SIGN GP_ADC_ATTN3X)……
....

非常感谢。

附件:
设备:
herochua617
离线
最后看到:3年11个月前
加入:2017-01-18 46
你好,

你好,

除此之外,我不知道如何将adc输出连接到自定义profile,基本上adc的输出是ECG信号,我需要将它们转换成心率。我需要使用hrpc。c, hrpc_task。c吗?谢谢

MT_dialog
离线
最后看到:2个月3个星期前
工作人员
加入:2015-06-08 34
嗨herochua617,

嗨herochua617,

如果没有BLE实现,你能从ECG和ADC中得到任何值吗?如果是,则可以进入下一步,通过BLE发送值。心率配置文件存在,以发送hrp值使用SIG标准心率配置文件,除了没有什么其他的,该配置文件将为您做的,可以仍然可以发送值从传感器使用您的自定义配置文件。关于你将不得不放置读取ADC函数的位置,你可以在向堆栈发送通知之前做这件事。关于如何发送值,app_adcval1_timer_cb_handler()中的示例变量是每次计时器结束时发送到中央的虚拟值,因此可以用从ADC中读取的值替换该数据。

由于MT_dialog

herochua617
离线
最后看到:3年11个月前
加入:2017-01-18 46
嗨MT_dialog,

嗨MT_dialog,

我想问一下。如果我想从SPI运行这个配置文件,我需要在ble_peripheral_app中配置任何东西吗?因为我可以使用智能片段直接燃烧SPI内部的编码,它将自动运行时,我打开开发工具包,当我运行开发工具包的硬币电池供应?我说的对吗?谢谢

herochua617
离线
最后看到:3年11个月前
加入:2017-01-18 46
你好,

你好,

我从自定义配置文件得到的不是心率。实际上是ECG信号值,即从ADC输出得到的值。我知道我需要固定ECG信号的QRS复波的间隔,以获得心率值。但是你有关于如何配置的例子吗?谢谢

chey856
离线
最后看到:4年3个星期前
加入:2017-01-06 11:30
1.启用ADC值通知

1.启用ADC值通知
ADC_VAL_1_UUID_128(UUID 0x17, 0xB9, 0x67, 0x98, 0x4C, 0x66, 0x4C, 0x01, 0x96, 0x33, 0x31, 0xB1, 0x91, 0x59, 0x00, 0x15)
2.写入0x01到CTRL_POINT
CTRL_POINT_UUID_128 (0x20, 0xEE, 0x8D, 0x0C, 0x1, 0xF0, 0x4A, 0x0C, 0xB3, 0x25, 0xDC, 0x53, 0x6A, 0x68, 0x86, 0x2D)
你放的ADC func位置没有错。

herochua617
离线
最后看到:3年11个月前
加入:2017-01-18 46
嗨chey856,

嗨chey856,

非常感谢!我能看到价值的变化。我可以问吗?控制点的作用是什么?为什么我需要打开以获得值?谢谢

MT_dialog
离线
最后看到:2个月3个星期前
工作人员
加入:2015-06-08 34
嗨herochua617,

嗨herochua617,

chey856提到的控制点特性是一个特性,它在编写时可以在fw中启用内核计时器。当内核计时器结束时,它会触发向堆栈发送通知,并最终在您的手机上重置计时器。因此,只要写入该特征,就会触发函数user_custs1_ctrl_wr_ind_handler()并启动计时器,当计时器结束时,就会触发app_adcval1_timer_cb_handler()。

Thaks MT_dialog

chey856
离线
最后看到:4年3个星期前
加入:2017-01-06 11:30
这是正确的!谢谢你!

这是正确的!非常感谢,谢谢
顺便问一下,你能告诉DA14580的adc采样率吗

MT_dialog
离线
最后看到:2个月3个星期前
工作人员
加入:2015-06-08 34
嗨chey856,

嗨chey856,

数据表中提到“the Maximum sampling rate is 3.3 Msample/s”。

由于MT_dialog

herochua617
离线
最后看到:3年11个月前
加入:2017-01-18 46
你好,

你好,

如果我想把数据转换成心率,那么adc值1会给出心率的结果。我是否能够使用我现有的代码?谢谢

chey856
离线
最后看到:4年3个星期前
加入:2017-01-06 11:30
心率= (adc_get_sample

心率= (adc_get_sample() * 1.2伏* ADC_ATTN3X)/1023
如果你没有在adc_init()中设置ADC_ATTN3X,则设置ADC_ATTN3X= 1否则设置ADC_ATTN3X=3
1.2伏特为参考电压
所以它的分辨率:2^10 - 1 =1023
你应该看看“projects\target_apps\peripheral_examples\adc\ batt_lvl”示例

herochua617
离线
最后看到:3年11个月前
加入:2017-01-18 46
静态uint16_t heart_rate,

Static uint16_t heart_rate,采样,采样2;

adc_init (GP_ADC_SE, 0, GP_ADC_ATTN3X);
adc_enable_channel (ADC_CHANNEL_P01);
Sample = adc_get_sample ();

adc_init (GP_ADC_SE, GP_ADC_SIGN, GP_ADC_ATTN3X);
adc_enable_channel (ADC_CHANNEL_P01);
Sample2 = adc_get_sample ();

Heart_rate = (sample + sample2);
heart_rate = heart_rate / 2;
heart_rate = (heart_rate * 3.6) / 1023;

申请- > conhdl = app_env - > conhdl;
申请- >处理= CUST1_IDX_ADC_VAL_1_VAL;
申请- >长度= DEF_CUST1_ADC_VAL_1_CHAR_LEN;
memcpy(请求- >值、&heart_rate DEF_CUST1_ADC_VAL_1_CHAR_LEN);

ke_msg_send(要求的);

if (ke_state_get(TASK_APP) == APP_CONNECTED)

//再次设置,直到在控制特征中接收到停止命令
Timer_used = app_easy_timer(100, app_adcval1_timer_cb_handler);

这是我的代码。我从BLE Scanner应用程序的ADC VAL 1特性得到0x01。有什么建议吗?

谢谢

chey856
离线
最后看到:4年3个星期前
加入:2017-01-06 11:30
对不起,迟到了,好像

抱歉迟到了,你的代码似乎没问题,你能告诉我更多关于你的项目的细节吗?
我的邮箱:cheyu856@gmail.com

herochua617
离线
最后看到:3年11个月前
加入:2017-01-18 46
我已经回复你了

我已经回复了你的邮箱。谢谢

herochua617
离线
最后看到:3年11个月前
加入:2017-01-18 46
嗨,伙计们,

嗨,伙计们,

我可以使用HRPS配置文件与我的心率设备工作吗?这是否会更容易,因为在HRPS中会有算法将我的数据转换为可读的心率,而不是十六进制值?

MT_dialog
离线
最后看到:2个月3个星期前
工作人员
加入:2015-06-08 34
嗨herochua617,

嗨herochua617,

合是一个团体的标准,它只是格式的数据传感器在一个特定的方式为了阅读其他客户端设备,它没有算法实现或任何额外的,只是一个标准的方式来表达心率值为了其他设备能够解释他们。

由于MT_dialog

herochua617
离线
最后看到:3年11个月前
加入:2017-01-18 46
嗨MT_dialog,

嗨MT_dialog,

谢谢。这就解决了我的问题https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bl..。.谢谢。然而,我正在尝试自己的方法来检测间隔。我想通过这个得到两个峰之间的时间https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bl..。.非常感谢!