One small thing I notice is that your:
Code:
TMR1L = timerone.byte0
TMR1H = timerone.byte1
CCPR1L = sineval[STEPCOUNT]>>1
stepcount = stepcount -1
if stepcount = 0 then stepcount = 36
will read the value of stepcount 36 (doesn't exist), and never get to read stepcount 0.
I don't think this is the dramatic fix you are looking for, but maybe it's one small step forward.
Code:
TMR1L = timerone.byte0
TMR1H = timerone.byte1
CCPR1L = sineval[STEPCOUNT]>>1
if stepcount = 0 then stepcount = 36
stepcount = stepcount -1
Bookmarks