adc中断一进去就再也出不来了 
/******************************************** 
软件延时 
********************************************/  
//typedef unsigned int uint; 
//typedef unsigned char uchar; 
#define CPU_F ((double)8000000)  
#define DELAY_US(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))  
#define DELAY_MS(x) __delay_cycles((long)(CPU_F*(double)x/1000.0)) 
#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))  
#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0)) 
#define num 20 
unsigned char wan,qian,bai,shi,ge; 
unsigned int results[num]={0}; 
unsigned char t=0; 
unsigned int ave=0; 
unsigned int filter[2]; 
void transform(unsigned int dat) 
{ 
   wan=dat/10000+0x30; 
   qian=dat%10000/1000+0x30; 
   bai=dat%1000/100+0x30; 
   shi=dat%100/10+0x30; 
   ge=dat%10+0x30; 
} 
void main() 
{ 
   WDTCTL = WDTPW+WDTHOLD;  //关闭看门狗 
  BCSCTL1 &= ~XT2OFF; 
   while(IFG1&OFIFG) 
   { 
     IFG1&= ~OFIFG; 
     DELAY_US(50); 
   } 
   BCSCTL2 |= SELM_2+SELS+DIVS_3; //MCLK 8M,SMCLK 1M 
   lcd_init1602 (); 
   //keypad_init(); 
   //write1char1602(0,0,i/10+0x30); 
   //BoardConfig(0xb8);//11111000 
   //_EINT(); 
 
   WDTCTL=WDTPW+WDTHOLD; 
   P6SEL|=BIT1; 
   ADC12CTL0=ADC12ON+SHT0_8+SHT1_8+MSC; 
   ADC12CTL1=SHP+CONSEQ_2+CSTARTADD_1; 
   ADC12MCTL1=INCH_1; 
   ADC12IE=BIT1; 
   ADC12CTL0|=ENC; 
   _EINT(); 
   ADC12CTL0|=ADC12SC; 
   while(2); 
} 
#pragma vector=ADC_VECTOR 
__interrupt void ADC12ISR() 
{  
   ADC12IFG=0X00; 
   t++; 
   filter[0]=ADC12MEM0; 
   if(filter[0]-filter[1]>5) 
     ave=ave+filter[1]; 
   else 
     ave=ave+filter[0]; 
   if(t==11) 
   { 
     t=0; 
     ave=(unsigned int)(ave/11); 
     transform(ave); 
     write1char1602(0,0,wan); 
     write1char1602(1,0,qian); 
     write1char1602(2,0,bai); 
     write1char1602(3,0,shi); 
     write1char1602(4,0,ge); 
     ave=0; 
   } 
   filter[1]=filter[0]; 
 
} 
我明明读了ADC12MEM啊,为什么还是不能清除ADC12IFG呢? |   
     
  
 |