22
22
#include " AdvancedADC.h"
23
23
24
24
#define ADC_NP ((ADCName) NC)
25
+ #define ADC_PIN_ALT_MASK (uint32_t ) (ALT0 | ALT1 )
25
26
26
27
struct adc_descr_t {
27
28
ADC_HandleTypeDef adc;
@@ -126,10 +127,11 @@ int AdvancedADC::begin(uint32_t resolution, uint32_t sample_rate, size_t n_sampl
126
127
for (size_t i=0 ; i<n_channels; i++) {
127
128
adc_pins[i] = (PinName) (adc_pins[i] & ~(ADC_PIN_ALT_MASK));
128
129
}
130
+
129
131
// Find an ADC that can be used with these set of pins/channels.
130
- for (size_t i=0 ; instance == ADC_NP && i<AN_ARRAY_SIZE (pin_alt ); i++) {
132
+ for (size_t i=0 ; instance == ADC_NP && i<AN_ARRAY_SIZE (adc_pin_alt ); i++) {
131
133
// Calculate alternate function pin.
132
- PinName pin = (PinName) (adc_pins[0 ] | pin_alt [i]); // First pin decides the ADC.
134
+ PinName pin = (PinName) (adc_pins[0 ] | adc_pin_alt [i]); // First pin decides the ADC.
133
135
134
136
// Check if pin is mapped.
135
137
if (pinmap_find_peripheral (pin, PinMap_ADC) == NC) {
@@ -140,7 +142,7 @@ int AdvancedADC::begin(uint32_t resolution, uint32_t sample_rate, size_t n_sampl
140
142
for (size_t j=0 ; instance == ADC_NP && j<AN_ARRAY_SIZE (adc_descr_all); j++) {
141
143
descr = &adc_descr_all[j];
142
144
if (descr->pool == nullptr ) {
143
- ADCName tmp_instance = pinmap_peripheral (pin, PinMap_ADC);
145
+ ADCName tmp_instance = (ADCName) pinmap_peripheral (pin, PinMap_ADC);
144
146
if (descr->adc .Instance == ((ADC_TypeDef*) tmp_instance)) {
145
147
instance = tmp_instance;
146
148
adc_pins[0 ] = pin;
@@ -159,9 +161,9 @@ int AdvancedADC::begin(uint32_t resolution, uint32_t sample_rate, size_t n_sampl
159
161
pinmap_pinout (adc_pins[0 ], PinMap_ADC);
160
162
uint8_t ch_init = 1 ;
161
163
for (size_t i=1 ; i<n_channels; i++) {
162
- for (size_t j=0 ; j<AN_ARRAY_SIZE (pin_alt ); j++) {
164
+ for (size_t j=0 ; j<AN_ARRAY_SIZE (adc_pin_alt ); j++) {
163
165
// Calculate alternate function pin.
164
- PinName pin = (PinName) (adc_pins[i] | pin_alt [j]);
166
+ PinName pin = (PinName) (adc_pins[i] | adc_pin_alt [j]);
165
167
// Check if pin is mapped.
166
168
if (pinmap_find_peripheral (pin, PinMap_ADC) == NC) {
167
169
break ;
0 commit comments