{\rtf1\ansi\ansicpg1252\deff0\deftab720{\fonttbl{\f0\fswiss MS Sans Serif;}{\f1\froman\fcharset2 Symbol;}{\f2\fmodern\fprq1 Swiss;}{\f3\fmodern\fprq1 Courier New;}} {\colortbl\red0\green0\blue0;\red0\green240\blue240;\red0\green0\blue255;\red1\green1\blue1;\red0\green128\blue128;} \deflang1033\pard\plain\f3\fs20\cf2 'This is an ideal program example for controlling another SmartMotor \par 'via hardware handshaking such as for a Z axis multi level pick and place \par \par 'This code sets 4 outputs as the equiv.integer input \par 'by looking at them as a 4 bit binary number. \par 'Basically it is a Decimal to BCD converter \par 'once running, set the value of i for a given \par 'change in output status \par 'Ports: \tab DCBA\tab i \par '---------------- \par '\tab \tab 0000\tab 0 \par ' \tab 0001\tab 1 \par '\tab \tab 0010\tab 2 \par '\tab \tab 0011\tab 3 \par '\tab \tab 0100\tab 4 \par '\tab \tab 0101\tab 5 \par '\tab \tab 0110\tab 6 \par '\tab \tab 0111\tab 7 \par '\tab \tab 1000\tab 8 \par ' \tab 1001\tab 9 \par '\tab \tab 1010\tab 10 \par '\tab \tab 1011\tab 11 \par '\tab \tab 1100\tab 12 \par '\tab \tab 1101\tab 13 \par '\tab \tab 1110\tab 14 \par '\tab \tab 1111\tab 15 \par 'Example: i=11 would set ports D-A as 1011 as seen above \par \par \par \par \par 'Setting up ports A-D as outputs \par 'and initializing them to zero. \par UAO\tab 'least sig. bit \par UA=0 \par UBO \par UB=0 \par UCO \par UC=0 \par UDO\tab 'most sig. bit \par UD=0 \par \par \plain\f3\fs20\cf4 WHILE\plain\f3\fs20\cf2 1==1 \par \plain\f3\fs20\cf4 IF\plain\f3\fs20\cf2 i>15 \par PRINT("SET i TO 0 THRU 15 ONLY",#13) \par \plain\f3\fs20\cf4 ELSEIF\plain\f3\fs20\cf2 i<0 \par PRINT("SET i TO 0 THRU 15 ONLY",#13) \par \plain\f3\fs20\cf4 ELSE\plain\f3\fs20\cf2 \par j=i \par GOSUB1 \par \plain\f3\fs20\cf4 ENDIF\plain\f3\fs20\cf2 \par \plain\f3\fs20\cf4 LOOP\plain\f3\fs20\cf2 \par \par END \par \par C1 'This subroutine sets the outputs as needed for the value of j \par UA=j&1 \par UB=j&2 \par UC=j&4 \par UD=j&8 \par RETURN\plain\f2\fs26\cf2 \par }