Eurobot system lib
system.h
- Committer:
- narshu
- Date:
- 2012-04-26
- Revision:
- 0:b35c6c9aad45
File content as of revision 0:b35c6c9aad45:
#ifndef SYSTEM_H #define SYSTEM_H #include "globals.h" #include "rtos.h" //Declaring the onboard LED's for everyone to use extern DigitalOut OLED1;//(LED1); extern DigitalOut OLED2;//(LED2); extern DigitalOut OLED3;//(LED3); extern DigitalOut OLED4;//(LED4); //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