|
配置了三种模式,为单次模式,连续模式和DMA传输
单次模式是调用一次采集函数,在指定的某一个AD端口采集,用到的时候在去采样
连续模式是连续转换多个通道,采用级联模式,采用16路AD通道的值
DMA传输时AD采样的值直接通过DMA传输到内存中,不需要要CPU干预,持续采样,放到内存,需要用到数据的时候去读取相应的存储区即可。
DMA传输(函数基本都是TI的库文件中的,配置参数即可)
volatile Uint16 DMABuf1[16];
volatile Uint16 *DMADest;
volatile Uint16 *DMASource;
main函数中要设置的东西
DMAInitialize();
for (i=0; i
{
DMABuf1 = 0;
}
DMADest = &DMABuf1[0]; //指定目标buf数组首地址
DMASource = &AdcMirror.ADCRESULT0; //指定
DMACH1AddrConfig(DMADest,DMASource);
DMACH1BurstConfig(1,1,1);
DMACH1TransferConfig(7,1,1);
DMACH1WrapConfig(0xffff,0,0xffff,0);
DMACH1ModeConfig(DMA_SEQ1INT,PERINT_ENABLE,ONESHOT_DISABLE,CONT_ENABLE,SYNC_DISABLE, SYNC_SRC,OVRFLOW_DISABLE,SIXTEEN_BIT,CHINT_END,CHINT_ENABLE);
StartDMACH1();
当然首先AD要配置为连续采样模式,然后就可以直接去读DMABuf1数组的值了
|
|