A-1
Appendix A. Using the Handshaking
Lines for General Input/Output
This appendix describes how to use the CTS and RTS lines for input and output ports.
The I/O pins (CTS/pin 11 and RTS/pin 8) can be read or set by the user as
required, allowing unique protocols to be created, or they can simply be used
as flags or enable lines.
If the user enables automatic handshaking as discussed in Section
RTS/CTS and Automatic Handshaking
(p. 23)
, pins 8 and 11 cannot be accessed.
A.1 The Input Pin (CTS/Pin 11)
The state of the input line (pin 11) can be read by using the special
SDMGeneric()
instruction in CRBasic.
Bit 16 of a value returned to the datalogger using the
SDMGeneric()
instruction reports whether the input is logic high or low. The example below
shows how to call the instruction with the required parameters.
CRBasic Example A-1. Detecting the State of the Input Line
'CR1000 Example program showing how to detect the state of the input line on an SDM-SIO1A
'Using the SDMGeneric instruction
Public
sio1response
As Long
, Inputstate A
s Boolean
Const
addr = 0
'constant sdm address CHANGE with SDM-SIO1A address
Const
cmd = 1
'constant, command 1 returns the input state in bit 16
Const
bytes_out = 0
'constant number of bytes out - none sent
Const
bytes_val = 2
'two bytes returned
Const
big_endian = 1
'1=(big endian)
Const
delay_usec = -0
'delay between outgoing bytes (negative means delay also for incoming bytes)
Const
Values_in = 1
'Main Program
BeginProg
Scan
(1,Sec,0,0)
'Or whatever scan rate is being used
'Use the SDMGeneric instruction to send command 0x01 which returns the input line state as bit 16
SDMGeneric
(sio1response,addr,cmd,bytes_out,"",Values_in,bytes_val, big_endian,delay_usec)
'bit 16 set for input line high or low so check the value and set a Boolean var TRUE or FALSE accordingly
Inputstate = sio1response
AND
&H8000
NextScan
EndProg
The input line can accept 0 and 5V logic inputs OR –12 and +12V RS-232
level inputs. Below is a breakdown of the different input voltages allowed and
the state of the input line flag.
Voltage on the input line
State of bit 16
+12V
1
–12V
0
5V
1
0V
0