|
enum | Channel {
Channel1 = 0,
Channel2,
Channel3,
Channel4,
Channel5,
Channel6,
Channel7
} |
|
enum | CircularMode : uint32_t { Disabled = 0,
CircularMode::Enabled = DMA_CCR_CIRC
} |
|
enum | DataTransferDirection : uint32_t { DataTransferDirection::PeripheralToMemory = 0,
DataTransferDirection::MemoryToPeripheral = DMA_CCR_DIR,
DataTransferDirection::MemoryToMemory = DMA_CCR_MEM2MEM
} |
|
enum | InterruptEnable : uint32_t { TransferComplete = DMA_CCR_TCIE,
HalfTransfer = DMA_CCR_HTIE,
TransferError = DMA_CCR_TEIE
} |
|
enum | InterruptFlags : uint8_t {
Global = 0b0001,
TransferComplete = 0b0010,
HalfTransferComplete = 0b0100,
Error = 0b1000,
All = 0b1111
} |
|
enum | MemoryDataSize : uint32_t {
Byte = 0,
Bit8 = Byte,
HalfWord = DMA_CCR_MSIZE_0,
Bit16 = HalfWord,
Word = DMA_CCR_MSIZE_1,
Bit32 = Word
} |
|
enum | MemoryIncrementMode : uint32_t { Fixed = 0,
MemoryIncrementMode::Increment = DMA_CCR_MINC
} |
|
enum | PeripheralDataSize : uint32_t {
Byte = 0,
Bit8 = Byte,
HalfWord = DMA_CCR_PSIZE_0,
Bit16 = HalfWord,
Word = DMA_CCR_PSIZE_1,
Bit32 = Word
} |
|
enum | PeripheralIncrementMode : uint32_t { Fixed = 0,
PeripheralIncrementMode::Increment = DMA_CCR_PINC
} |
|
enum | Priority : uint32_t { Low = 0,
Medium = DMA_CCR_PL_0,
High = DMA_CCR_PL_1,
VeryHigh = DMA_CCR_PL_1 | DMA_CCR_PL_0
} |
|
enum | Request { Any
} |
|
enum | Signal : uint8_t {
NoSignal,
Ch1,
Ch2,
Ch3,
Ch4,
Rx,
Trig,
Tx,
Up
} |
|
template<DmaBase::Channel ChannelID, uint32_t CHANNEL_BASE>
class modm::platform::DmaChannelHal< ChannelID, CHANNEL_BASE >
Hardware abstraction layer of a DMA channel
- Template Parameters
-
ChannelID | the ID of the channel |
CHANNEL_BASE | base address of the channel registers |
- Author
- Mike Wolfram
template<DmaBase::Channel ChannelID, uint32_t CHANNEL_BASE>
static void modm::platform::DmaChannelHal< ChannelID, CHANNEL_BASE >::setMemoryIncrementMode |
( |
bool |
increment | ) |
|
|
inlinestatic |
Enable/disable memory increment
When enabled, the memory address is incremented by the size of the data (e.g. 1 for byte transfers, 4 for word transfers) after the transfer completed.
- Parameters
-
[in] | increment | Enable/disable |
template<DmaBase::Channel ChannelID, uint32_t CHANNEL_BASE>
static void modm::platform::DmaChannelHal< ChannelID, CHANNEL_BASE >::setPeripheralIncrementMode |
( |
bool |
increment | ) |
|
|
inlinestatic |
Enable/disable peripheral increment
When enabled, the peripheral address is incremented by the size of the data (e.g. 1 for byte transfers, 4 for word transfers) after the transfer completed.
- Parameters
-
[in] | increment | Enable/disable |