Code:
CMCON = 7 ' Disable analog comparator
TRISA = %11110110 ' set PORTA to input
TRISB = %11110000 ' set PORTB to output
UP VAR PORTB.5
DOWN var PORTB.7
FM VAR PORTB.2
POSITION var word 'Position value
VELOCITY var word 'Average velocity value
FUNCTION var word 'Function register
I var byte 'Loop variable
T9600 con 2 ' <== Baudrate definition in case you don't use
' INCLUDE "modedefs.bas" line
MAIN:
if UP THen
serout FM, T9600 ,["W01 01 200", CR, LF] 'Write velocity limit value
serout FM,T9600,["P01 270000", CR, LF] 'Send MOVETO_ABSOLUTE command
for I = 1 to 100
pause 25
serout FM,T9600,["R01 00",CR,LF]
serout FM,T9600,["R01 14",CR,LF]
next
endif
if DOWN THEN
serout FM, T9600 ,["W01 01 200", CR, LF] 'Write velocity limit value
serout FM,T9600,["P01 0", CR, LF] 'Send MOVETO_ABSOLUTE command
for I = 1 to 100
pause 25
serout FM,T9600,["R01 00",CR,LF]
serout FM,T9600,["R01 14",CR,LF]
next
endif
goto MAIN
The DEFINE HSER_BAUD 9600 'send serial data at 2400 baud have nothing to do with SEROUT, AND i don't see any crystal speed declaration. @9600 bauds with SEROUT, 8MHZ or higher is highely recommended.
Bookmarks