49
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 SR575 disk. These
routines allow for simple interfacing to the SR530
at 19.2 kbaud from C programs.
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's ASYNC 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.
#include <stdio.h>
/* 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);
Char *str; str must terminate with ′$′ char
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 SR530 for 19.2 kbaud.
The ramp on x6 can be watched by setting the SR530 display to D/A.
*/
main ()
{
char str1[20], str2[20], STR3[20];
float v1,V2,x;
init (); /* init COM1: port to 19.2 kbaud */
txstr (″w0$″); /* set character interval to 0 */
x = 0;
while (1)
{
txstr (″q1$″); /* read channel 1 output */
rxstr (str1); /* into str1 */
sscanf (str1, ″%f″, &v1); /* scan str1 for a float variable */