rework #4
@ -15,6 +15,11 @@
|
|||||||
|
|
||||||
//--type definitions------------------------------------------------------------
|
//--type definitions------------------------------------------------------------
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Struct used by the circular buffer system. This system allows bufferized
|
||||||
|
* reads to a peripheral with no latency, minimal cpu usage and customisable
|
||||||
|
* buffer sizes
|
||||||
|
*/
|
||||||
struct DmaCircBuffer {
|
struct DmaCircBuffer {
|
||||||
volatile void* buffer; //the buffer to use as a circular buffer
|
volatile void* buffer; //the buffer to use as a circular buffer
|
||||||
volatile void* src; //source peripheral register
|
volatile void* src; //source peripheral register
|
||||||
@ -32,6 +37,15 @@ struct DmaCircBuffer {
|
|||||||
|
|
||||||
//--functions-------------------------------------------------------------------
|
//--functions-------------------------------------------------------------------
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Configure a DMA circular buffer for a single DMA channel. A standard buffer
|
||||||
|
* is used a base to construct a circular buffer, supplied in data by DMA
|
||||||
|
* tranfers from a peripheral. The DMA's priority is given as parameters.
|
||||||
|
* The peripheral's specific configuration must be handled separately.
|
||||||
|
*
|
||||||
|
* Once this function is called, the system will start running right away and
|
||||||
|
* will stay running until manually stopped
|
||||||
|
*/
|
||||||
void dma_cbuf_configure(volatile struct DmaCircBuffer* buffer,
|
void dma_cbuf_configure(volatile struct DmaCircBuffer* buffer,
|
||||||
volatile void* raw_buffer, volatile void* src, uint16_t buffer_size,
|
volatile void* raw_buffer, volatile void* src, uint16_t buffer_size,
|
||||||
enum DmaPeriph dma, enum DmaChannel channel, enum DmaConfig priority);
|
enum DmaPeriph dma, enum DmaChannel channel, enum DmaConfig priority);
|
||||||
Loading…
Reference in New Issue
Block a user