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.

AD转换TI官方例程求解释

Other Parts Discussed in Thread: MSP430F1611

用TI官方给出的MSP430F1611的AD例程实在连续采样转换有段程序不懂球大神帮忙解释一下

P2SEL |= BIT3; // Set for Timer A1
P2DIR |= 0x08;
TACCR0 =7; // Init TACCR0 w/ sample prd=CCR0+1
TACCR1 = 4; // Trig for ADC12 sample & convert
TACCTL1 = OUTMOD_3; // Set/reset
TACTL = TACLR | MC_1 | TASSEL_1; // ACLK, clear TAR, up mode

这段程序中CCR0和CCR1在采样过程中两者之间的关系是什么  我想实现的是0.02S连续采样40次 该如何设置呢?求大神帮忙解释一下 谢谢

  • 可以理解为CRR0是设置定时器的时间的,这里设置为7. 表示数8个ACLK即为ADC的采样周期。如你想采样周期为0.02s。那就用0.02s除以ACLK的周期,得到的数减一,写入TACCR0.

    TACCR1,表示触发信号,上面的代码表示,采样周期的,前四个ACLK周期里,它为高的一小方波。

  • xiaolong ye, 这段例程其实就是设置Timer_A 输出PWM波,后用PWM波作为ADC的采样-转换触发源。而对于Timer_A产生的PWM波而言,CCR0决定了PWM波的周期,CCR1决定了PWM波的占空比。对于用PWM波来触发ADC采样-转换而言,采样-转换的次数是由PWM波沿来的次数决定的,也就是由PWM波的周期决定的,占空比,你设成50%左右即可。例程中就是 PWM波周期为CCR0+1=8*ACLK period, 占空比为50%.

    故如果你想0.02S连续采样40的话,请问你是想每0.02s采样一次,共采样40次呢?还是0.02s内共采样40次?

    如果是每0.02s采样一次,共采样40次的话,那就是0.02s应该是PWM波的周期,则此时CCR0= 0.02s*ACLK -1. 次数的话,就是有多少个PWM波,采多少次。你可以让采样40次后,关闭PWM输出,也可以让PWM一直输出。自己看着办吧。

    如果是后一种的话,则PWM的周期应该为:0.02s/40,其他自己计算吧。

  • 请问"后用PWM波作为ADC的采样-转换触发源",这句话从哪句代码可以看出?