Program to control an accelerometer, motors and a rangefinder using the ScmRTOS ported to mbed. (Work in progress and buggy)

Dependencies:   mbed

Revision:
0:9b057566f9ee
diff -r 000000000000 -r 9b057566f9ee Hexacopter/processes.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Hexacopter/processes.h	Mon Nov 01 20:39:01 2010 +0000
@@ -0,0 +1,105 @@
+#pragma once
+
+#ifndef PROCESSES_H
+#define PROCESSES_H
+#include <event_flags.h>
+//#include <Servo_Control.h>
+
+//      Process types
+//
+
+/*
+typedef OS::process<OS::pr0, 1400> PING_PROC;
+typedef OS::process<OS::pr1, 1000> TProc2;
+typedef OS::process<OS::pr2, 3000> Accelo_proc;
+typedef OS::process<OS::pr3, 1000> Servo_control;
+typedef OS::process<OS::pr4, 3000> Command_handler;
+typedef OS::process<OS::pr5, 1000> Motor_controller;
+typedef OS::process<OS::pr6, 4000> Serial_Out;
+*/
+
+typedef OS::process<OS::pr0, 2000> PING_PROC;
+typedef OS::process<OS::pr1, 1400> TProc2;
+typedef OS::process<OS::pr2, 3000> Accelo_proc;
+typedef OS::process<OS::pr3, 2000> Servo_control;
+typedef OS::process<OS::pr4, 3000> Command_handler;
+typedef OS::process<OS::pr5, 2000> Motor_controller;
+typedef OS::process<OS::pr6, 4000> Serial_Out;
+
+//typedef OS::process<OS::pr3, 300> TProc4;
+
+//---------------------------------------------------------------------------
+//
+//      Process objects
+//
+PING_PROC PING_PROCESS;
+TProc2 Proc2;
+Accelo_proc Accelerometer_process;
+Servo_control Servo_process;
+Command_handler Com_Handler;
+Serial_Out Serial_Out_Proc;
+Motor_controller M_cont_process;
+
+//---------------------------------------------------------------------------
+
+
+
+//      IO Pins
+//
+//DigitalOut led1(LED1);
+//DigitalOut led2(LED2);
+
+
+//---------------------------------------------------------------------------
+ 
+
+//---------------------------------------------------------------------------
+//extra declarations
+
+
+
+
+
+
+
+
+BusOut leds(LED1, LED2, LED3, LED4);
+
+
+//---------------------------------------------------------------------------
+template<> OS_PROCESS void TProc2::Exec()
+{
+    for(;;)
+    {
+        Sleep(500); //suspend process
+        //printf("e\n");
+        //led1 = !led1;
+        //leds = 0x1;
+    }
+}
+
+//---------------------------------------------------------------------------
+
+
+
+void OS::SystemTimerUserHook()
+{
+    static int cnt=0;
+    if (++cnt == 2000)
+    {
+        cnt = 0;
+        //led2.write(1);
+        timerEvent.SignalISR();
+    }
+}
+
+//---------------------------------------------------------------------------
+void OS::IdleProcessUserHook()
+{
+    __WFI(); //sleep the ucontroller and wait for interrupt
+}
+//-----------------------------------------------------------------------------
+
+#endif
+
+