MCPcopy Create free account
hub / github.com/RT-Thread/rt-thread / ADC_Reset

Function ADC_Reset

bsp/efm32/Libraries/emlib/src/em_adc.c:458–479  ·  view source on GitHub ↗

/ * @brief * Reset ADC to same state as after a HW reset. * * @note * The ROUTE register is NOT reset by this function, in order to allow for * centralized setup of this feature. * * @param[in] adc * Pointer to ADC peripheral register block. ******************************************************************************/

Source from the content-addressed store, hash-verified

456 * Pointer to ADC peripheral register block.
457 ******************************************************************************/
458void ADC_Reset(ADC_TypeDef *adc)
459{
460 uint32_t cal;
461
462 /* Stop conversions, before resetting other registers. */
463 adc->CMD = ADC_CMD_SINGLESTOP | ADC_CMD_SCANSTOP;
464 adc->SINGLECTRL = _ADC_SINGLECTRL_RESETVALUE;
465 adc->SCANCTRL = _ADC_SCANCTRL_RESETVALUE;
466 adc->CTRL = _ADC_CTRL_RESETVALUE;
467 adc->IEN = _ADC_IEN_RESETVALUE;
468 adc->IFC = _ADC_IFC_MASK;
469 adc->BIASPROG = _ADC_BIASPROG_RESETVALUE;
470
471 cal = adc->CAL & ~(_ADC_CAL_SINGLEOFFSET_MASK | _ADC_CAL_SINGLEGAIN_MASK);
472 cal |= ((DEVINFO->ADC0CAL0 & _DEVINFO_ADC0CAL0_1V25_GAIN_MASK) >>
473 _DEVINFO_ADC0CAL0_1V25_GAIN_SHIFT) << _ADC_CAL_SINGLEGAIN_SHIFT;
474 cal |= ((DEVINFO->ADC0CAL0 & _DEVINFO_ADC0CAL0_1V25_OFFSET_MASK) >>
475 _DEVINFO_ADC0CAL0_1V25_OFFSET_SHIFT) << _ADC_CAL_SINGLEOFFSET_SHIFT;
476 adc->CAL = cal;
477
478 /* Do not reset route register, setting should be done independently */
479}
480
481
482/***************************************************************************//**

Callers 1

rt_hw_adc_unit_initFunction · 0.50

Calls

no outgoing calls

Tested by

no test coverage detected