Agilent Technologies E1564A Stereo Receiver User Manual


 
142 Register-Based Programming Appendix B
Read Status Register
/**************** read the digitizer's status register **************/
err=ViIn16(digitizer,VI_A16_SPACE,0x04,&stat_reg); /* read status reg */
if (err<VI_SUCCESS) err_handler(digitizer,err);
printf("Status register = 0x%4X\n", stat_reg);
Make some measurements and retrieve readings
/******************** make measurements *******************/
/* set channel 1 and 2 to 4V range */
err=ViOut16(digitizer,VI_A16_SPACE,0x24,0x7373); /* 0x7373 sets 4V range */
if (err<VI_SUCCESS) err_handler(digitizer,err);
/* set channel 3 and 4 to 4V range */
err=ViOut16(digitizer,VI_A16_SPACE,0x26,0x7373); /* 0x7373 sets 4V range */
if (err<VI_SUCCESS) err_handler(digitizer,err);
/* set pre-trigger count of 4 */
err=ViOut16(digitizer,VI_A16_SPACE,0x34,0x0); /* high word = 0 */
if (err<VI_SUCCESS) err_handler(digitizer,err);
err=ViOut16(digitizer,VI_A16_SPACE,0x36,0x4); /* low word = 4 */
if (err<VI_SUCCESS) err_handler(digitizer,err);
/* set sample count of 7 */
err=ViOut16(digitizer,VI_A16_SPACE,0x38,0x0); /* high word = 0 */
if (err<VI_SUCCESS) err_handler(digitizer,err);
err=ViOut16(digitizer,VI_A16_SPACE,0x3A,0x7); /* low word = 7 */
if (err<VI_SUCCESS) err_handler(digitizer,err);
/* set trigger source */
err=ViOut16(digitizer,VI_A16_SPACE,0x3C,0x180); /* set bits 7 and 8 */
if (err<VI_SUCCESS) err_handler(digitizer,err);
/* initiate a reading with a 30 mS delay */
err=ViOut16(digitizer,VI_A16_SPACE,0x3E,0x21A0); /* set bits 5,7,8 & 13 */
if (err<VI_SUCCESS) err_handler(digitizer,err);
/******************** retrieve readings *******************/
/* read the CVT registers */
err=ViIn16(digitizer,VI_A16_SPACE,0x10,&cvt_reg);
if (err<VI_SUCCESS) err_handler(digitizer,err);
printf(“channel 1 = 0x%4X\n”, cvt_reg);
last_reading = (double)cvt_reg*4/32768;
printf(“channel 1 = %lf Volts\n”, last_reading);
err=ViIn16(digitizer,VI_A16_SPACE,0x12,&cvt_reg);
if (err<VI_SUCCESS) err_handler(digitizer,err);
printf(“channel 2 = 0x%4X\n”, cvt_reg);
last_reading = (double)cvt_reg*4/32768;
printf(“channel 2 = %lf Volts\n”, last_reading);