Code:
DEFINE OSC 4 ' not compulsory because default value ...
StepCount VAR BYTE ' Distance to move ' No need a word as Stepcount is < 255 !
Delay VAR WORD ' Time, in 2ms steps, between each step-pulse
i VAR WORD ' General purpose index/counter variable
But VAR PortB.2
Dir_Pin VAR PortB.4
Step_Pin VAR PortB.5
CW CON 0
CCW CON 1
CMCON = 7
ANSEL = 0
PORTB = 0 'Reset PortB to be sure
TRISB = %11001111 ' PortB4-5 outputs, rest are inputs.
Main:
If But = 0 THEN
StepCount = 200 ' Distance to move motor
Delay = 2 ' 2ms between each step
Dir_Pin = CCW
Gosub MoveMotor
ENDIF
Goto Main
END
MoveMotor:
For i = 0 to (StepCount - 1)
PULSOUT Step_Pin, 1 'Gosub StepIt
PauseUs Delay
NEXT
RETURN
Here are some ideas ...
Alain
Bookmarks