diff --git a/drivers/analog/analog.hpp b/drivers/analog/analog.hpp index 7f321b0d..d51795a8 100644 --- a/drivers/analog/analog.hpp +++ b/drivers/analog/analog.hpp @@ -11,7 +11,7 @@ namespace pimoroni { public: Analog(uint pin, float amplifier_gain = 1.0f, float resistor = 0.0f, float offset = 0.0f) : pin(pin), amplifier_gain(amplifier_gain), resistor(resistor), offset(offset) { - adc_init(); + if (!(adc_hw->cs & ADC_CS_EN_BITS)) adc_init(); //Make sure GPIO is high-impedance, no pullups etc adc_gpio_init(pin); diff --git a/libraries/adcfft/adcfft.cpp b/libraries/adcfft/adcfft.cpp index e5433d57..a28fdd1d 100644 --- a/libraries/adcfft/adcfft.cpp +++ b/libraries/adcfft/adcfft.cpp @@ -47,7 +47,7 @@ void ADCFFT::init() { // Initialize the ADC harware // (resets it, enables the clock, spins until the hardware is ready) - adc_init(); + if (!(adc_hw->cs & ADC_CS_EN_BITS)) adc_init(); // Select analog mux input (0...3 are GPIO 26, 27, 28, 29; 4 is temp sensor) adc_select_input(adc_channel); diff --git a/libraries/cosmic_unicorn/cosmic_unicorn.cpp b/libraries/cosmic_unicorn/cosmic_unicorn.cpp index 5d0dc26e..2db59201 100644 --- a/libraries/cosmic_unicorn/cosmic_unicorn.cpp +++ b/libraries/cosmic_unicorn/cosmic_unicorn.cpp @@ -149,7 +149,7 @@ namespace pimoroni { } // setup light sensor adc - adc_init(); + if (!(adc_hw->cs & ADC_CS_EN_BITS)) adc_init(); adc_gpio_init(LIGHT_SENSOR); gpio_init(COLUMN_CLOCK); gpio_set_dir(COLUMN_CLOCK, GPIO_OUT); gpio_put(COLUMN_CLOCK, false); diff --git a/libraries/galactic_unicorn/galactic_unicorn.cpp b/libraries/galactic_unicorn/galactic_unicorn.cpp index da2bc041..c9587e18 100644 --- a/libraries/galactic_unicorn/galactic_unicorn.cpp +++ b/libraries/galactic_unicorn/galactic_unicorn.cpp @@ -149,7 +149,7 @@ namespace pimoroni { } // setup light sensor adc - adc_init(); + if (!(adc_hw->cs & ADC_CS_EN_BITS)) adc_init(); adc_gpio_init(LIGHT_SENSOR); gpio_init(COLUMN_CLOCK); gpio_set_dir(COLUMN_CLOCK, GPIO_OUT); gpio_put(COLUMN_CLOCK, false); diff --git a/libraries/stellar_unicorn/stellar_unicorn.cpp b/libraries/stellar_unicorn/stellar_unicorn.cpp index 3917aa5f..3b4bde04 100644 --- a/libraries/stellar_unicorn/stellar_unicorn.cpp +++ b/libraries/stellar_unicorn/stellar_unicorn.cpp @@ -149,7 +149,7 @@ namespace pimoroni { } // setup light sensor adc - adc_init(); + if (!(adc_hw->cs & ADC_CS_EN_BITS)) adc_init(); adc_gpio_init(LIGHT_SENSOR); gpio_init(COLUMN_CLOCK); gpio_set_dir(COLUMN_CLOCK, GPIO_OUT); gpio_put(COLUMN_CLOCK, false);