65 void begin(uint8_t enADC, uint8_t enDAC, uint8_t _useI2S = 0);
80 void getADC(uint32_t samples = MAX_BUFFER_SIZE);
88 void feedDAC(uint8_t dacChannel = 0, uint32_t samples = MAX_BUFFER_SIZE,
bool startInterrupts =
false);
116 #if !defined (ARDUINO_ARCH_NRF52840) && !defined (ARDUINO_ARCH_NRF52) && !defined ARDUINO_NRF52840_FEATHER
118 #elif defined __MBED__
119 inline static uint16_t
adcBuffer16[MAX_BUFFER_SIZE];
196 #if defined (ESP32) || defined (DOXYGEN_FORCED)
206#if defined (ARDUINO_ARCH_NRF52840) || defined (ARDUINO_ARCH_NRF52) && !defined ARDUINO_NRF52840_FEATHER && defined __MBED__
207 inline static uint8_t aCtr;
208 inline static uint32_t aSize;
209 inline static uint16_t *adcBuf0 = NULL;
210 inline static uint16_t *adcBuf1 = NULL;
211 inline static void (*_onReceive)(uint16_t *buf, uint32_t buf_len) = NULL;
212 inline static void adcCallback(uint16_t *buf, uint32_t buf_len);
213 inline static void set_callback(
void(*function)(uint16_t *buf, uint32_t buf_len));
214 inline static bool adcReady;
215 inline static uint16_t *dacBuf0;
216 inline static uint16_t *dacBuf1;
217 inline static uint32_t sampleCounter;
223#elif defined (ARDUINO_ARCH_NRF52840) || defined (ARDUINO_ARCH_NRF52) || defined (ARDUINO_NRF52840_FEATHER) && !defined __MBED__
227 static uint32_t aSize;
228 static uint16_t *adcBuf0;
229 static uint16_t *adcBuf1;
230 static void (*_onReceive)(uint16_t *buf, uint32_t buf_len);
231 static void adcCallback(uint16_t *buf, uint32_t buf_len);
232 void set_callback(
void(*function)(uint16_t *buf, uint32_t buf_len));
233 static bool adcReady;
234 uint32_t sampleCounter;
241#if defined (ARDUINO_ARCH_NRF52840) || defined (ARDUINO_ARCH_NRF52) || defined (DOXYGEN_FORCED)
327#if defined (ARDUINO_ARCH_SAM)
333 uint16_t realBuf[MAX_BUFFER_SIZE];
334 uint16_t adcDma[MAX_BUFFER_SIZE];
338 uint32_t sampleCount;
341 uint32_t adjustDivider;
343 uint32_t dacNumSamples;
344 uint32_t adcNumSamples;
347 uint32_t adcLastAdjust;
352 void dacBufferStereo(uint8_t dacChannel);
354 void tcSetup(uint32_t sampRate = 0);
355 void tc2Setup(uint32_t sampRate = 0);
357 uint32_t frequencyToTimerCount(uint32_t Frequency);
362 i2s_config_t i2s_cfg;
365 adc1_channel_t adcChannel;
370 uint8_t lastDacSample;
371 i2s_event_t myI2SQueue[5];
377 #define DELAY_250MS (250 / portTICK_PERIOD_MS)