Eurobot_shared pubulished from Eurobot Primary

Committer:
narshu
Date:
Tue Aug 07 10:25:53 2012 +0000
Revision:
0:434fd09723be
[mbed] converted /Eurobot_2012_Primary/Eurobot_shared

Who changed what in which revision?

UserRevisionLine numberNew contents of line
narshu 0:434fd09723be 1
narshu 0:434fd09723be 2 #ifndef SYSTEM_H
narshu 0:434fd09723be 3 #define SYSTEM_H
narshu 0:434fd09723be 4
narshu 0:434fd09723be 5 #include "globals.h"
narshu 0:434fd09723be 6 #include "rtos.h"
narshu 0:434fd09723be 7
narshu 0:434fd09723be 8 //Declaring the onboard LED's for everyone to use
narshu 0:434fd09723be 9 extern DigitalOut OLED1;//(LED1);
narshu 0:434fd09723be 10 extern DigitalOut OLED2;//(LED2);
narshu 0:434fd09723be 11 extern DigitalOut OLED3;//(LED3);
narshu 0:434fd09723be 12 extern DigitalOut OLED4;//(LED4);
narshu 0:434fd09723be 13
narshu 0:434fd09723be 14 //nop style wait function
narshu 0:434fd09723be 15 void nopwait(int ms);
narshu 0:434fd09723be 16
narshu 0:434fd09723be 17 //a type which is a pointer to a rtos thread function
narshu 0:434fd09723be 18 typedef void (*tfuncptr_t)(void const *argument);
narshu 0:434fd09723be 19
narshu 0:434fd09723be 20 //---------------------
narshu 0:434fd09723be 21 //Signal ticker stuff
narshu 0:434fd09723be 22 #define SIGTICKARGS(thread, signal) \
narshu 0:434fd09723be 23 (tfuncptr_t) (&Signalsetter::callback), osTimerPeriodic, (void*)(new Signalsetter(thread, signal))
narshu 0:434fd09723be 24
narshu 0:434fd09723be 25 class Signalsetter {
narshu 0:434fd09723be 26 public:
narshu 0:434fd09723be 27 Signalsetter(Thread& inthread, int insignal) :
narshu 0:434fd09723be 28 thread(inthread) {
narshu 0:434fd09723be 29 signal = insignal;
narshu 0:434fd09723be 30 //pc.printf("ptr saved as %#x \r\n", (int)(&(inthread)));
narshu 0:434fd09723be 31 }
narshu 0:434fd09723be 32
narshu 0:434fd09723be 33 static void callback(void* thisin) {
narshu 0:434fd09723be 34
narshu 0:434fd09723be 35 Signalsetter* fthis = (Signalsetter*)thisin;
narshu 0:434fd09723be 36 //pc.printf("callback will signal thread object at %#x \r\n", (int)(&(fthis->thread)));
narshu 0:434fd09723be 37 fthis->thread.signal_set(fthis->signal);
narshu 0:434fd09723be 38 //delete fthis; //this is useful for single fire tickers!
narshu 0:434fd09723be 39 }
narshu 0:434fd09723be 40
narshu 0:434fd09723be 41 private:
narshu 0:434fd09723be 42 Thread& thread;
narshu 0:434fd09723be 43 int signal;
narshu 0:434fd09723be 44 };
narshu 0:434fd09723be 45
narshu 0:434fd09723be 46 //---------------------
narshu 0:434fd09723be 47 //cpu usage measurement function
narshu 0:434fd09723be 48 extern float cpupercent;
narshu 0:434fd09723be 49 void measureCPUidle (void const* arg);
narshu 0:434fd09723be 50
narshu 0:434fd09723be 51 #endif