1、DMA
void DMA0_Init(void)
{
DMA0CON= 0x0 & 0xFFFE;
DMA0CONbits.AMODE=0;
DMA0REQ= 0x0D;
//外设个数N-1
DMA0CNT= 17-1;
//存储数组地址
DMA0STAL= __builtin_dmaoffset(&DMA_RAM);
//原始地址
DMA0PAD= (volatile unsigned int)&ADC1BUF0;
DMA0STAH= 0x00;
IFS0bits.DMA0IF = false;
IEC0bits.DMA0IE = 1;
DMA0CONbits.CHEN = 1;
}
2、ADC
void ADC1_Init1(void)
{
AD1CON1=0x04e6;
AD1CON1bits.ADDMABM= 0; //DMA缓冲区构建模式位
AD1CON1bits.AD12B = 1; //12位ADC模式
AD1CON2=0x2408;
AD1CON3=0x141e;
AD1CON4bits.DMABL=2;
AD1CON4bits.ADDMAEN=1;
AD1CHS0=0;
AD1CSSH=0;
AD1CSSL=0xe000;
AD1CHS123=0;
IFS0bits.AD1IF=0;
AD1CON2bits.CSCNA=1;
AD1CON1bits.ADON=1;
}