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.

关于MSP430 ADC12采样频率的问题

Other Parts Discussed in Thread: MSP430F149

我使用MSP430F149对一个低频的信号进行采样。程序按下列设置ADC12的寄存器:

//ADC12初始化设置
P6SEL |= 0x03; //ADC12 A1/A0
ADC12CTL0 = ADC12ON + SHT0_3 + MSC;
ADC12CTL1 = SHP + ADC12DIV_7 + ADC12SSEL_1 + CONSEQ_3; //ADC12时钟源为ACLK,1/8分频

ADC12MCTL0 = INCH_0;
ADC12MCTL1 = INCH_1 + EOS;
ADC12IE = 0x02; //开启ADC12IFG.1中断

//ADC12中断函数
#pragma vector = ADC_VECTOR
__interrupt void ISR_ADC12(void)

  _DINT();
  ADC12IE = 0x00; //关闭ADC12中断
  buff0[index] = ADC12MEM0;
  buff1[index] = ADC12MEM1;
  index++;
  if(index == 30)
  {
    index = 0;
    ......
  }

 ADC12IE = 0x02; //开启ADC12IFG.1中断
  _EINT();
}

其中ACLK时钟为LFXT1,是32768Hz的晶振。我根据如下公式:
4*Tadc12clk*2^SHTx  + 13*(ADC12CLK时钟分频系数*1/Fadc12clk)
计算的采样频率大约是30.1Hz。从ADC12MEM寄存器接收数据是在中断程序中进行的,经过测量发现每个通道各接收30个数据均花费700ms的时间。这样看来,实际的采样率和寄存器设置的理论采样率有很大出入。这是为什么呢?