EasyManua.ls Logo

Agilent Technologies 34401A - Page 201

Agilent Technologies 34401A
242 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
printf("\nEnter command string:\n");
gets(command); strcat(command,"\n"); /* SCPI requires line feed */
if(command[0] == 0x19) send_ctlc(); /* If ^Y then send ^C */
else if(command[0] != q’) {
for(i=0; i<strlen(command); i++) {
/* Wait for DSR and transmitter hold register empty */
while(!(inportb(LSR) & inportb(MSR) & 0x20)) ;
outportb(THR,command[i]); /* Send character */
}
}
if(strpbrk(command,"?")) { /* If query then get response */
c = 0;
do {
while(int_buf_count && !kbhit()) {
putch(c = *int_buf_out++); int_buf_count--;
if(int_buf_out >= int_buf + INT_BUF_size) int_buf_out = int_buf;
}
if(kbhit()) {
if(getch() == 0x19) send_ctlc(); /* if ^Y then send ^C */
c = 0xa; /* Terminate loop */
}
}
while(c != 0xa);
} /* End if */
}
while(command[0] != ’q’); /* ’q’ to quit program */
outportb(IER,inportb(IER) & 0xfe); /* Disable UART interrupt */
outportb(MCR,0x1); /* Disable IRQ buffer, DTR = 1 */
/* Disable IRQ4 in 8259 interrupt controller register */
outportb(INT_controller+1,inportb(INT_controller+1) | ~IRQ4_enab);
setvect(IRQ4_int,oldvect); /* Restore old interrupt vector */
return(0);
}
RS-232 Operation Using Turbo C (continued)
Continued on next page >
6
Chapter 6 Application Programs
RS-232 Operation Using Turbo C
195

Table of Contents

Other manuals for Agilent Technologies 34401A

Related product manuals