打印

5529

[复制链接]
1009|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
淅淅沥沥沥|  楼主 | 2014-7-9 21:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ADC, AD, ADC1, dc, hz
谁能帮我编个MSP430F5529的ADC12程序啊,要求是用timerA OUT.1触发采样,采样频率为1k或者200 hz求大神路过帮忙。

相关帖子

沙发
wangch_sh| | 2014-7-9 21:30 | 只看该作者
你自己尝试着编一下,有什么问题提出来。不能完全指望别人。

使用特权

评论回复
板凳
淅淅沥沥沥|  楼主 | 2014-7-9 21:43 | 只看该作者
wangch_sh 发表于 2014-7-9 21:30
你自己尝试着编一下,有什么问题提出来。不能完全指望别人。

这个是自己瞎弄的,就是实现不了功能

#include  <msp430.h>

#define   Num_of_Results   512
int results[Num_of_Results] = {0};

void ADC_Init(void);

void main(void)
{
  WDTCTL = WDTPW | WDTHOLD;                 // Disable the Watchdog.
  ADC_Init();                               // Initialize ADC12
  ADC12CTL0 |= ADC12ENC;                         // Start conversion
   _BIS_SR(LPM0_bits);                    // Enter LPM0
}


void ADC_Init(void)
{
  P1DIR = BIT0;                             // set port to outputs
  P1OUT &= ~BIT0 ;                               // reset port outputs
  P6SEL |= 0x01;                            // select A0 input
  ADC12CTL0 = ADC12ON+ADC12SHT0_1+ADC12REF2_5V+ADC12REFON; // Setup ADC12
  ADC12CTL1 = ADC12SHP+ADC12CONSEQ_2+ADC12SHS_1;           // Timer triggers sampling
  ADC12MCTL0 = ADC12INCH_0 + ADC12SREF_1;
  ADC12IE = 0x0001;                         // Enable ADC12IFG.0
  
  TA0CCR0 =1500;
  TA0CCTL0 |= CCIE ;
  TA0CTL = TASSEL_1|MC_1;
  _BIS_SR(LPM3_bits+GIE);
  
  TA0CCTL0 &=~CCIE ;
  
  P2SEL |= BIT3;                            // Set for Timer A1
  P2DIR |= 0x08;
  TA0CCR0 = 2600;                               // Init TACCR0 w/ sample prd=CCR0+1
  TA0CCR1 = 1300;                               // Trig for ADC12 sample & convert
  TA0CCTL1 = OUTMOD_3;                       // Set/reset
  TA0CTL = TACLR | MC_1 | TASSEL_1;          // ACLK, clear TAR, up mode
}

#pragma vector = TIMER0_A0_VECTOR
__interrupt void TIMER_A0_ISR(void)
{
  TA0CTL =0;
  LPM3_EXIT;
}

// ADC12 Interrupt Service Routine
#pragma vector=ADC12_VECTOR
__interrupt void ADC12ISR (void)
{
  static unsigned int index = 0;

  results[index++] = ADC12MEM0;             // Move results

  if (index == 512)
  {
    ADC12CTL0 &= ~ADC12ENC;                      // Stop conversion
    index = 0;
    P1OUT |= 0x01;
    _BIS_SR(LPM3_bits);
  }
}

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

25

帖子

0

粉丝