TI中文支持网
TI专业的中文技术问题搜集分享网站

关于mspG2553中AD的一系列用法

回复: mspG2553中AD自动数据传输方法是如何控制

jiabao mo 发表于论坛 MSP430™16 位超低功耗 MCU

谢谢,在问一下如何确定已经转化完30次
 ADC10CTL1 = INCH_2 + CONSEQ_3;            // A3/A2/A1, single sequence
   ADC10CTL0 = ADC10SHT_2 + MSC + ADC10ON + ADC10IE;
   ADC10DTC1 = 0x1E;                         // 3 conversions
   ADC10AE0 |= 0x07;  // P1.3,2,1 ADC10 option select

当使用DTC时如何确定设定的采样次数 ADC的采样结果值已全部传输到RAM,

ADC10CTL0 &= ~ENC;
    while (ADC10CTL1 & BUSY);               // Wait if ADC10 core is active
    ADC10SA = (unsigned int) ADC10_A;       // Data buffer start                         // P1.0 = 1
    ADC10CTL0 |= ENC + ADC10SC;

是不是当使用DTC时只发生一次中断,就是当设定的转化次数完成后,发生一次中断,还是和不使用DTC时一样每次中断完成都发生中断

是不是也可以不开启中断, ADC10CTL0 |= ENC + ADC10SC; 利用延时等待转化全部完成,在对数组ADC10_A进行操作, 

 

Ken Wang:

jiabao,

  DTC内部会有一个向下计数的transfer counter 的模块,他会在DTC工作是启动,并且在完成一次传输时,它就会进行减一。当计数模块达到0时,也就意味着你设置的传输次数的DTC传输已经结束,这个时候ADC10IFG就会置位。你可以查询这个标志来确定DTC传输是否完成。

DTC传输可以设置位单次一个block或是两个block模式,还可以设置为continue模式。如果你使能了ADC的中断,则在DTC完成一次block或是两个block的时候,ADC10IFG就会被置位。你可以不开中断,采用轮询的方式来确认DTC的工作情况。

如果你需要同时采用延时的方法来等待转化的完成,这也是可以实现的。在我们的数据手册上面,很详细的列出了,ADC工作在不同的时钟模式下,DTC完成一次传输所需要的clock cycle。你可以参考这些来设计你的程序。

Ken

赞(0)
未经允许不得转载:TI中文支持网 » 关于mspG2553中AD的一系列用法
分享到: 更多 (0)