//-------------------------------------------------------// // Project Code : V2H6K01-23-ENEMAN // File Name : Dma.cpp // Created on : 2023. 7. 14. // Description : // Author : KimJeongWoo // Last modified Date : //-------------------------------------------------------// #include "Cpu1DeviceDefine.h" //-------------------------------------------------------------------// // DMA를 사용하려고 하는 메모리의 영역이 DMA를 지원하는지 확인해야함 // // EX) Flash 영역에서는 DMA 사용 안됨, LS메모리도 마찬가지 // // // //-------------------------------------------------------------------// void InitDma() { SysCtl_selectSecMaster(0, SYSCTL_SEC_MASTER_DMA); DMA_initController(); InitDma1(); } void InitDma1() { DMA_configAddresses(DMA_CH1_BASE, &Adc.RawData, (const void*)ADCARESULT_BASE); DMA_configBurst(DMA_CH1_BASE, 8, 1, 1); DMA_configTransfer(DMA_CH1_BASE, 4, 0x19, 1); DMA_configWrap(DMA_CH1_BASE, 0xFFFF, 0, 0xFFFF, 0); DMA_configMode(DMA_CH1_BASE, DMA_TRIGGER_ADCA1, (DMA_CFG_ONESHOT_ENABLE | DMA_CFG_CONTINUOUS_ENABLE | DMA_CFG_SIZE_16BIT)); DMA_setInterruptMode(DMA_CH1_BASE, DMA_INT_AT_END); DMA_enableTrigger(DMA_CH1_BASE); DMA_enableInterrupt(DMA_CH1_BASE); DMA_startChannel(DMA_CH1_BASE); Interrupt_register(INT_DMA_CH1, &Cpu1Dma1Isr); Interrupt_enable(INT_DMA_CH1); }