我这个第一次的时候总是得到负的值,好像是因为中断中的内容没有及时执行,temp第一次的时候好像值是0,不知道是什么原因,下面是部分程序。
void ADC12(void)
{
ADC12CTL0 = SHT0_8+REFON+ADC12ON+REF2_5V;
ADC12CTL1 = SHP;
ADC12MCTL0= SREF_1+INCH_10;
ADC12IE = BIT0;
ADC12CTL0|= ENC;
}
#pragma vector=ADC_VECTOR
__interrupt void ADC12ISR (void)
{
temp = ADC12MEM0;
_BIC_SR_IRQ(GIE);
}
void main (void)
{
int x=0,y=0,z=0;
WDTCTL = WDTPW + WDTHOLD;
contrl();
light();
delayms(10);
lcd_init();
delayms(1);
ADC12();
while(1)
{
_BIS_SR(GIE);
ADC12CTL0 |= ADC12SC;
_NOP();
TemperC = (temp - 1615)*704;
TemperC = TemperC/4096;
}
} |