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;

}

ADS1299 Set Sample Rate Function: Configuration and Error Handling

原文地址: https://www.cveoy.top/t/topic/qoIO 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录