Cooper Liu
/
Eurobot2013_Co-Processor
working version with calibration done
Fork of Eurobot2013 by
system/system.h
- Committer:
- xiaxia686
- Date:
- 2013-04-09
- Revision:
- 11:5ba926692210
File content as of revision 11:5ba926692210:
#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); //nop style wait function void nopwait(int ms); //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