User`s manual

C Version This program uses the E1411B multimeter and the E1351A FET
multiplexer to perform high-speed scanning. The program configures the
multimeter for high-speed measurements and downloads a scan list to the
FET multiplexer. The program requires that the analog bus and digital bus
cables be connected between the multimeter and the multiplexer.
/* E1411_SC.CPP - This program uses the E1411B to scan five E1351A FET */
/* multiplexer channels five times. */
#include <sicl.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <dos.h>
/* define macros to monitor status register conditions */
#define READY (iwpeek((unsigned short *)(base_addr_dmm + 0x04)) & 0x01)
#define DONE ((iwpeek((unsigned short *)(base_addr_dmm + 0x04)) & 0x81) ==
0x81)
#define DATARDY ((iwpeek((unsigned short *)(base_addr_dmm + 0x04)) & 0x91)
== 0x91)
#define QRYRDY ((iwpeek((unsigned short *)(base_addr_dmm + 0x04)) & 0x83)
== 0x83)
#define NOERR ((iwpeek((unsigned short *)(base_addr_dmm + 0x04)) & 0xC1)
== 0xC1)
#define PASS_FAIL (iwpeek((unsigned short *)(base_addr_dmm + 0X04)) & 0x04)
/* Function prototypes */
void configure_dmm(char *base_addr_dmm, int command, int parameter);
void set_sample_period(char *base_addr_dmm, int command, unsigned
short parameter);
void set_dmm_counts(char *base_addr_dmm, int command, long parameter);
void no_dmm_parameters(char *base_addr_dmm, int command);
void set_scanlist(char *base_addr_fet);
void trigger_dmm(char *base_addr_dmm);
void check_for_error(char *base_addr_dmm);
void reset_mm(char *base_addr_dmm);
void reset_fet(char *base_addr_fet);
int aper, rng, func; /* global variables to contain the multimeter */
/* aperture time, range, and function; which are */
/* used to calculate the reading */
void main(void)
{
Continued on Next Page
Appendix C HP E1326B/E1411B Multimeter Register-Based Programming 253