This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

关于ADC转换的问题

Other Parts Discussed in Thread: MSP430G2452

我用的是ADC10   想用多次转换实现取样八个数  但是程序写出来只能进行一次取样 不知道是哪里的问题 请麻烦大家帮我看一下 程序很短

#include <msp430g2452.h>

#define Num_of_Results 8

unsigned int index = 0;

unsigned int results[Num_of_Results];

void main(void)

{

WDTCTL = WDTPW + WDTHOLD;

P1SEL |= BIT0;

ADC10CTL0 = ADC10ON + ADC10IE;

ADC10CTL1 = ADC10SSEL_1 + CONSEQ_2 + MSC;

ADC10CTL0 |= ENC;

ADC10AE0 |= BIT0;

ADC10CTL0 |= ADC10SC;

_EINT();

LPM0;

}

#pragma vector = ADC10_VECTOR

__interrupt void ADC10()

{

results[index] = ADC10MEM;

index++;

if(index==8)

index = 0;

}

只有results[0]中存到了数据   还有我一直没太弄懂单通道单次转换和多次转换的区别...

  • 1.单通道单次转换和多次转换的区别:第一种启动ADC后只进行一次转换,输出结果,多次转换是ADC不停进行转换(注意和定时去启动ADC转换的区别),用户可以多次读到ADC的转换值,这种功能经常用在需要多次采样求平均或者做其他处理的应用中;

    2.ADC单通道多次重复采样程序状态转换图如下图所示:

    3.单通道重复采样中,ADC10CTL0中的MSC位没有置位,不能即时回到ADC自动运行状态,注意上图中的红框框。