主题中讨论的其他器件:ADS1292R、 ADS1299、 ADS1292
大家好、
查看 ADS1292R 示例代码时、我不了解其中一个位置。 您能解释一下吗?
在示例代码中读回9个字节的原始数据后、将其合并、每3个字节合并为24位数据、并存储在 ads1x9x_ ECG_ Data_ BUF 中。 ADS1x9x_ ECG_ Data_ BUF [1]存储 CH1数据、ads1x9x_ ECG_ Data_ BUF [2]存储 CH2数据。
代码如下:此代码没有问题,可以理解。
对于(ECG_CHAN_num = 0;ECG_CHAN_num < 3;ECG_CHAN_num++)
{
ADS1x9X_ECG_Data_Buf[ECG_CHAN_num]=(带符号长整型) SPI_Rx_Buf[3*ECG_CHAN_num];
ADS1x9X_ECG_Data_Buf[ECG_CHAN_num]= ADS1x9X_ECG_Data_Buf[ECG_CHAN_num]<< 8;
ADS1x9X_ECG_Data_Buf[ECG_CHAN_num]|= SPI_Rx_BUf[3*ECG_CHAN_num+1];
ADS1x9X_ECG_Data_Buf[ECG_CHAN_num]= ADS1x9X_ECG_Data_Buf[ECG_CHAN_num]<< 8;
ADS1x9X_ECG_Data_Buf[ECG_CHAN_num]|= SPI_Rx_BUf[3*ECG_CHAN_num+2];
}
不过、它稍后会在滤波之前进行处理。 代码如下:
ADS1x9X_ECG_Data_Buf[1]= ADS1x9X_ECG_Data_Buf[1];
ADS1x9X_ECG_Data_Buf[2]= ADS1x9X_ECG_Data_Buf[2]>> 4;
ADS1x9X_ECG_Data_Buf[1]= 0xFFFF;
ADS1x9X_ECG_Data_Buf[2]和= 0xFFFF;
ECGRawData[0]=(简短描述) ADS1x9X_ECG_Data_Buf[1];
ECGRawData[1]=(简短描述) ADS1x9X_ECG_Data_Buf[2];
ECGRawData[0-1]是需要过滤的原始数据。 为什么24位数据变为16位、关键是如何理解以红色标记的代码。
之后、两个16位数据进入滤波器功能。 代码如下:
RESP_ProcessCurrent Sample (&ECGRawData[0]、&ECGFilteredData[0]);
ECG_ProcessCurrent Sample (&ECGRawData[1]、&ECGFilteredData[1]);
示例代码下载链接:
https://www.ti.com.cn/tool/cn/ADS1292RECG-FE
文件夹为 ADS1x9X_ECG_Recorder_FW
特别是在文件 ADS1x9X_ECG_Processing.c 中
函数名称为 ADS1x9X_filtered_ECG
我希望您花时间来看看 这个 问题。
此致、
罗美