int acq_GetDataRaw(rp_channel_t channel, uint32_t pos, uint32_t* size, int16_t* buffer) { *size = MIN(*size, ADC_BUFFER_SIZE); uint32_t cnts; const volatile uint32_t* raw_buffer = getRawBuffer(channel); rp_calib_params_t calib = calib_GetParams(); int32_t dc_offs = (channel == RP_CH_1 ? calib.fe_ch1_dc_offs : calib.fe_ch2_dc_offs); for (uint32_t i = 0; i < (*size); ++i) { cnts = (raw_buffer[(pos + i) % ADC_BUFFER_SIZE]) & ADC_BITS_MAK; buffer[i] = cmn_CalibCnts(ADC_BITS, cnts, dc_offs); } return RP_OK; }
int acq_GetDataRaw(rp_channel_t channel, uint32_t pos, uint32_t* size, int16_t* buffer) { *size = MIN(*size, ADC_BUFFER_SIZE); uint32_t cnts; const volatile uint32_t* raw_buffer = getRawBuffer(channel); rp_pinState_t gain; ECHECK(acq_GetGain(channel, &gain)); rp_calib_params_t calib = calib_GetParams(); int32_t dc_offs = GET_OFFSET(channel, gain, calib); for (uint32_t i = 0; i < (*size); ++i) { cnts = (raw_buffer[(pos + i) % ADC_BUFFER_SIZE]) & ADC_BITS_MAK; buffer[i] = cmn_CalibCnts(ADC_BITS, cnts, dc_offs); } return RP_OK; }