{"title":"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(SJ_CH1SET3,valset);
/* 回读一次 */
valget = ADS1299_ReadREG(SJ_CH1SET3);

if(valget!=valset)
    ret = EXIT_FAILURE;

return ret;

} 若有3个SJ_CH1SET3寄存器(如SJ_CH1SET3 SJ_CH2SET3 SJ_CH3SET3) 如何连续配置3次 怎样改写代码内容:您可以将该函数修改为接受一个数组参数,其中包含3个寄存器的值。然后,使用一个循环来连续配置3次。以下是修改后的代码示例:

bool ADS1299_SetSamplerate(uint16_t Samplerate[])
{
    bool ret = EXIT_SUCCESS;
    uint8_t valget = 0;

    for (int i = 0; i < 3; i++)
    {
        switch(Samplerate[i])
        {
            case 250:
                ADS1299_WriteREG(SJ_CH1SET3 + i, 0x96);
            break;

            case 500:
                ADS1299_WriteREG(SJ_CH1SET3 + i, 0x95);
            break;

            case 1000:
                ADS1299_WriteREG(SJ_CH1SET3 + i, 0x94);
            break;

            case 2000:
                ADS1299_WriteREG(SJ_CH1SET3 + i, 0x93);
            break;

            default:
                ADS1299_WriteREG(SJ_CH1SET3 + i, 0x94); //default 1kHz
            break;
        }

        /* 回读一次 */
        valget = ADS1299_ReadREG(SJ_CH1SET3 + i);

        if(valget != Samplerate[i])
        {
            ret = EXIT_FAILURE;
            break;
        }
    }

    return ret;
}

在这个修改后的函数中,使用一个循环来遍历3个寄存器,并根据输入的采样率值进行配置。在每次迭代中,将对应的寄存器值写入,并使用回读来验证是否成功配置。如果回读的值与期望的值不匹配,则将返回EXIT_FAILURE


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

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