//================================================================================================ int UTL011adc( int ch ) // A/D input //================================================================================================ { int i; int tmp; p0_5 = 1; // FPOUT0 /* Port P05 bit */ p1_6 = 1; // FPOUT1 /* Port P16 bit */ p1_2 = 1; // FADVONVA p0_5 = 1; // FADVONVB p1_0 = 0; // FADCLK // convert start p1_2 = 0; // FADVONVA p0_5 = 0; // FADVONVB p1_0 = 1; // FADCLK p1_0 = 0; // FADCLK for( i = 1,tmp= 0; i< 16/*bit*/; i++){ p1_0 = 1; // FADCLK switch( ch ){ case 0: tmp = tmp | ( p0_7 ? 1 : 0 ); break; case 1: tmp = tmp | ( p0_2 ? 1 : 0 ); break; case 2: tmp = tmp | ( p1_1 ? 1 : 0 ); break; case 3: tmp = tmp | ( p1_3 ? 1 : 0 ); break; } p1_0 = 0; // FADCLK if( i < 15) tmp = tmp<<1; } tmp = tmp>>2; tmp &= 0x0fff; p1_2 = 1; // FADVONVA p0_5 = 1; // FADVONVB return( tmp ); }