Shop OBEX P1 Docs P2 Docs Learn Events
Simple Stepper Code Snippet — Parallax Forums

Simple Stepper Code Snippet

pjvpjv Posts: 1,903
edited 2006-10-02 19:48 in General Discussion
Hi All;

There has been some significant activity in the forum recently in regard to software for driving stepper motors. To that end, I have·introduced a callable snippet of code that is a very simple pseudo state machine, and is easy to integrate into anyone's code by just calling it.........


Your Code
         .
         .
         .
         call Forward      ;take a step forward
         .
         .
         call Reverse      ;take a step backwards

         .
         .
         .

 
;Step Routines ==============================================================
 
Forward  inc Position      ;new forward location and desired motor coil state
         call Step         ;lookup the new motor state
         mov port,w        ;output the new motor coil state
         retp              ;return to mainline
 
Reverse  dec Position      ;new reverse location and desired motor coil state
         call Step         ;lookup the new motor state
         mov port,w        ;output the new motor coil state
         retp              ;return to mainline
 
Step     mov w,Position    ;get the new position
         and w,#%0000_0011 ;pay attention only to least significant four states
         add pc,w          ;jump into the table and return with the coil combination
 
Table00  retw %0000_0001   ;state 00 return with selected motor coil combination... can be any desired combination
Table01  retw %0000_0010   ;state 01 return with selected motor coil combination... can be any desired combination
Table10  retw %0000_0100   ;state 10 return with selected motor coil combination... can be any desired combination
Table11  retw %0000_1000   ;state 11 return with selected motor coil combination... can be any desired combination
 



The four entries in the table need to be made to match what your motor needs for each of its step positions; my selection here is arbitrary, just for demonstration.

I hope this is of some help.

Cheers,

Peter (pjv)
Sign In or Register to comment.