int data0, data1;
__irq void intAdc(void){
int ad = AD0DR;
int channel = (ad >> 24) & 0x7;
// AD0CR &= ~(0x1 << 16);
// AD0CR &= ~(0x1 << 21);
if(channel == 0){
data0 = (ad >> 6) & 0x3ff;
} else if(channel == 1){
data1 = (ad >> 6) & 0x3ff;
}
//AD0CR |= 0X1 << 24;
//AD0CR = AD0CR;
// AD0CR |= 0x1 << 16; // Burst
// AD0CR |= 0X1 << 21; // operational
AD0DR &= ~(0x1 << 31);
VICVectAddr0 = 0x0;
}
void initAdc(void){
// enable ad0.0 and ad0.1 in burst mode
// the values should be read by the above interrupt
// AD0CR = 0x0;
// AD0CR |= 0x3; // 0 and 1
// AD0CR |= 13 << 8; // @4 MHz
// AD0CR |= 0x1 << 16; // Burst
// AD0CR |= 0x0 << 17; // clks = 0
// AD0CR |= 0X0 << 20; // reserved
// AD0CR |= 0X1 << 21; // operational
// AD0CR |= 0X0 << 22;
// AD0CR |= 0X1 << 24;
// AD0CR |= 0X0 << 27;
AD0CR = 0x00211D03;
VICVectAddr2 = (unsigned int) intAdc;
VICVectCntl2 = 0x20 | 18;
VICIntEnable |= 0x1 << 18;
// PCONP |= 0x00001000;
// AD0INTEN = 0xff;
//ADGSR |= 0x1 << 16;
}