Heya,
I've done a bit of reading on this, and it seems like a very cool way of doing time critical processing...
does anyone have any good tutorials on how to go about an RTOS, or better yet, has anyone implemented one on a PICAXE (or even, can it?)
From what I understand it as, its a stack of procedures with a priority weighting on each procedure. theres an interrupt routine that fires every XXms, that then processes which procedure should get time allotted to it (the procedure can return stuff like PROCEDURE_COMPLETE if it completed all its calculations, PROCEDURE_MOREDATA if its waiting on, say, a reading, etc.). The higher the priority, the more it executes.
I recently did a volume controller for my studio, and retrospectively, i would have liked to implement this so volume fades are smooth, keystrokes arent missed etc. as it was, i struggled to get it to run fast (i got there tho)... perhaps an RTOS would have been more suitable so fading happens every 8 cycles, keystroke capture every 2 cycles (or less), and relay processing every 4 cycles
I've done a bit of reading on this, and it seems like a very cool way of doing time critical processing...
does anyone have any good tutorials on how to go about an RTOS, or better yet, has anyone implemented one on a PICAXE (or even, can it?)
From what I understand it as, its a stack of procedures with a priority weighting on each procedure. theres an interrupt routine that fires every XXms, that then processes which procedure should get time allotted to it (the procedure can return stuff like PROCEDURE_COMPLETE if it completed all its calculations, PROCEDURE_MOREDATA if its waiting on, say, a reading, etc.). The higher the priority, the more it executes.
I recently did a volume controller for my studio, and retrospectively, i would have liked to implement this so volume fades are smooth, keystrokes arent missed etc. as it was, i struggled to get it to run fast (i got there tho)... perhaps an RTOS would have been more suitable so fading happens every 8 cycles, keystroke capture every 2 cycles (or less), and relay processing every 4 cycles