Jerry Hat Trick
New Member
My setup is a Picaxe 18x via ULN2003A driver to ASTROSYN Y129-5.A program called FWD with interrupt and PTM switch runs the motor forward OK and a 2nd program REV with interupt also runs the motor in reverse OK, but when I combined the 2 above programs to get the motor to run fwd and rev in one program I've had no success after many attempts and code variations. I have tried using if..thens and sub routines but they just cause the motor to stutter around even with 0.01ms delay(motr runs smoothly using the rev & fwd prgms.) please see attached codes.
[
'stepper fwd with interupt
symbol delay = b0 'define the variable
let delay =10 'set delay to .001s
setint %00000000,%10000000 'activate interupt when input 7 goes low
main: let pins = %00001010 'first step
pause delay 'pause for delay
let pins = %00001001 'next step
pause delay 'pause for delay
let pins = %00000101 'next step
pause delay 'pause for delay
let pins = %00000110 'next step
pause delay 'pause for delay
goto main 'loop forever
interrupt:
setint %00000000,%10000000
intwait:
if pin7 = 0 then intwait
setint %00000000,%10000000
return]
[/ 'stepper rev with interupt
symbol delay = b0 'define the variable
let delay =10 'set delay to .001s
setint %00000000,%01000000 'activate interupt when input 6 goes low
main:
let pins = %00000110 'first step
pause delay 'pause for delay
let pins = %00000101 'next step
pause delay 'pause for delay
let pins = %00001001 'next step
pause delay 'pause for delay
let pins = %00001010 'next step
pause delay 'pause for delay
goto main 'loop forever
interrupt:
setint %00000000,%01000000
intwait:
if pin6 = 0 then intwait
setint %00000000,%01000000
return/]
[/'stepper fwd & rev interupt
main:
if pin7=1 then fwd
if pin6=1 then rev
symbol delay = b0 'define the variable
let delay =10 'set delay to .001s
setint %00000000,%10000000 'activate interupt when input 7 goes low
fwd: let pins = %00001010 'first step
pause delay 'pause for delay
let pins = %00001001 'next step
pause delay 'pause for delay
let pins = %00000101 'next step
pause delay 'pause for delay
let pins = %00000110 'next step
pause delay 'pause for delay
return 'loop forever
interrupt:
setint %00000000,%10000000
intwait:
if pin7 = 0 then intwait
setint %00000000,%10000000
return
let delay =10 'set delay to .001s
setint %00000000,%01000000 'activate interupt when input 6 goes low
rev: let pins = %00001010 'first step
pause delay 'pause for delay
let pins = %00001001 'next step
pause delay 'pause for delay
let pins = %00000101 'next step
pause delay 'pause for delay
let pins = %00000110 'next step
pause delay 'pause for delay
return 'loop forever
setint %00000000,%01000000
if pin6 = 0 then intwait
setint %00000000,%01000000
return /]
I look forward to any advice with stepper picaxe basic code, I've checked the picaxe manuals,postings and David Lincoln's 'programming the picaxe' but no luck.
[
'stepper fwd with interupt
symbol delay = b0 'define the variable
let delay =10 'set delay to .001s
setint %00000000,%10000000 'activate interupt when input 7 goes low
main: let pins = %00001010 'first step
pause delay 'pause for delay
let pins = %00001001 'next step
pause delay 'pause for delay
let pins = %00000101 'next step
pause delay 'pause for delay
let pins = %00000110 'next step
pause delay 'pause for delay
goto main 'loop forever
interrupt:
setint %00000000,%10000000
intwait:
if pin7 = 0 then intwait
setint %00000000,%10000000
return]
[/ 'stepper rev with interupt
symbol delay = b0 'define the variable
let delay =10 'set delay to .001s
setint %00000000,%01000000 'activate interupt when input 6 goes low
main:
let pins = %00000110 'first step
pause delay 'pause for delay
let pins = %00000101 'next step
pause delay 'pause for delay
let pins = %00001001 'next step
pause delay 'pause for delay
let pins = %00001010 'next step
pause delay 'pause for delay
goto main 'loop forever
interrupt:
setint %00000000,%01000000
intwait:
if pin6 = 0 then intwait
setint %00000000,%01000000
return/]
[/'stepper fwd & rev interupt
main:
if pin7=1 then fwd
if pin6=1 then rev
symbol delay = b0 'define the variable
let delay =10 'set delay to .001s
setint %00000000,%10000000 'activate interupt when input 7 goes low
fwd: let pins = %00001010 'first step
pause delay 'pause for delay
let pins = %00001001 'next step
pause delay 'pause for delay
let pins = %00000101 'next step
pause delay 'pause for delay
let pins = %00000110 'next step
pause delay 'pause for delay
return 'loop forever
interrupt:
setint %00000000,%10000000
intwait:
if pin7 = 0 then intwait
setint %00000000,%10000000
return
let delay =10 'set delay to .001s
setint %00000000,%01000000 'activate interupt when input 6 goes low
rev: let pins = %00001010 'first step
pause delay 'pause for delay
let pins = %00001001 'next step
pause delay 'pause for delay
let pins = %00000101 'next step
pause delay 'pause for delay
let pins = %00000110 'next step
pause delay 'pause for delay
return 'loop forever
setint %00000000,%01000000
if pin6 = 0 then intwait
setint %00000000,%01000000
return /]
I look forward to any advice with stepper picaxe basic code, I've checked the picaxe manuals,postings and David Lincoln's 'programming the picaxe' but no luck.