StepperII
Dual Axis Stepper Controller

CTask.h

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 
 All Classes Files Functions Variables Defines