ADS1299 Set Sample Rate Function: Configuration and Error Handling
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(ADS1299_REG_CONFIG1);
if(valget!=valset)
ret = EXIT_FAILURE;
return ret;
} 若有4个ADS1299_REG_CONFIG1寄存器(如ADS1299_REG_CONFIG1 ADS1299_REG_CONFIG2 ADS1299_REG_CONFIG3 ADS1299_REG_CONFIG4) 如何连续配置4次 怎样改写代码内容:您可以使用一个循环来连续配置四个寄存器。以下是改写后的代码:
bool ADS1299_SetSamplerate(uint16_t Samplerate) { bool ret = EXIT_SUCCESS; uint8_t valset[4] = {0}; // 创建一个数组来存储四个寄存器的配置值 uint8_t valget = 0;
switch(Samplerate)
{
case 250:
valset[0] = 0x96;
valset[1] = 0x96;
valset[2] = 0x96;
valset[3] = 0x96;
break;
case 500:
valset[0] = 0x95;
valset[1] = 0x95;
valset[2] = 0x95;
valset[3] = 0x95;
break;
case 1000:
valset[0] = 0x94;
valset[1] = 0x94;
valset[2] = 0x94;
valset[3] = 0x94;
break;
case 2000:
valset[0] = 0x93;
valset[1] = 0x93;
valset[2] = 0x93;
valset[3] = 0x93;
break;
default:
valset[0] = 0x94; //default 1kHz
valset[1] = 0x94;
valset[2] = 0x94;
valset[3] = 0x94;
break;
}
/* 尝试配置四次 */
for(int i = 0; i < 4; i++) {
ADS1299_WriteREG(ADS1299_REG_CONFIG1 + i, valset[i]);
/* 回读一次 */
valget = ADS1299_ReadREG(ADS1299_REG_CONFIG1 + i);
if(valget != valset[i]) {
ret = EXIT_FAILURE;
break; // 如果有一次配置失败,则跳出循环
}
}
return ret;
}
原文地址: https://www.cveoy.top/t/topic/qoIO 著作权归作者所有。请勿转载和采集!