unsigned int ADRES;
unsigned char ADL_byte, ADH_byte, cap, cap2;
unsigned short OUTM[4];
unsigned int ADR;
//const unsigned short REFC[11] = {64, 128, 0, 0 , 192, 64, 128, 192, 64, 128, 192} ;
void interrupt() {
unsigned short rep;
if (INTCON.INT0IF){
INTCON.INTF=0;
rep=0;
rep=(PORTB.B7<<1)|PORTB.B6;
PORTC= OUTM[rep];
PORTD=rep;}}
unsigned int ADREAD(unsigned char channel){
if (channel>10) channel=0;
GO_DONE_BIT=1;
while(GO_DONE_BIT);
ADL_byte=ADRESL;
ADH_byte=ADRESH;
// ADR=(ADH_byte<<8)| ADL_byte;
ADR=ADH_byte;
if(channel.B3 != 0){
channel.B3=0;
ADCON0=0x83 | (channel<<3); }
else
{ ADCON0=0x81 | (channel<<3);}
return ADR;}
void main() {
OPTION_REG= 0xc7;
CMCON=7;
ADCON0=0x81;
ADCON1=0x04;
ADCON2=0x10; //0x30
INTCON=0x90;
TRISA=0xFF;
TRISB=0xFF;
TRISC=0x00;
PORTC=0x01;
TRISD=0x00;
PORTD=0x01;
delay_ms(4000);
PORTC=0x00;
PORTD=0x00;
while(1)
{cap2=0 ;
for (cap=0; cap<4; cap++)
{ if (cap==2) cap2=cap2+2;
ADRES=ADREAD(cap2);
OUTM[cap] = ADRES;
cap2+=1;
delay_ms(1);
}
} }