rp2/machine_adc: Only initialise the ADC periph if not already enabled.
Otherwise it resets the ADC peripheral each time a new ADC object is constructed, which can reset other state that has already been set up. See issue #6833. Signed-off-by: Damien George <damien@micropython.org>
This commit is contained in:
parent
78b23c3a1f
commit
7f7b4f2bc6
|
@ -78,7 +78,10 @@ STATIC mp_obj_t machine_adc_make_new(const mp_obj_type_t *type, size_t n_args, s
|
|||
}
|
||||
}
|
||||
|
||||
adc_init();
|
||||
// Initialise the ADC peripheral if it's not already running.
|
||||
if (!(adc_hw->cs & ADC_CS_EN_BITS)) {
|
||||
adc_init();
|
||||
}
|
||||
|
||||
if (ADC_IS_VALID_GPIO(channel)) {
|
||||
// Configure the GPIO pin in ADC mode.
|
||||
|
|
Loading…
Reference in New Issue