File tree Expand file tree Collapse file tree 3 files changed +7
-1
lines changed Expand file tree Collapse file tree 3 files changed +7
-1
lines changed Original file line number Diff line number Diff line change 1010#include "clock.h"
1111#include "core_callback.h"
1212#include "digital_io.h"
13+ #include "dma.h"
1314#include "dwt.h"
1415#include "hw_config.h"
1516#include "low_power.h"
Original file line number Diff line number Diff line change 88 */
99void DMATransferClass::prepare (dmatransfer_t *settings) {
1010 if (!_prepared) {
11+ // TODO - figure out which DMA to enable the clock for.
1112 __HAL_RCC_DMA1_CLK_ENABLE ();
13+
14+ memcpy (&_transfer_settings, settings, sizeof (dmatransfer_t ));
1215
13- _transfer_settings.dma_settings .Init .Direction = DMA_MEMORY_TO_PERIPH ;
16+ _transfer_settings.dma_settings .Init .Direction = transfer_direction ;
1417 _transfer_settings.dma_settings .Init .PeriphInc = DMA_PINC_DISABLE;
1518 _transfer_settings.dma_settings .Init .MemInc = DMA_MINC_DISABLE;
1619 _transfer_settings.dma_settings .Init .PeriphDataAlignment = DMA_PDATAALIGN_WORD;
1720 _transfer_settings.dma_settings .Init .MemDataAlignment = DMA_MDATAALIGN_WORD;
1821 _transfer_settings.dma_settings .Init .Mode = settings.circular ? DMA_CIRCULAR : DMA_NORMAL;
1922 _transfer_settings.dma_settings .Init .Priority = DMA_PRIORITY_VERY_HIGH;
2023 _transfer_settings.dma_settings .Instance = settings.channel_stream ;
24+ // TODO - intialize the callbacks.
2125
2226 // Perform HAL Initialization first.
2327 HAL_DMA_Init (&dmaUpdate);
Original file line number Diff line number Diff line change @@ -17,6 +17,7 @@ struct dmatransfer_s {
1717 */
1818 DMA_HandleTypeDef *dma_settings;
1919 DMA_CS_Selection channel_stream;
20+ uint32_t transfer_direction;
2021 boolean circular;
2122 void (*transferComplete)(DMA_HandleTypeDef *);
2223 void (*transferHalfComplete)(DMA_HandleTypeDef *);
You can’t perform that action at this time.
0 commit comments