stm32f1: adc: use common api for calibration routines
Use same names as adv-v2 peripheral uses. F1 is the only v1 peripheral adc that has calibration modes at all. Old: adc_calibration(ADC1); // blocking call New (blocking): adc_calibrate(ADC1); New (asynch): adc_calibrate_async(ADC1); // do stuff adc_is_calibrating(ADC1); // false when calibration finished Old routines are preserved but marked deprecated for now.
This commit is contained in:
parent
23cf491501
commit
d035a9cd39
@ -412,7 +412,11 @@ void adc_disable_temperature_sensor(uint32_t adc);
|
||||
void adc_enable_external_trigger_regular(uint32_t adc, uint32_t trigger);
|
||||
void adc_enable_external_trigger_injected(uint32_t adc, uint32_t trigger);
|
||||
void adc_reset_calibration(uint32_t adc);
|
||||
void adc_calibration(uint32_t adc);
|
||||
void adc_calibration(uint32_t adc)
|
||||
LIBOPENCM3_DEPRECATED("see adc_calibrate/_async");;
|
||||
void adc_calibrate_async(uint32_t adc);
|
||||
bool adc_is_calibrating(uint32_t adc);
|
||||
void adc_calibrate(uint32_t adc);
|
||||
void adc_on(uint32_t adc)
|
||||
LIBOPENCM3_DEPRECATED("will be removed in the first release");
|
||||
|
||||
|
@ -349,7 +349,7 @@ void adc_reset_calibration(uint32_t adc)
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/** @brief ADC Calibration
|
||||
|
||||
@deprecated replaced by adc_calibrate/_async/_is_calibrating
|
||||
The calibration data for the ADC is recomputed. The hardware clears the
|
||||
calibration status flag when calibration is complete. This function does not
|
||||
return until this happens and the ADC is ready for use.
|
||||
@ -367,6 +367,39 @@ void adc_calibration(uint32_t adc)
|
||||
while (ADC_CR2(adc) & ADC_CR2_CAL);
|
||||
}
|
||||
|
||||
/**
|
||||
* Start the ADC calibration and immediately return.
|
||||
* @sa adc_calibrate
|
||||
* @sa adc_is_calibrate
|
||||
* @param adc ADC Block register address base @ref adc_reg_base
|
||||
*/
|
||||
void adc_calibrate_async(uint32_t adc)
|
||||
{
|
||||
ADC_CR2(adc) |= ADC_CR2_CAL;
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the ADC Calibrating?
|
||||
* @param adc ADC Block register address base @ref adc_reg_base
|
||||
* @return true if the adc is currently calibrating
|
||||
*/
|
||||
bool adc_is_calibrating(uint32_t adc)
|
||||
{
|
||||
return (ADC_CR2(adc) & ADC_CR2_CAL);
|
||||
}
|
||||
|
||||
/**
|
||||
* Start ADC calibration and wait for it to finish.
|
||||
* The ADC must have been powered down for at least 2 ADC clock cycles, then
|
||||
* powered on before calibration starts
|
||||
* @param adc ADC Block register address base @ref adc_reg_base
|
||||
*/
|
||||
void adc_calibrate(uint32_t adc)
|
||||
{
|
||||
adc_calibrate_async(adc);
|
||||
while (adc_is_calibrating(adc));
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/** @brief ADC Power On
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user