NAVNEET ACHARYA
05-07-04, 02:31 PM
Sir,
I am controlling 4 servo motors through Serial Communication .
I am sending Data (Motor Id and Amount ) on ISOPOD serial port.
Then Using following program I am controlling the servo motors.
I am able to move motor in one direction till Exterme position not
reached,Thereafter when I give Negative data motor not move in
opposite Direction.
I am using following Callibration:
Mid-position when I give amount 7100
Below 7100 it will move in one Direction,and above that amount
it will move in another direction.
DATA C@ 53 * 7100 + DROT !
(53 amount moves motor by one step DATA consists value which I am Receiving on Serial Port of ISOPOD .It Ranges in between -100 to +100 .)
Then I move motor by amount specified by DROT.
Here is Program:
DECIMAL 9600 SCI0 BAUD
VARIABLE BUFR DECIMAL 40 4 + ALLOT EEWORD
BUFR 40 4 + SCI0 RXBUFFER
VARIABLE BUFT DECIMAL 40 4 + ALLOT EEWORD
BUFT 40 4 + SCI0 TXBUFFER
DECIMAL 70 CONSTANT DLE EEWORD
DECIMAL 83 CONSTANT SERHEAD EEWORD
DECIMAL 126 CONSTANT ETX EEWORD
DECIMAL 7100 CONSTANT SERCTR EEWORD
VARIABLE DATA1 EEWORD
VARIABLE DATA2 EEWORD
VARIABLE DATA3 EEWORD
VARIABLE DATA4 EEWORD
VARIABLE DATA5 EEWORD
VARIABLE DATA6 EEWORD
VARIABLE SERID EEWORD
VARIABLE DVAL EEWORD
VARIABLE DROT1 EEWORD
VARIABLE DROT2 EEWORD
VARIABLE DROT3 EEWORD
VARIABLE DROT4 EEWORD
MACHINE SERVE4TEST EEWORD
ON-MACHINE SERVE4TEST
APPEND-STATE SER1 EEWORD
APPEND-STATE SER2 EEWORD
APPEND-STATE SER3 EEWORD
APPEND-STATE SER4 EEWORD
APPEND-STATE SER5 EEWORD
APPEND-STATE SER6 EEWORD
APPEND-STATE SER7 EEWORD
IN-STATE SER1
CONDITION
CAUSES 32767 PWMA0 PWM-PERIOD
SERCTR PWMA0 PWM-OUT
SERCTR PWMA1 PWM-OUT
SERCTR PWMA2 PWM-OUT
SERCTR PWMA3 PWM-OUT
THEN-STATE SER2 TO-HAPPEN IN-EE
IN-STATE SER2
CONDITION SCI0 RX?
CAUSES SCI0 RX DATA1 C!
SCI0 RX DATA2 C!
SCI0 RX DATA3 C!
SCI0 RX DATA4 C!
SCI0 RX DATA5 C!
SCI0 RX DATA6 C!
THEN-STATE SER3 TO-HAPPEN IN-EE
IN-STATE SER3
CONDITION DATA1 C@ DLE =
CAUSES DLE SCI0 TX GRNLED OFF
THEN-STATE SER4 TO-HAPPEN IN-EE
IN-STATE SER4
CONDITION DATA2 C@ SERHEAD =
CAUSES SERHEAD SCI0 TX REDLED OFF
THEN-STATE SER5 TO-HAPPEN IN-EE
IN-STATE SER5
CONDITION DATA5 C@ DLE =
CAUSES DLE SCI0 TX
THEN-STATE SER6 TO-HAPPEN IN-EE
IN-STATE SER6
CONDITION DATA6 C@ ETX =
CAUSES ETX SCI0 TX YELLED OFF
THEN-STATE SER7 TO-HAPPEN IN-EE
IN-STATE SER7
CONDITION DATA3 C@ 1 =
CAUSES 32767 PWMA0 PWM-PERIOD
DATA4 C@ 53 * 7100 + DROT1 !
DROT1 @ PWMA0 PWM-OUT
YELLED ON
THEN-STATE SER2 TO-HAPPEN IN-EE
IN-STATE SER7
CONDITION DATA3 C@ 2 =
CAUSES 32767 PWMA1 PWM-PERIOD
DATA4 C@ 53 * 7100 + DROT2 !
DROT2 @ PWMA1 PWM-OUT
GRNLED ON
THEN-STATE SER2 TO-HAPPEN IN-EE
IN-STATE SER7
CONDITION DATA3 C@ 3 =
CAUSES 32767 PWMA2 PWM-PERIOD
DATA4 C@ 53 * 7100 + DROT3 !
DROT3 @ PWMA2 PWM-OUT
REDLED ON
THEN-STATE SER2 TO-HAPPEN IN-EE
IN-STATE SER7
CONDITION DATA3 C@ 4 =
CAUSES 32767 PWMA3 PWM-PERIOD
DATA4 C@ 53 * 7100 + DROT4 !
DROT4 @ PWMA3 PWM-OUT
YELLED ON
GRNLED ON
REDLED ON
THEN-STATE SER2 TO-HAPPEN IN-EE
: HANG BEGIN PB0 OFF? UNTIL ; EEWORD
: STARTUP
ISOMAX-START
SER1 SET-STATE
INSTALL SERVE4TEST
HANG
; EEWORD
HEX 3C00 AUTOSTART STARTUP
SAVE-RAM
Please Give some suggestions Regarding this Program.
Please Reply as fast as possible.
Thanks.
Regards,
I am controlling 4 servo motors through Serial Communication .
I am sending Data (Motor Id and Amount ) on ISOPOD serial port.
Then Using following program I am controlling the servo motors.
I am able to move motor in one direction till Exterme position not
reached,Thereafter when I give Negative data motor not move in
opposite Direction.
I am using following Callibration:
Mid-position when I give amount 7100
Below 7100 it will move in one Direction,and above that amount
it will move in another direction.
DATA C@ 53 * 7100 + DROT !
(53 amount moves motor by one step DATA consists value which I am Receiving on Serial Port of ISOPOD .It Ranges in between -100 to +100 .)
Then I move motor by amount specified by DROT.
Here is Program:
DECIMAL 9600 SCI0 BAUD
VARIABLE BUFR DECIMAL 40 4 + ALLOT EEWORD
BUFR 40 4 + SCI0 RXBUFFER
VARIABLE BUFT DECIMAL 40 4 + ALLOT EEWORD
BUFT 40 4 + SCI0 TXBUFFER
DECIMAL 70 CONSTANT DLE EEWORD
DECIMAL 83 CONSTANT SERHEAD EEWORD
DECIMAL 126 CONSTANT ETX EEWORD
DECIMAL 7100 CONSTANT SERCTR EEWORD
VARIABLE DATA1 EEWORD
VARIABLE DATA2 EEWORD
VARIABLE DATA3 EEWORD
VARIABLE DATA4 EEWORD
VARIABLE DATA5 EEWORD
VARIABLE DATA6 EEWORD
VARIABLE SERID EEWORD
VARIABLE DVAL EEWORD
VARIABLE DROT1 EEWORD
VARIABLE DROT2 EEWORD
VARIABLE DROT3 EEWORD
VARIABLE DROT4 EEWORD
MACHINE SERVE4TEST EEWORD
ON-MACHINE SERVE4TEST
APPEND-STATE SER1 EEWORD
APPEND-STATE SER2 EEWORD
APPEND-STATE SER3 EEWORD
APPEND-STATE SER4 EEWORD
APPEND-STATE SER5 EEWORD
APPEND-STATE SER6 EEWORD
APPEND-STATE SER7 EEWORD
IN-STATE SER1
CONDITION
CAUSES 32767 PWMA0 PWM-PERIOD
SERCTR PWMA0 PWM-OUT
SERCTR PWMA1 PWM-OUT
SERCTR PWMA2 PWM-OUT
SERCTR PWMA3 PWM-OUT
THEN-STATE SER2 TO-HAPPEN IN-EE
IN-STATE SER2
CONDITION SCI0 RX?
CAUSES SCI0 RX DATA1 C!
SCI0 RX DATA2 C!
SCI0 RX DATA3 C!
SCI0 RX DATA4 C!
SCI0 RX DATA5 C!
SCI0 RX DATA6 C!
THEN-STATE SER3 TO-HAPPEN IN-EE
IN-STATE SER3
CONDITION DATA1 C@ DLE =
CAUSES DLE SCI0 TX GRNLED OFF
THEN-STATE SER4 TO-HAPPEN IN-EE
IN-STATE SER4
CONDITION DATA2 C@ SERHEAD =
CAUSES SERHEAD SCI0 TX REDLED OFF
THEN-STATE SER5 TO-HAPPEN IN-EE
IN-STATE SER5
CONDITION DATA5 C@ DLE =
CAUSES DLE SCI0 TX
THEN-STATE SER6 TO-HAPPEN IN-EE
IN-STATE SER6
CONDITION DATA6 C@ ETX =
CAUSES ETX SCI0 TX YELLED OFF
THEN-STATE SER7 TO-HAPPEN IN-EE
IN-STATE SER7
CONDITION DATA3 C@ 1 =
CAUSES 32767 PWMA0 PWM-PERIOD
DATA4 C@ 53 * 7100 + DROT1 !
DROT1 @ PWMA0 PWM-OUT
YELLED ON
THEN-STATE SER2 TO-HAPPEN IN-EE
IN-STATE SER7
CONDITION DATA3 C@ 2 =
CAUSES 32767 PWMA1 PWM-PERIOD
DATA4 C@ 53 * 7100 + DROT2 !
DROT2 @ PWMA1 PWM-OUT
GRNLED ON
THEN-STATE SER2 TO-HAPPEN IN-EE
IN-STATE SER7
CONDITION DATA3 C@ 3 =
CAUSES 32767 PWMA2 PWM-PERIOD
DATA4 C@ 53 * 7100 + DROT3 !
DROT3 @ PWMA2 PWM-OUT
REDLED ON
THEN-STATE SER2 TO-HAPPEN IN-EE
IN-STATE SER7
CONDITION DATA3 C@ 4 =
CAUSES 32767 PWMA3 PWM-PERIOD
DATA4 C@ 53 * 7100 + DROT4 !
DROT4 @ PWMA3 PWM-OUT
YELLED ON
GRNLED ON
REDLED ON
THEN-STATE SER2 TO-HAPPEN IN-EE
: HANG BEGIN PB0 OFF? UNTIL ; EEWORD
: STARTUP
ISOMAX-START
SER1 SET-STATE
INSTALL SERVE4TEST
HANG
; EEWORD
HEX 3C00 AUTOSTART STARTUP
SAVE-RAM
Please Give some suggestions Regarding this Program.
Please Reply as fast as possible.
Thanks.
Regards,