ADS1299 采样率设置函数 (ADS1299_SetSamplerate) 和连续配置示例
ADS1299 采样率设置函数 (ADS1299_SetSamplerate)
bool ADS1299_SetSamplerate(uint16_t Samplerate)
{
bool ret = EXIT_SUCCESS;
uint8_t valset = 0;
uint8_t valget = 0;
switch(Samplerate)
{
case 250:
valset = 0x96;
break;
case 500:
valset = 0x95;
break;
case 1000:
valset = 0x94;
break;
case 2000:
valset = 0x93;
break;
default:
valset = 0x94; //default 1kHz
break;
}
/* 尝试配置 */
ADS1299_WriteREG(ADS1299_REG_CONFIG1,valset);
/* 回读一次 */
valget = ADS1299_ReadREG(SJ_CH1SET3);
if(valget!=valset)
ret = EXIT_FAILURE;
return ret;
}
连续配置多个寄存器
若有3个 SJ_CH1SET3 寄存器(如 SJ_CH1SET3 SJ_CH2SET3 SJ_CH3SET3),您可以使用循环来连续配置它们。
bool ADS1299_SetSamplerate(uint16_t Samplerate)
{
bool ret = EXIT_SUCCESS;
uint8_t valset = 0;
uint8_t valget = 0;
switch(Samplerate)
{
case 250:
valset = 0x96;
break;
case 500:
valset = 0x95;
break;
case 1000:
valset = 0x94;
break;
case 2000:
valset = 0x93;
break;
default:
valset = 0x94; //default 1kHz
break;
}
/* 尝试配置 */
for(int i = 1; i <= 3; i++)
{
ADS1299_WriteREG(ADS1299_REG_CONFIG1 + i, valset);
/* 回读一次 */
valget = ADS1299_ReadREG(SJ_CH1SET3 + i);
if(valget != valset)
{
ret = EXIT_FAILURE;
break;
}
}
return ret;
}
循环会自动将 SJ_CH1SET3 的地址递增,从而连续配置 3 个寄存器。
原文地址: https://www.cveoy.top/t/topic/qoKJ 著作权归作者所有。请勿转载和采集!