|
StepperII
Dual Axis Stepper Controller
|
00001 00002 #pragma once 00003 00004 #include "regvar.h" 00005 00006 #define IDLE 0 // Task status definitions 00007 #define WAKE one 00008 00009 class CTask 00010 { 00011 private: 00012 void change(void); // Change task 00013 public: 00014 volatile char status; // WAKE or IDLE 00015 class CTask *pNextTask; // Points to next task 00016 short *pStack; // SP saved here 00017 void *pDelay; // Pointer to delay repeater 00018 00019 void init(void *pEntryFunction, void *p, int stackSize); 00020 void stop(void); 00021 void pause(void); 00022 void wake(void) 00023 { status = WAKE; } 00024 }; 00025 00026 struct taskStack 00027 { 00028 void *pTOS; // Top of stack 00029 //char regs[0x1d]; // Registers saved during task switch 00030 //char regs[0x0f]; // Registers saved during task switch 00031 char regs[0x03]; // Registers saved during task switch 00032 unsigned char entryFunctionHi; // Must be here! Gets poped on ret. 00033 unsigned char entryFunctionLo; 00034 }; 00035
1.7.3