工具/软件:Starterware
您好,
我 要使用DMA传输将ADC数据传输到FRAM。 ADC模式是 从 ADC12MCTL0到ADC12MCTL1的信道重复序列模式,ADC触发信号 为0.1。代码如下
//ADC12 (内部)触发器,0.1 PWM 8.192KHz,来自32.768kHz晶体振荡器 TA01_PWMOUT (4,2,tassel__ACLK); //设置ADC信道引脚 ADC_PIN_SET(); ADC12CTL0 &=~ADC12CTL0; ADC12C12L0和 STI ADC12L0; ~ADC12L0的上升信号和CA1;ADC12L0的C12L0;C12L0和CAB= CASP12的上升信号; // ADC触发器0.1 ,ADC时钟为SMCLK ADC12CTL1 |= ADC12SHS_1| ADC12PDIV__1| ADC12DIV_0| ADC12SSEL_3; //通道重复序列 ADC12CTL1 |ADC12CONSE_3; // ADC12CD_CASC1= ADC12CAF_12 //end Mem ADC12MCTL1 |= ADC12EOS; //DMA set DMACTL0 |= DMA1TSEL__ADC12IFG; __data16_write_addr ((unsigned short)&DMA1SA,(INT16U)&ADC12MEM1); __data16_write_addr (((unsigned short)&DMA1DA,(INT16U)&ElectfieldBuffer[0]); DMA1SZ =5120; DMA1CTL = DMADT_4 | DMADSTINCR_3 | DMASRCINCR_0 |DMASWDW |DMAEN;
"当CONSEQx ={1,3}时,序列中最后一个ADC12MEMx的ADC12IFG标志可以触发DMA传输。 ”(MSP430FR6972用户指南的第336页)。 我知道 只有ADC12MEM1的ADC12IFG可以触发DMA传输,但我发现它不是。 DMA浪费了625ms 来完成5120点。 但是,时间理论应该是(1/8.192KHz)*2*5120=1250ms 。1250。 为什么?
此致,
Jent

