我打算使用DMA来传输ADC1G1的采样结果
使用如下设置
g_dmaCTRLPKT.SADD =sadd;//ADC的结果地址
g_dmaCTRLPKT.DADD =dadd;//RAM的目标地址
g_dmaCTRLPKT.CNCTRL =0;
g_dmaCTRLPKT.FRCNT =2;
g_dmaCTRLPKT.ELCNT =24;
g_dmaCTRLPKT.ELDOFFSET =0;
g_dmaCTRLPKT.ELSOFFSET =1;
g_dmaCTRLPKT.FRDOFFSET =0;
g_dmaCTRLPKT.FRSOFFSET =0;
g_dmaCTRLPKT.PORTASGN =4;
g_dmaCTRLPKT.RSSIZE =ACCESS_32_BIT;
g_dmaCTRLPKT.WRSIZE =ACCESS_32_BIT;
g_dmaCTRLPKT.TTYPE =FRAME_TRANSFER;
g_dmaCTRLPKT.ADDMODERD =ADDR_OFFSET;
g_dmaCTRLPKT.ADDMODEWR =ADDR_INC1;
g_dmaCTRLPKT.AUTOINIT =AUTOINIT_ON;
发现目标RAM中的数据是第1个32位正确为为源地址的第1个32位的数据,2、3、4个32位数据为第1个32位的相关的位移位的内容,
第5个32位为源地址的第2个32位的数据,依次类推。
我修改为
g_dmaCTRLPKT.ELCNT =96;
g_dmaCTRLPKT.RSSIZE =ACCESS_8_BIT;
g_dmaCTRLPKT.WRSIZE =ACCESS_8_BIT;
目标地址和源地址完全一致,为何???