1
0
mirror of https://github.com/DCC-EX/CommandStation-EX.git synced 2024-11-23 08:06:13 +01:00

explain in comment

This commit is contained in:
Harald Barth 2022-10-10 07:59:54 +02:00
parent c36234df73
commit 208905e7b9

View File

@ -93,19 +93,36 @@ private:
}; };
// Class ADCee implements caching of the ADC value for platforms which
// have a too slow ADC read to wait for. On these platforms the ADC is
// scanned continiously in the background from an ISR. On such
// architectures that use the analog read during DCC waveform with
// specially configured ADC, for example AVR, init must be called
// PRIOR to the start of the waveform. It returns the current value so
// that an offset can be initialized.
class ADCee { class ADCee {
public: public:
// On architectures that use the analog read during DCC waveform // init does add the pin to the list of scanned pins (if this
// with specially configured ADC, for example AVR, init must be // platform's implementation scans pins) and returns the first
// called PRIOR to the start of the waveform. It returns the // read value. It is called before the regular scan is started.
// current value so that an offset can be initialized.
static int init(uint8_t pin); static int init(uint8_t pin);
// read does read the pin value from the scanned cache or directly
// if this is a platform that does not scan. fromISR is a hint if
// it was called from ISR because for some implementations that
// makes a difference.
static int read(uint8_t pin, bool fromISR=false); static int read(uint8_t pin, bool fromISR=false);
private: private:
// On platforms that scan, it is called from waveform ISR
// only on a regular basis.
static void scan(); static void scan();
// begin is called for any setup that must be done before
// scan can be called.
static void begin(); static void begin();
// bit array of used pins (max 16)
static uint16_t usedpins; static uint16_t usedpins;
// cached analog values (malloc:ed to actual number of ADC channels)
static int *analogvals; static int *analogvals;
// friend so that we can call scan() and begin()
friend class DCCWaveform; friend class DCCWaveform;
}; };
#endif #endif