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

Dependencies:   AQM0802A DigitalSw mbed

main.cpp

Committer:
suupen
Date:
2017-05-20
Revision:
0:c5384fa0fc28
Child:
1:d4291fd3a94c

File content as of revision 0:c5384fa0fc28:

#include "mbed.h"
#include <AQM0802A.h>
#include "testLed.h"

I2C i2c(p28, p27);
AQM0802A lcd(i2c);    // if 5.0v supply, (i2c, false);

//DigitalOut myled1(LED1);
DigitalOut myled2(LED2);
DigitalOut myled3(LED3);
DigitalOut myled4(LED4);

Timer timer;
uint16_t onTime;
uint16_t offTime;

Ticker tickerLed1;
Ticker tickerLed2;

InterruptIn lightIn(p16);

void ledOn(void)
{
//    myled4 = 1;

    offTime = timer.read_ms();
    timer.reset();
        lcd.cls();
    lcd.printf("on %d off %d",onTime, offTime);

    }

void ledOff(void)
{
 //   myled4 = 0;

    onTime = timer.read_ms();
    timer.reset();
        lcd.cls();
    lcd.printf("on %d off %d",onTime, offTime);


    }

void outputLed1(void)
{
//    myled1 = !myled1;
    }

void outputLed2(void)
{
    myled4 = !myled4;
    }

int main() {
        testLedInitalize();
        
        lcd.cls();
//    lcd.printf("iter: \r\n");
    lcd.printf("test");
    
    timer.start();

    lightIn.rise(&ledOn);
    lightIn.fall(&ledOff);
 
    tickerLed1.attach(&outputLed1, 0.1);
    tickerLed2.attach(&outputLed2, 0.5);


        testLedMain(true);
     
    while(1) {
        testLedMain(false);
  //      myled3 =lightIn;

    }
}