Чт окт 08, 2020 20:42:02
Сб окт 10, 2020 16:16:19
Сб окт 10, 2020 16:37:15
Сб окт 10, 2020 19:45:32
int16_t bufferDMA[<размер буфера>];
...................
...................
// init DMA0
DMA0CON = 0;
DMA0CONbits.MODE = 0b00; //Continuous - после завершения пакета авт. перезапуск
// или:
//DMA0CONbits.MODE = 0b01; //One-Shot - после завершения пакета выключение канала
DMA0CONbits.AMODE = 0b00; //Register Indirect with Post-Increment mode
DMA0CONbits.DIR = 0b00; //Reads from peripheral address, writes to RAM address
DMA0CONbits.SIZE = 0; //Word
DMA0REQ = 0b1101; // request from ADC1
DMA0STA = (uint16_t)&bufferDMA;
DMA0PAD = (uint24_t)&ADC1BUF0;
DMA0CNT = <размер буфера>-1;
// init ADC with DMA
AD1CON4bits.ADDMAEN = 1;
...................
...................
// где нужно запускаем DMA:
DMA0CONbits.CHEN = 1;
Сб окт 10, 2020 20:37:35
Сб окт 10, 2020 20:42:48