working version with calibration done

Fork of Eurobot2013 by Oskar Weigl

Committer:
xiaxia686
Date:
Tue Apr 09 15:32:47 2013 +0000
Revision:
11:5ba926692210
woking version (calibrated)

Who changed what in which revision?

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