Chapter 6
GPIB Programming Techniques
© National Instruments Corp.
6-11
NI-488.2M UM for Windows NT
In this example, the
ibdev
command is used to open a device that has a primary
address of 3, has no secondary address, has a timeout of 3 s, asserts EOI with the last
byte of a write operation, and has EOS characters disabled.
The following call configures the device to respond to the poll on DIO7 and to assert
the line in the case when its
ist
is 0. Pass the binary bit pattern, 0110 0110 or hex
66, to
ibppc
.
#include "decl.h"
char ppr;
dev = ibdev(0,3,0,T3s,1,0);
ibppc(dev, 0x66);
If the GPIB interface board configures itself for a parallel poll, you should still use
the
ibppc
function. Pass the board index or a board unit descriptor value as the
first argument in
ibppc
. In addition, if the individual status bit (
ist
) of the board
needs to be changed, use the
ibist
function.
In the following example, the GPIB board is to configure itself to participate in a
parallel poll. It asserts DIO5 when
ist
= 1 if a parallel poll is conducted.
ibppc(0, 0x6C);
ibist(0, 1);
2.
Conduct the parallel poll using
ibrpp
and check the response for a certain value.
The following example code performs the parallel poll and compares the response to
hex 10, which corresponds to DIO5. If that bit is set, the ist of the device is 1.
ibrpp(dev, &ppr);
if (ppr & 0x10) printf("ist = 1\n");
3.
Unconfigure the device for parallel polling with
ibppc
. Notice that any value
having the parallel poll disable bit set (bit 4) in the bit pattern disables the
configuration, so you can use any value between hex 70 and 7E.
ibppc(dev, 0x70);
Parallel Polling with NI-488.2 Routines
Follow these steps to implement parallel polling using NI-488.2 routines. Each step
contains example code.
1.
Configure the device for parallel polling using the
PPollConfig
routine, unless
the device can configure itself for parallel polling. The following example
configures a device at address 3 to assert data line 5 (DIO5) when its
ist
value is 1.