// // STEP_.CPP // // RomaNets Software, RomaNets Hardwarel, 2003 // #include "frame5.h" #include #include #include void App_InitObjects(); void App_Render(); void Line ( int x1, int y1, int x2, int y2 ); void Init_ADC(); void Acquisition(); int Get_ADC_8Bit_Data(); Point p00(0,0,0); // center of the universe const int XMIN = -160; const int XMAX = 159; const int YMIN = -100; const int YMAX = 99; const int x_begin = XMIN;//2; const int x_end = XMAX;//2; //////////////////////////////////////////////////////////////////// void App_InitObjects() //////////////////////////////////////////////////////////////////// { Init_ADC(); } //////////////////////////////////////////////////////////////////// void App_Render() //////////////////////////////////////////////////////////////////// { p00 = Point(-159,0,0); SetPointColor(10); //p00.draw(); //p00.x +=10; //SetPointColor(14); //p00.draw(); int oldx = x_begin; int oldy = 0;//48; for ( int i=x_begin; i <= x_end; i++ ) { int y = Get_ADC_8Bit_Data(); // delay( 1); // for ( unsigned int j=0; j<0xffff; j++ ) // for ( j=0; j<0xffff; j++ ) // ; ; for ( unsigned int j=0; j<0x4fff; j++ ) ; // for ( unsigned int j=0; j<0xf; j++ ) // ; p00.x = i; p00.y = y; SetLineColor( 10); Line ( oldx, oldy, p00.x, p00.y ); SetLineColor( 12); Line ( oldx, oldy-50, p00.x, p00.y-50 ); //p00.draw(); //Point( i, y+1, 0).draw(); //Point( oldx, oldy, 0).draw(); oldx = p00.x; oldy = p00.y; //Line ( p00.x, 48, p00.x, p00.y ); //p00.draw(); } //p00.x = 160; //Line ( -50, 0, -50, 50 ); } unsigned char n,f,e; int b,g; float d; /////////////////////////////////////////////////////////////////////////////// void Init_ADC() /////////////////////////////////////////////////////////////////////////////// { b = 0x3F8; n = 8; outp( b+4, 1); delay(100); outp( b+3, 64); delay(500); } /////////////////////////////////////////////////////////////////////////////// void Acquisition() /////////////////////////////////////////////////////////////////////////////// { outp( b+4, 0); d = 0; for ( f=0; f < n; f++ ) { outp( b+4, 2); e = inp( b+6) & 16; outp( b+4, 0); if ( e == 16) d = d + exp((n-1-f)*log(2)); } d = (5*d)/(exp((n)*log(2))-1); outp( b+4, 1); } /////////////////////////////////////////////////////////////////////////////// int Get_ADC_8Bit_Data() /////////////////////////////////////////////////////////////////////////////// { Acquisition(); return (int(100*d)) / 5 - 48; }