Shuto Naruse
/
Eurobot2012_Secondary
Eurobot2012_Secondary
Fork of Eurobot_2012_Secondary by
system.h
- Committer:
- narshu
- Date:
- 2012-04-20
- Revision:
- 0:fbfafa6bf5f9
File content as of revision 0:fbfafa6bf5f9:
#ifndef SYSTEM_H #define SYSTEM_H #include "globals.h" #include "rtos.h" //a type which is a pointer to a rtos thread function typedef void (*tfuncptr_t)(void const *argument); //--------------------- //Signal ticker stuff #define SIGTICKARGS(thread, signal) \ (tfuncptr_t) (&Signalsetter::callback), osTimerPeriodic, (void*)(new Signalsetter(thread, signal)) class Signalsetter { public: Signalsetter(Thread& inthread, int insignal) : thread(inthread) { signal = insignal; //pc.printf("ptr saved as %#x \r\n", (int)(&(inthread))); } static void callback(void* thisin) { Signalsetter* fthis = (Signalsetter*)thisin; //pc.printf("callback will signal thread object at %#x \r\n", (int)(&(fthis->thread))); fthis->thread.signal_set(fthis->signal); //delete fthis; //this is useful for single fire tickers! } private: Thread& thread; int signal; }; //--------------------- //cpu usage measurement function extern float cpupercent; void measureCPUidle (void const* arg); #endif