/*********************************************** * * ************************************************/ main(argc, argv) int argc; char **argv; { int gains_set[96], gains_read[96], data[96]; float datv[96]; unsigned base; int ndata, gain_mode, diff_mode, i; float vmin = -10.; /* give range of the A/D : settable only hardware ! */ float vmax = 10.; float nch = 4096; if ( argc != 2){ printf(" usage: anl_adc_test base_address \n"); printf(" ( 0x... ) \n"); exit(0); } base = (unsigned) atox(argv[1]); diff_mode = 1; /* 1: 48 diff chan's; 0: 96 single ended chan's */ gain_mode = 1; /* 1: common amplification for all chan's 0: individual amplification */ /* for ( i = 0; i < 96; i++); gains_set[i] = gain_word(1); */ gains_set[0] = gain_word(1); /* -> amplification = 1 */ printf(" Test of ANL ADC starts \n"); printf(" +- 10 V , differential mode \n"); anl_adc_init(base, &gain_mode, gains_set, &diff_mode); anl_adc_read(base, data, &ndata, &gain_mode, gains_read, &diff_mode); for ( i = 0; i < ndata; i++) datv[i] = (vmax - vmin)/(nch-1) * (float) data[i] + vmin; printf("\n\nndata = %d \n", ndata); printf("gain_mode = %d, diff_mode = %d\n", gain_mode, diff_mode); for( i = 0; i < ndata; i++) printf(" i = %d, gain_word = %x, data = %d, datv = %f\n", i, gains_read[i], data[i], datv[i]); }