打印

急!!!msp430 f149的AD这样设置为什么读不到AD值呢?

[复制链接]
735|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
song0802|  楼主 | 2015-9-17 15:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void init_adc12(void)
{
  P6SEL |= (BIT0+BIT1+BIT2+BIT3+BIT4+BIT5+BIT6);   //P6 功能选择为:ADC模拟信号输入
  ADC12CTL0 &= ~ENC;                  // 在进行设置时首先复位ADC的转换使能
  ADC12CTL0 =(SHT0_8 + MSC + REF2_5V + REFON + ADC12ON);
  //采样保持时间
  //内部参考电压 2.5V
  //打开内部参考电压
  //打开 ADC12,可以进行转换
  //ADC12CTL1=0;
  ADC12CTL1 =(CSTARTADD_0 + SHS_1 + SHP + ADC12DIV_0 + ADC12SSEL_3 + CONSEQ_3);//CONSEQ_1
  ADC12MCTL0=(SREF_1 + INCH_0);
  ADC12MCTL1=(SREF_1 + INCH_1);
  ADC12MCTL2=(SREF_1 + INCH_2);
  ADC12MCTL3=(SREF_1 + INCH_3);
  ADC12MCTL4=(SREF_1 + INCH_4 );
  ADC12MCTL5=(SREF_1 + INCH_5);
  ADC12MCTL6=(SREF_1 + INCH_6+ EOS);
  delay_ms(20); // 延时等待参考电压启动
  //关闭各个通道的转换中断
  ADC12IE =  0x00;//0x7f;     // 允许最后一个通道的中断
  ADC12CTL0 |= ENC + ADC12SC;//使能转换
  _EINT();
}
void init_timerA(void)
{
  TACTL &= ~ID1;
  TACTL &= ~ID0;                          //ID_0: 1分频
  //当主时钟为8M时,用SMCLK定时(准确); 否则用 ACLK定时(有误差)

  TACTL |= TASSEL1;
  TACTL &= ~TASSEL0;                      //输入时钟源选择 SMCLK  8M
  TACCR0 = 7999;                          //定时为 1 ms

  TACTL |= TACLR;                         //计数器内容清零
  TACTL &= ~MC1;                          //工作模式:加计数(MC1=0; MC0=1)
  TACTL |= MC0;                           //开始计数
  TACTL |= TAIE;                          //开定时器 A 的定时溢出中断
}

// 函数名称:Timer_A(void)
// 函数描述:定时器 A 定时溢出中断函数  中断一次为 x 秒
// 参    数:无
// 返 回 值:无
#pragma vector = TIMERA1_VECTOR
__interrupt void Timer_A(void)
{
  if(TAIV==10)
  {
    Counter_mS++;
  // 关闭转换
  ADC12CTL0 &= ~ENC;

      //温度采集
    Temper_ADC12MEMA[num]=ADC12MEM3;
    Temper_ADC12MEMB[num]=ADC12MEM4;
    Temper_ADC12MEMC[num]=ADC12MEM5;
    num++;
    if(num==10)
    {
      num=0;
      Temper_nADC_Flage=1;
    }
  // 启动AD转换
  ADC12CTL0 |= ENC + ADC12SC;
  }
  //LPM3_EXIT;                                     //退出低功耗模式3
}
以上定时器A的中断李为什么读不到AD值呢!
请各位大虾指教!!!!!

相关帖子

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

本版积分规则

2

主题

4

帖子

0

粉丝