I am facing problem using ADC channel 0 & 1 simultaneously.
////////////////////////////////////////////////// //My ADC Initilisation: /* Power enable, Setup pin, enable and setup AD converter interrupt */
PCONP |= (1 << 12); // Enable power to AD block PINSEL1 = 0x00014000; /* AD0.1 pin function select */ AD0INTEN= 0x0003; /* CH0 & CH1 enable interrupt */ AD0CR = 0x00200303; /* Power up, PCLK/4, sel AD0.0*/ VICVectAddr18 = (unsigned long)ADC_IRQHandler; /* Set Interrupt Vector */ VICVectCntl18 = 14; /* use it for ADC Interrupt */ VICIntEnable = (1 << 18);//Enable ADC Interrupt
////////////////////////////////////////////////// // my handler
__irq void ADC_IRQHandler(void) { AD_last = (AD0DR1 >> 6) & 0x3FF; //Read Conversion
avg_val = avg_val + AD_last;
++avgcnt;
if(avgcnt == 15) //take average
{ avgcnt = 0;
calc_val = avg_val/15;
avg_val = 0;
} VOLT_last = (AD0DR0 >> 6) & 0x3FF; //Read Conversion
VICVectAddr = 0; /* Acknowledge Interrupt }
//////////////////////////////////////////////////
AD0CR |= 0x01000000; /* Start A/D Conversion
This i have done in ISR.
AD0.1 is fine, but AD0.0 stops ???? please ! can anyone help me ??????