Quantcast
Channel: MSP 低功耗微控制器论坛 - 最近的话题
Viewing all articles
Browse latest Browse all 3634

MSP430G,用ADC10进行ADC采集,但是进不了ADC中断

$
0
0

各位大神,你好!

本来是一个刚接触MSP430G的菜鸟,现在我用ADC10进行ADC采集,但是进不了ADC中断,跪求指导,谢谢了!代码如下:

void main(void)
{
    long IntDeg=0;
    long temp=0;
 WDTCTL = WDTPW | WDTHOLD; // stop watchdog timer

 //配置时钟
 BCSCTL3 = LFXT1S_2;                                          //低高频选OLV,并作为ACLK时钟源
 BCSCTL2 = SELM_3 + DIVM_0;                             //MCLK时钟源选VLO(或LFXT1),MCLK不分频
 IFG1 &= ~OFIFG;                                                     //清时钟失效中断标志
 _BIS_SR(SCG0 + SCG1 + OSCOFF);                   //关DCO、SMCLK、LFXT1等

    BuzzerInit();
    //timer0_init();
    ADC10_init();

    while(1)
    {
        //LPM3;
        ADC10CTL0 |= ENC + ADC10SC;                     // Sampling and conversion start
        _EINT();
        //_bis_SR_register(CPUOFF + GIE);     // LPM0 with interrupts enabled
        //LPM3;
        //-----ADC转换完成中断唤醒CPU后才执行以下代码-----
        temp = ADC10MEM;          //读取AD采样值
        IntDeg= (temp*3.3)/1024;

        __no_operation();                       // SET BREAKPOINT HERE
    }
}

void ADC10_init(void)
{
  ADC10CTL0 &= ~ENC;

  P1SEL=0xFF;//将io口选择为AD输入
  P1DIR &= ~BIT1;
  ADC10AE0 |= BIT1;                         // P1.1 ADC option select

  //ADC10CTL0 = ADC10IE + ADC10ON + REFON + ADC10SHT_3 + SREF_1;
    //ADC10CTL1 = CONSEQ_0 + ADC10SSEL_1 + ADC10DIV_0 + SHS_0 + INCH_1;
  ADC10CTL0 = ADC10SR + ADC10ON + ADC10IE;                        //启动ADC,开中断
  ADC10CTL1 = INCH_0 + ADC10SSEL_1 + CONSEQ_0;               //ADC时钟为ACLK, 单通道单次模式

    ADC10CTL0 |= ENC;

}

#pragma vector=ADC10_VECTOR
__interrupt void ADC10_ISR_HOOK(void)
{
    P1OUT^=BIT6;
  //_bic_SR_register_on_exit(LPM4_bits);
  //LPM3_EXIT;
}

无法进入这个中断ADC10_ISR_HOOK,求指导!


Viewing all articles
Browse latest Browse all 3634

Trending Articles