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