We are going to win! wohoo

Dependencies:   mbed mbed-rtos

system/system.h

Committer:
madcowswe
Date:
2012-11-14
Revision:
9:08552997b544
Parent:
5:a229f40c1210

File content as of revision 9:08552997b544:


#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