26 #ifndef RINGBUFFERDMA_H
27 #define RINGBUFFERDMA_H
30 #include "DMAChannel.h"
41 RingBufferDMA(
volatile int16_t* elems, uint32_t len, uint8_t ADC_num = 0);
81 static void call_dma_isr(
void);
93 uint16_t increase(uint16_t p);
95 volatile uint32_t*
const ADC_RA;
106 #endif // RINGBUFFERDMA_H
Definition: RingBufferDMA.h:37
bool isEmpty()
Returns true if the buffer is empty.
Definition: RingBufferDMA.cpp:140
RingBufferDMA(volatile int16_t *elems, uint32_t len, uint8_t ADC_num=0)
Constructor, buffer has a size len and stores the conversions of ADC number ADC_num.
Definition: RingBufferDMA.cpp:35
uint8_t ADC_number
ADC module of the instance.
Definition: RingBufferDMA.h:71
DMAChannel * dmaChannel
DMAChannel to handle all low level DMA code.
Definition: RingBufferDMA.h:62
uint16_t b_size
Size of buffer.
Definition: RingBufferDMA.h:68
bool isFull()
Returns true if the buffer is full.
Definition: RingBufferDMA.cpp:136
void void_isr()
This function will be called when a DMA transfer finishes.
Definition: RingBufferDMA.cpp:129
~RingBufferDMA()
Destructor.
Definition: RingBufferDMA.cpp:122
volatile int16_t *const p_elems
Pointer to the elements of the buffer.
Definition: RingBufferDMA.h:65
void start()
Start DMA operation.
Definition: RingBufferDMA.cpp:71
int16_t read()
Read a value from the buffer, make sure it's not emtpy by calling isEmpty() first.
Definition: RingBufferDMA.cpp:155