MSP430 ADC程序单步正确,全速运行错误

2019-03-24 10:03发布

程序如下所示:


void main(void)

{

  WDTCTL = WDTPW+WDTHOLD;                   // Stop watchdog timer

  //////P6SEL |= 0x40;                           

  //P7DIR  |= 0XFE;

// P7SEL |= 0x0c;

  P6SEL |= BIT6;                            // Enable A/D channel A6,P6.6 input anolog voltage

  ADC12CTL0 = ADC12ON+ADC12SHT0_2;          // Turn on ADC12, set sampling time

  ADC12CTL1 = ADC12SHP;                     // Use sampling timer

  ADC12MCTL0 = ADC12SREF_2+ADC12INCH_6;                 // Vr+ = VeREF+ (ext) and Vr-=AVss

  ADC12CTL0 |= ADC12ENC;                    // Enable conversions



while(1)

{

    ADC12CTL0 |= ADC12SC;                   // Start conversion-software trigger

    while (!(ADC12IFG & BIT0));//while (!(ADC12IFG & BIT0));

    ad= ADC12MEM0;

}

}




这个程序单步运行的时候,会有这样的结果输出:

QQ图片20150713174013.png

但是一旦全速运行,就会得到极大值的结果4095,请问这是什么原因?该怎样解决?

谢谢!!!
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
huaiqiao
1楼-- · 2019-03-24 18:41
< 关闭看门狗之后的程序为什么要注释掉呢?
qiushenghua
2楼-- · 2019-03-24 19:10
 精彩回答 2  元偷偷看……
huaiqiao
3楼-- · 2019-03-24 22:02
为什么要将“  //////P6SEL |= 0x40;                           

  //P7DIR  |= 0XFE;

// P7SEL |= 0x0c; "屏蔽呢

一周热门 更多>

相关问题

    相关文章