LEDの点滅や、ブザーのOn,Offの周期測定をおこなう。 搬送波の周期は測定できない(10ms周期以上のON,OFF)

Dependencies:   AQM0802A DigitalSw mbed

Revision:
5:f137bb7eeda6
Parent:
4:001603e48dc8
--- a/priodMsurement.cpp	Tue Jun 06 13:15:07 2017 +0000
+++ b/priodMsurement.cpp	Thu Jun 08 04:46:15 2017 +0000
@@ -1,10 +1,6 @@
 #include "mbed.h"
 #include "priodMsurement.h"
 
-DigitalOut dbgPort (p19);
-DigitalOut dbg2Port (p18);
-
-
 Timer hiTimer;  // hi priod timer
 Timer loTimer; // low priod timer
 Timer aTimer;
@@ -19,6 +15,13 @@
 int8_t P_surement = 0;     // D_surement[ここ][] のポインタ
 #define Z_nonSurement (-1)  // D_surementの最終位置(不定値)
 
+bool F_start = false; // 測定開始要求 false:なし true:あり
+void priodMsurementRequest(void)
+{
+    F_start = true;
+    }
+
+
 int8_t beforeLevel = -1; // 0:Lo 1:Hi -1:timeOut(non Pluse)
 
 #define Z_initialSurement (-1)// surementPut()への初期化指示
@@ -40,7 +43,7 @@
     }
 }
 
-InterruptIn lightIn(p22);
+InterruptIn lightIn(p18);
 DigitalOut monitor(LED4);
 bool surementData(int8_t *p, int32_t *hiPriod, int32_t *loPriod)
 {
@@ -69,11 +72,12 @@
         beforeLevel = 1;
         printf("hi = %d,  lo = %d\r\n",hiCompleteTime, loCompleteTime);
     }
-    if(beforeLevel == -1) {
-//    if((beforeLevel == -1) && (F_start == true)) {
+//    if(beforeLevel == -1) {
+    if((beforeLevel == -1) && (F_start == true)) {
         printf("start\r\n");
         surementPut(Z_initialSurement, (int32_t)Z_initialSurement);
         beforeLevel = 1;
+        F_start = false;
     }
     monitor = 1;
 }
@@ -84,8 +88,8 @@
     if(beforeLevel == 1) {
         hiCompleteTime = hiTimer.read_ms();
         surementPut(Z_hiSurement, hiCompleteTime);
+    beforeLevel = 0;
     }
-    beforeLevel = 0;
     monitor = 0;
 }