commit!

Committer:
narshu
Date:
Fri Jun 15 20:40:17 2012 +0000
Revision:
0:42026f893a2d

        

Who changed what in which revision?

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