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 著作权归作者所有。请勿转载和采集!

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