local timers

Dependencies:   TextLCD mbed-rtos mbed

Fork of pacemaker_FINAL_v2 by Pacemaker

Revision:
7:e3f58c82a4d6
Parent:
6:704de3abb5e9
--- a/main.cpp	Thu Dec 04 03:47:04 2014 +0000
+++ b/main.cpp	Thu Dec 04 04:04:31 2014 +0000
@@ -70,21 +70,23 @@
     while (1) {
         Thread::signal_wait(RUN, osWaitForever);
         int done = 0;
-        while (!done) {
-            if (ta.read_ms() >= LRI-AVI) {
-                tv.reset();
-                V_thread->signal_set(RUN);
-                APace = 1;
-                Thread::wait(2);
-                APace = 0;
-                flashLED(2);
-                done = 1;
-            }
-            if (AGet == 1 && !isPVARP) {
-                tv.reset();
-                V_thread->signal_set(RUN);
-                flashLED(4);
-                done = 1;
+        if (!inManual) {
+            while (!done) {
+                if (ta.read_ms() >= LRI-AVI) {
+                    tv.reset();
+                    V_thread->signal_set(RUN);
+                    APace = 1;
+                    Thread::wait(2);
+                    APace = 0;
+                    flashLED(2);
+                    done = 1;
+                }
+                if (AGet == 1 && !isPVARP) {
+                    tv.reset();
+                    V_thread->signal_set(RUN);
+                    flashLED(4);
+                    done = 1;
+                }
             }
         }
     }
@@ -94,23 +96,25 @@
     while (1) {
         Thread::signal_wait(RUN, osWaitForever);
         int done = 0;
-        while (!done) {
-            if (tv.read_ms() >= AVI) {
-                ta.reset();
-                A_thread->signal_set(RUN);
-                VPace = 1;
-                Thread::wait(2);
-                VPace = 0;
-                blind();
-                flashLED(1);
-                done = 1;
-            }
-            if (VGet == 1 && !isVRP) {
-                ta.reset();
-                A_thread->signal_set(RUN);
-                blind();
-                flashLED(3);
-                done = 1;
+        if (!inManual) {
+            while (!done) {
+                if (tv.read_ms() >= AVI) {
+                    ta.reset();
+                    A_thread->signal_set(RUN);
+                    VPace = 1;
+                    Thread::wait(2);
+                    VPace = 0;
+                    blind();
+                    flashLED(1);
+                    done = 1;
+                }
+                if (VGet == 1 && !isVRP) {
+                    ta.reset();
+                    A_thread->signal_set(RUN);
+                    blind();
+                    flashLED(3);
+                    done = 1;
+                }
             }
         }
     }
@@ -272,6 +276,8 @@
     man_mutex.lock();
     inManual = 0;
     man_mutex.unlock();
+    tv.reset();
+    V_thread->signal_set(RUN);
 }
 
 void get_listener(void const *args) {
@@ -327,8 +333,3 @@
     status_mutex.unlock();
     disp_thread->signal_set(RUN);
 }
-
-
-
-
-