请教MSP430F449数据采集周期计算是否正确

楼主
请教MSP430F449数据采集周期计算是否正确
[P]void main(void)
{
  WDTCTL = WDTPW+WDTHOLD;          //关闭看门狗    
  P6SEL |=0x01;                               //使能ADC通道
  ADC12CTL0 = ADC12ON+SHT0_6+MSC;              //打开ADC,设置采样时间,128个时钟周期
  ADC12CTL1 = SHP+CONSEQ_2;                    //使用采样定时器
 ADC12CTL1 |= ADC12SSEL_1;                    // select ACLK
  ADC12IE = 0x01;                               //使能ADC中断
  ADC12CTL0 |=ENC;                                //使能转换
  _EINT();
 
  while (1)
  {
    ADC12CTL0 |=ADC12SC;                            //开始转换
   _BIS_SR(LPM0_bits + GIE);                 // Enter LPM0 w/ interrupt
  }
}
///////
//函数名称: ADC12ISR
//功能: ADC中断服务函数,在这里用多次平均的方法计算P6.0口的模拟电压数值
#pragma vector=ADC_VECTOR
__interrupt void ADC12ISR (void)
{
  static int index = 0;
  results[index++] = ADC12MEM0;               //move results
  if(index == Num_of_Results)
  {
    calc_cycle(results);
    index = 0;
  }
   _BIC_SR_IRQ(LPM0_bits);
}[/P][P]
以上是采集程序的一部分。[/P][P]采集保持时间为128个时钟周期,时钟为ACLK信号,再加上13个固定的转换时间,[/P][P]所以采样时间为(128+13)/32768=0.004s,[/P][P]大家帮我看看我计算的采样时间是不是正确。[/P][P]因为我得到的程序结果有些出入,所以我想确定一下采样周期是否正确,感谢大家![/P]
1楼
[P]你好:
只要采样周期最小时间能符合采样时序的最小时间要求的话,这是基本要求。
ADC12CLK=ACLK这个不算高。[/P][P]他的采样时间保由两部组成,第一是13个ADC12CLK+采样保持触发时间(也就是采样定时器,如果你有做分频了,当然由这个分频时间所决定。)。基本上可以安上述的计算方案来推断出采样周期的。SHP这个必须要选择正确喔。[/P]
2楼
非常感谢版主确认!

电脑版 Page created in 0.1562 seconds width 3 queries.