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

Dependencies:   AQM0802A DigitalSw mbed

Revision:
3:2a8fdcc54c95
Parent:
1:d4291fd3a94c
Child:
4:001603e48dc8
--- a/main.cpp	Sat May 27 08:20:20 2017 +0000
+++ b/main.cpp	Mon Jun 05 12:31:15 2017 +0000
@@ -1,28 +1,73 @@
+#define LCD
+
+
 #include "mbed.h"
 #include "testLed.h"
+#include "testSound.h"
 #include "priodMsurement.h"
+#include "DigitalSw.h"
 
 
+#ifdef LCD
+#include <AQM0802A.h>
+I2C i2c(p28, p27);
+AQM0802A lcd(i2c);    // if 5.0v supply, (i2c, false);
+#endif // LCD
+
 //DigitalOut myled1(LED1);
 DigitalOut myled2(LED2);
 //DigitalOut myled3(LED3);
 //DigitalOut myled4(LED4);
 
+
 DigitalIn demoLedSw(p20, PullUp);
-
+//DigitalSw startSw(p20);
+DigitalSw upSw(p8);
+DigitalSw downSw(p14);
 
 int main()
 {
-    testLedInitalize();
-    priodMsurementInitalize();
+    int8_t p = 0;
+    int32_t loPriod;
+    int32_t hiPriod;
 
+    priodMsurementInitalize();
+    testLedInitalize();
+    testSoundInitalize();
 
-    testLedMain(true);
+    int count =0;
 
     while(1) {
+    myled2 = !myled2;
+
+#if 0
+        testSoundMain(!demoLedSw);
         testLedMain(!demoLedSw);
-    priodMsurementMain();
+#endif
+
+        priodMsurementMain();
+
+        if(upSw.getOnEdge() == 1) {
+            if(++p >= 50) {
+                p = 49;
+            }
+        }
+
+        if(downSw.getOnEdge() == 1) {
+            if(--p <= 0) {
+                p = 0;
+            }
+        }
+
+#ifdef LCD
+        if(true ==  surementData((uint8_t)p, &hiPriod, &loPriod)) {
+            lcd.cls();
+            lcd.printf("p = %2d  hi = %d\n",p, hiPriod);
+            lcd.printf("        lo = %d",loPriod);
+            wait(0.2);
+        }
+#endif // LCD
 
     }
-    
+
 }