Keysight VXI Bus 75000 C Series User And Programming Manual page 150

Digital i/o module
Hide thumbs Also See for VXI Bus 75000 C Series:
Table of Contents

Advertisement

Keysight E1458A Register Information
Programming Example
printf("imap failure: error = %d,%s\n",errnum,igeterrstr(errnum));
exit (-1); }
/* perform a soft reset */
iwpoke((base_addr + card_stat),0xFCBF);
iwpoke((base_addr + card_stat),0xFCBE;
/* read MFR and device ID registers */
data_word = iwpeek (base_addr + mfr_id); printf("MFR ID value = %04X\
n",data_word); data_word = iwpeek (base_addr + dev_id); printf("Dev ID value =
%04X\n",data_word);
/* output data bytes to ports 0 and 5, no handshake */
/* port 0 */
iwpoke((base_addr + card_stat),bank_0); ibpoke((base_addr +
port_hand_0),0x00); ibpoke((base_addr + port_del_0),0x00); ibpoke((base_addr
+ port_norm_0),0x00); ibpoke((base_addr + port_ctl_0),0x00);
ibpoke((base_addr + port_xfr_0),0x00); ibpoke((base_addr +
port_data_0),pattern_1);
/* port 5 */
iwpoke((base_addr + card_stat),bank_1); ibpoke((base_addr +
port_hand_1),0x00); ibpoke((base_addr + port_del_1),0x00); ibpoke((base_addr
+ port_norm_1),0x00); ibpoke((base_addr + port_ctl_1),0x00);
ibpoke((base_addr + port_xfr_1),0x00); ibpoke((base_addr +
port_data_1),pattern_2);
/* return ports back to input state */ iwpoke((base_addr + card_stat),bank_0);
ibpoke((base_addr + port_ctl_0),0x40); ibpoke((base_addr + port_xfr_0),0x00);
iwpoke((base_addr + card_stat),bank_1); ibpoke((base_addr +
port_ctl_1),0x40); ibpoke((base_addr + port_xfr_0),0x00);
Continued on next page.
/* input a data byte at port 9, no handshake */
iwpoke((base_addr + card_stat),bank_2); ibpoke((base_addr +
port_hand_1),0x00); ibpoke((base_addr + port_del_1),0x00); ibpoke((base_addr
+ port_norm_1),0x00); ibpoke((base_addr + port_ctl_1),0x40);
ibpoke((base_addr + port_xfr_1),0x00); data_byte = ibpeek(base_addr +
port_data_1);
printf(("port data register value = %02X\n",data_byte);
/* input a data byte at port 11, leading edge handshake */
iwpoke((base_addr + card_stat),bank_3); ibpoke((base_addr +
port_hand_3),0x20); ibpoke((base_addr + port_del_3),0xF2); ibpoke((base_addr
+ port_norm_3),0x00); ibpoke((base_addr + port_ctl_3),0x40);
ibpoke((base_addr + port_xfr_3),0x02); count = 0;
while (test_drr(base_addr + port_xfr_3)){
count = count++;
if (count == 100) {
printf("DRR bit not ready ");
exit (-1); }
}
data_byte = ibpeek(base_addr + port_data_3);
printf(("port data register value = %02X\n",data_byte);
/* disable port handshake */
140
Keysight E1458A 96-Channel Digital I/O Module User Guide

Advertisement

Table of Contents
loading

This manual is also suitable for:

E1458a

Table of Contents