{求助帖}MSP430如何提高AD采样频率

[复制链接]
2205|1
 楼主| gjun027 发表于 2011-6-6 22:17 | 显示全部楼层 |阅读模式
有个问题请教下大家,msp430怎么样提高AD采样频率,datesheet上说最高可达200kps,但是我做出来4k左右就失真了。有知道的提供点线索吧,谢谢,端午节快乐

我分别试过用timer_A触发ADC12,和软件ADC12SC位控制触发,但是结果都差不多,采样都很低。晶振有个32k的,还有个8m的,我使用的应该是DCO倍频以后的频率作为MCLK=SMCLK=32*32k~=1M.
 楼主| gjun027 发表于 2011-6-6 22:44 | 显示全部楼层
下面是源程序:
  1. #include  <msp430xG43x.h>

  2. void main(void)
  3. {
  4.   WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
  5.   ADC12CTL0 = SHT0_2 + ADC12ON;             // Set sampling time, turn on ADC12
  6.   ADC12CTL1 = SHP+ADC12SSEL_3;                    // Use sampling timer,ADC12clok=smclk;
  7.   ADC12IE = 0x01;                           // Enable interrupt
  8.   ADC12CTL0 |= ENC;                         // Conversion enabled
  9.   P6SEL |= 0x20;                            // P6.0 ADC option select
  10.   P3DIR |= 0xb0;                            // P5.1 output
  11.    P3OUT = 0x00;
  12.    
  13.   DAC12_0CTL = DAC12IR + DAC12AMP_2;        // Internal ref gain 1  
  14.   DAC12_0CTL |= DAC12ENC;                   // 使能dac


  15.   for (;;)
  16.   {
  17.     ADC12CTL0 |= ADC12SC;                   // Sampling open
  18.     _BIS_SR(CPUOFF + GIE);                  // LPM0, ADC12_ISR will force exit
  19.   }
  20. }

  21. //ADC12 interrupt service routine
  22. #pragma vector=ADC12_VECTOR
  23. __interrupt void ADC12_ISR (void)
  24. {
  25.     DAC12_0DAT = ADC12MEM0;
  26.      _BIC_SR_IRQ(CPUOFF);

  27. }
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

21

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部