We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
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 ??????