Program Example 3:IBM PC, Microsoft C v3.0, via RS232

Machine language routines to interface to the COM1: RS232 port are provided in the file RS232.OBJ found on the SR565 disk. These routines allow for simple interfacing to the SR510 at 19.2 kbaud from C programs.

#include <stdio.h>

To use these routines, the large model must be used. Compile with the /AL switch and link with RS232.OBJ.

Only two wires between the IBM PC'sASYNC port and the SR530 are needed (pins #2 & #3 of the RS232), but pins 5,6,8 and 20 should be connected together on the connector at the IBM end.

/*

Compile with >MSC program name/AL;

 

link with RS232.OBJ (on

SR565 disk)

 

RS232.OBJ defines:

 

 

init ()

 

 

 

Initializes COM1: to 19.2 kbaud

 

txstr (str);

str must terminate with ′$′ char

 

Char *str;

 

 

Sends string str to COM1:

 

rxstr (str);

str must be declared with 15 characters

 

 

or more length.

 

 

Fills str with string received from COM1:

 

If an error occurs, your procedure nocom() is called.

 

Nocom() must be a

C procedure in your program.

 

Example program to read

the SR510 outputs and ramp the x6 analog

 

Output using Microsoft C v3.0 (large model) and the COM1: port.

 

Set all switches in SW2

to UP on SR510 for 19.2 kbaud.

*/

main ()

{

char str1[20], str2[20]; float v1,x;

init ();

/* init COM1: port to 19.2 kbaud */

txstr (″w0$″);

/* set character interval to 0 */

x = 0;

 

while (1)

 

{

 

txstr (″q$″);

/* read channel 1 output */

rxstr (str1);

/* into str1 */

sscanf (str1, ″%f″, &v1); /* scan str1 for a float variable */

45