我现在也遇到这个问题,希望您能帮我看看。现象是单步正确,全速结果错误,只有一个主程序,暂时没涉及中断。这是一个ADC程序,单片机是MSP430F5529A,程序如下:
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;
}
}
全速的时候所有的结果都是4095,极大值。但是单步就能产生相对稳定的结果,想请问这是怎么回事,我该如何解决?
谢谢啦!
|