The stepper run usually run at 4000 pulse per second with no load. And normally, we can run it at 100 pulse per second with strongest load of it.
A clever way to write a control for stepping on MC is following:
do this loop forever
increment the index
call stepping table
output the variable updated by stepping table
delay (t)
do something else here...
goto loop
stepping table should be like this
addwf pcl, f
retlw b'00000001' ; step1
retlw b'00000010' ; step2 ... and go on..
As you want to run it in half step mode, you can add step 1,5 to the table and go on..
After that, you can write a delay time function which is computed from the acceleration and velocity you want.
And of course, you should use a fixed acceleration and use PID control for the high level real time control.
You can then easily compute a accelerate table and decelerate table and then add it to the delay function.
Finally, you have a great low cost controller yourself.
As I see, your name looks like a vietnamese girl, doesn't it? Welcum to this forum.