LEDの点滅や、ブザーのOn,Offの周期測定をおこなう。 搬送波の周期は測定できない(10ms周期以上のON,OFF)
Dependencies: AQM0802A DigitalSw mbed
testLed.cpp
- Committer:
- suupen
- Date:
- 2017-05-20
- Revision:
- 0:c5384fa0fc28
- Child:
- 1:d4291fd3a94c
File content as of revision 0:c5384fa0fc28:
#include "mbed.h" #include "testLed.h" DigitalOut testLed(LED1); Timer timerTestLed; bool brinkRequest = false; void testLedInitalize(void) { timerTestLed.start(); timerTestLed.reset(); brinkRequest = false; } uint8_t brinkPosition = 0; // brinkPattern[][ここ] uint16_t brinkPriod = 0; // 点滅時間 1/1 ([ms]/count) uint32_t brinkPattern[][2] = { {1,10}, {0,10}, {1,100}, {0,100}, {1,10}, {0,10}, {1,100}, {0,100}, {1,10}, {0,10}, {1,100}, {0,100}, {1,10}, {0,10}, {1,100}, {0,100}, {1,10}, {0,10}, {1,200}, {0,300}, {1,100}, {0,100}, {1,10}, {0,10}, {1,200}, {0,300}, {1,100}, {0,100}, {1,10}, {0,10}, {1,200}, {0,300}, {1,100}, {0,100}, {1,10}, {0,10}, {1,200}, {0,300}, {1,100}, {0,100}, {1,10}, {0,10}, {1,200}, {0,300}, {1,100}, {0,100}, {1,10}, {0,10}, {1,200}, {0,300}, {1,100}, {0,100}, {1,10}, {0,10}, {1,200}, {0,300}, {1,100}, {0,100}, {1,10}, {0,10}, {1,200}, {0,300}, {2,0} // end }; bool testLedMain(bool request) { if(brinkRequest == false) { if(request == true) { brinkRequest = true; brinkPosition = 0; testLed = brinkPattern[brinkPosition][0]; brinkPriod = brinkPattern[brinkPosition][1]; timerTestLed.reset(); } else { // nothing } } else { if(timerTestLed.read_ms() > brinkPriod) { brinkPosition++; if(brinkPattern[brinkPosition][0] == 2) { testLed = 0; brinkRequest = false; } else { testLed = brinkPattern[brinkPosition][0]; brinkPriod = brinkPattern[brinkPosition][1]; timerTestLed.reset(); } } } return (brinkRequest); }