Oskar Weigl
/
Eurobot2013
We are going to win! wohoo
Revision 5:a229f40c1210, committed 2012-11-14
- Comitter:
- madcowswe
- Date:
- Wed Nov 14 16:15:46 2012 +0000
- Parent:
- 2:10e2b1b9c588
- Child:
- 6:5a52c046d8f7
- Commit message:
- Added "system"
Changed in this revision
--- a/Kalman/Kalman.h Wed Nov 07 14:41:49 2012 +0000 +++ b/Kalman/Kalman.h Wed Nov 14 16:15:46 2012 +0000 @@ -6,7 +6,7 @@ #include "rtos.h" //#include "Matrix.h" -#include "motors.h" +//#include "motors.h" #include "RFSRF05.h" #include "IR.h" #include "ui.h"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/system/system.cpp Wed Nov 14 16:15:46 2012 +0000 @@ -0,0 +1,29 @@ +#include "system.h" + +//Defining the externs +DigitalOut OLED1(LED1); +DigitalOut OLED2(LED2); +DigitalOut OLED3(LED3); +DigitalOut OLED4(LED4); + +//nop style wait function +void nopwait(int ms){ +while(ms--) + for (volatile int i = 0; i < 24000; i++); +} + +float cpupercent; //defining the extern +void measureCPUidle (void const* arg) { + + Timer timer; + cpupercent = 0; //defined in system.h + + while(1) { + timer.reset(); + timer.start(); + wait(1); + + int thistime = timer.read_us()-1000000; + cpupercent = thistime; + } +} \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/system/system.h Wed Nov 14 16:15:46 2012 +0000 @@ -0,0 +1,51 @@ + +#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