LEDの点滅や、ブザーのOn,Offの周期測定をおこなう。 搬送波の周期は測定できない(10ms周期以上のON,OFF)
Dependencies: AQM0802A DigitalSw mbed
Diff: main.cpp
- Revision:
- 3:2a8fdcc54c95
- Parent:
- 1:d4291fd3a94c
- Child:
- 4:001603e48dc8
diff -r f22110fb3925 -r 2a8fdcc54c95 main.cpp --- 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 } - + }