2121#define __ADVANCED_ADC_H__
2222
2323#include " AdvancedAnalog.h"
24- #if __has_include("pure_analog_pins.h")
25- #include " pure_analog_pins.h"
26- #endif
2724
2825struct adc_descr_t ;
2926
@@ -44,25 +41,14 @@ class AdvancedADC {
4441 adc_descr_t *descr;
4542 PinName adc_pins[AN_MAX_ADC_CHANNELS];
4643
47- template <typename P>
48- static inline PinName _toPinName (P p) {
49- return analogPinToPinName (p);
50- }
51- #if __has_include("pure_analog_pins.h")
52- static inline PinName _toPinName (PureAnalogPin p) {
53- extern AnalogPinDescription g_pureAAnalogPinDescription[];
54- return g_pureAAnalogPinDescription[p.get ()].name ;
55- }
56- #endif
57-
5844 public:
59- template <typename P0, typename ... P >
60- AdvancedADC (P0 p0, P ... pins ): n_channels(0 ), descr(nullptr ) {
61- static_assert (sizeof ...(pins ) < AN_MAX_ADC_CHANNELS,
45+ template <typename ... T >
46+ AdvancedADC (pin_size_t p0, T ... args ): n_channels(0 ), descr(nullptr ) {
47+ static_assert (sizeof ...(args ) < AN_MAX_ADC_CHANNELS,
6248 " A maximum of 16 channels can be sampled successively." );
6349
64- for (PinName pin : { _toPinName (p0), _toPinName (pins) ... }) {
65- adc_pins[n_channels++] = pin ;
50+ for (auto p : {p0, args ...}) {
51+ adc_pins[n_channels++] = analogPinToPinName (p) ;
6652 }
6753 }
6854 AdvancedADC (): n_channels(0 ), descr(nullptr ) {
@@ -86,21 +72,6 @@ class AdvancedADC {
8672 n_channels = n_pins;
8773 return begin (resolution, sample_rate, n_samples, n_buffers, start, sample_time);
8874 }
89- #if __has_include("pure_analog_pins.h")
90- int begin (uint32_t resolution, uint32_t sample_rate, size_t n_samples,
91- size_t n_buffers, size_t n_pins, PureAnalogPin *pins, bool start=true ,
92- adc_sample_time_t sample_time=AN_ADC_SAMPLETIME_8_5) {
93- if (n_pins > AN_MAX_ADC_CHANNELS) {
94- n_pins = AN_MAX_ADC_CHANNELS;
95- }
96- for (size_t i = 0 ; i < n_pins; ++i) {
97- adc_pins[i] = _toPinName (pins[i]);
98- }
99-
100- n_channels = n_pins;
101- return begin (resolution, sample_rate, n_samples, n_buffers, start, sample_time);
102- }
103- #endif
10475 int start (uint32_t sample_rate);
10576 int stop ();
10677 void clear ();
0 commit comments