//open a VXIplug&play device session and reset the digitizer errStatus = hpe1563_init(E1563,0,1,&vi);
if( VI_SUCCESS > errStatus)
{
hpe1563_error_message( vi, errStatus, err_message); printf("Unable to open %s\n", E1563);
printf("hpe1563_init() returned error message %s\n", err_message); return;
}
//enable digitizer error detection
hpe1563_errorQueryDetect(vi, 1);
//set a 5s timeout period to allow functions to complete errStatus = hpe1563_timeOut(vi, 5000);
check(vi, errStatus);
//configure the digitizer to take 2,000
//not to exceed 4V on channel 1
errStatus=hpe1563_configure(vi, 1, 4.0, 2000,1); check(vi, errStatus);
// set an immediate trigger
errStatus = hpe1563_trigEvent(vi, 1, hpe1563_TRIG_IMM, 0.0); check(vi, errStatus);
// set the minimum sample period
errStatus = hpe1563_sampTim(vi, hpe1563_SAMP_TIM_MIN); check(vi, errStatus);
//disable digitizer error detection hpe1563_errorQueryDetect(vi, 0);
//initiate the digitizer
errStatus = hpe1563_initImm(vi);
//pause 3 ms
//fetch readings from the digitizer’s A24 space
errStatus = hpe1563_fetchAll_Q(vi, dataArrayLen, (ViInt32 *)rdgs, &numRdgs );
//confirm readings transferred are valid by printing first 5 readings dataPtr = (ViInt16 *)rdgs;
//query digitizer reading range
errStatus = hpe1563_range_Q(vi, 1, &range); printf("Reading samples are:\n\n");
for (i=0; i<10; i+=2)
{
printf("%lf\n\n",dataPtr[i]*range/32768);
}
38 VXI Programming Using the IEEE 1394 Serial Bus | Chapter 3 |