64 void begin(uint8_t enADC, uint8_t enDAC, uint8_t _useI2S = 0);
79 void getADC(uint32_t samples = MAX_BUFFER_SIZE);
87 void feedDAC(uint8_t dacChannel = 0, uint32_t samples = MAX_BUFFER_SIZE,
bool startInterrupts =
false);
101 #if !defined(ARDUINO_ARCH_NRF52840) && !defined(ARDUINO_ARCH_NRF52) && !defined ARDUINO_NRF52840_FEATHER
103 #elif defined __MBED__
104 inline static uint8_t
adcBuffer[MAX_BUFFER_SIZE];
106 static uint8_t
adcBuffer[MAX_BUFFER_SIZE];
121 #if !defined(ARDUINO_ARCH_NRF52840) && !defined(ARDUINO_ARCH_NRF52) && !defined ARDUINO_NRF52840_FEATHER
123 #elif defined __MBED__
124 inline static uint16_t
adcBuffer16[MAX_BUFFER_SIZE];
152 #if !defined(ARDUINO_ARCH_NRF52840) && !defined(ARDUINO_ARCH_NRF52) && !defined ARDUINO_NRF52840_FEATHER
154 #elif defined __MBED__
206 #if defined(ESP32) || defined(DOXYGEN_FORCED)
215 #if defined(ARDUINO_ARCH_NRF52840) || defined(ARDUINO_ARCH_NRF52) && !defined ARDUINO_NRF52840_FEATHER && defined __MBED__
216 inline static uint8_t aCtr;
217 inline static uint32_t aSize;
218 inline static uint16_t* adcBuf0 = NULL;
219 inline static uint16_t* adcBuf1 = NULL;
220 inline static void (*_onReceive)(uint16_t* buf, uint32_t buf_len) = NULL;
221 inline static void adcCallback(uint16_t* buf, uint32_t buf_len);
222 inline static void set_callback(
void (*function)(uint16_t* buf, uint32_t buf_len));
223 inline static bool adcReady;
224 inline static uint16_t* dacBuf0;
225 inline static uint16_t* dacBuf1;
226 inline static uint32_t sampleCounter;
230 inline static bool adcWhichBuf;
232 #elif defined(ARDUINO_ARCH_NRF52840) || defined(ARDUINO_ARCH_NRF52) || defined(ARDUINO_NRF52840_FEATHER) && !defined __MBED__
236 static uint32_t aSize;
237 static uint16_t* adcBuf0;
238 static uint16_t* adcBuf1;
239 static void (*_onReceive)(uint16_t* buf, uint32_t buf_len);
240 static void adcCallback(uint16_t* buf, uint32_t buf_len);
241 void set_callback(
void (*function)(uint16_t* buf, uint32_t buf_len));
242 static bool adcReady;
243 uint32_t sampleCounter;
247 static bool adcWhichBuf;
250 #if defined(ARDUINO_ARCH_NRF52840) || defined(ARDUINO_ARCH_NRF52) || defined(DOXYGEN_FORCED)
336 bool adcBuffersAllocated;
337 bool dacBuffersAllocated;
352 #if defined(ARDUINO_ARCH_SAM)
358 uint16_t realBuf[MAX_BUFFER_SIZE];
359 uint16_t adcDma[MAX_BUFFER_SIZE];
363 uint32_t sampleCount;
366 uint32_t adjustDivider;
368 uint32_t dacNumSamples;
369 uint32_t adcNumSamples;
372 uint32_t adcLastAdjust;
377 void dacBufferStereo(uint8_t dacChannel);
379 void tcSetup(uint32_t sampRate = 0);
380 void tc2Setup(uint32_t sampRate = 0);
382 uint32_t frequencyToTimerCount(uint32_t Frequency);
387 i2s_config_t i2s_cfg;
390 adc1_channel_t adcChannel;
395 uint8_t lastDacSample;
396 i2s_event_t myI2SQueue[5];
402 #define DELAY_250MS (250 / portTICK_PERIOD_MS)