LEDの点滅や、ブザーのOn,Offの周期測定をおこなう。 搬送波の周期は測定できない(10ms周期以上のON,OFF)
Dependencies: AQM0802A DigitalSw mbed
testLed.cpp@2:f22110fb3925, 2017-05-27 (annotated)
- Committer:
- suupen
- Date:
- Sat May 27 08:20:20 2017 +0000
- Revision:
- 2:f22110fb3925
- Parent:
- 1:d4291fd3a94c
- Child:
- 3:2a8fdcc54c95
LED????????
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
suupen | 0:c5384fa0fc28 | 1 | #include "mbed.h" |
suupen | 0:c5384fa0fc28 | 2 | #include "testLed.h" |
suupen | 0:c5384fa0fc28 | 3 | |
suupen | 1:d4291fd3a94c | 4 | void tick(void); |
suupen | 1:d4291fd3a94c | 5 | Ticker ticker; |
suupen | 1:d4291fd3a94c | 6 | DigitalOut myled3(LED3); |
suupen | 1:d4291fd3a94c | 7 | |
suupen | 0:c5384fa0fc28 | 8 | DigitalOut testLed(LED1); |
suupen | 0:c5384fa0fc28 | 9 | |
suupen | 0:c5384fa0fc28 | 10 | Timer timerTestLed; |
suupen | 0:c5384fa0fc28 | 11 | bool brinkRequest = false; |
suupen | 0:c5384fa0fc28 | 12 | |
suupen | 1:d4291fd3a94c | 13 | |
suupen | 1:d4291fd3a94c | 14 | |
suupen | 0:c5384fa0fc28 | 15 | void testLedInitalize(void) |
suupen | 0:c5384fa0fc28 | 16 | { |
suupen | 0:c5384fa0fc28 | 17 | timerTestLed.start(); |
suupen | 0:c5384fa0fc28 | 18 | timerTestLed.reset(); |
suupen | 0:c5384fa0fc28 | 19 | brinkRequest = false; |
suupen | 0:c5384fa0fc28 | 20 | |
suupen | 1:d4291fd3a94c | 21 | ticker.attach_us(&tick, 1000); |
suupen | 0:c5384fa0fc28 | 22 | } |
suupen | 0:c5384fa0fc28 | 23 | |
suupen | 0:c5384fa0fc28 | 24 | uint8_t brinkPosition = 0; // brinkPattern[][ここ] |
suupen | 0:c5384fa0fc28 | 25 | uint16_t brinkPriod = 0; // 点滅時間 1/1 ([ms]/count) |
suupen | 1:d4291fd3a94c | 26 | bool testLedLevel = false; // false:Off true:On |
suupen | 0:c5384fa0fc28 | 27 | uint32_t brinkPattern[][2] = { |
suupen | 0:c5384fa0fc28 | 28 | {1,100}, |
suupen | 0:c5384fa0fc28 | 29 | {0,100}, |
suupen | 1:d4291fd3a94c | 30 | |
suupen | 2:f22110fb3925 | 31 | {1,200}, |
suupen | 2:f22110fb3925 | 32 | {0,200}, |
suupen | 1:d4291fd3a94c | 33 | |
suupen | 2:f22110fb3925 | 34 | {1,300}, |
suupen | 2:f22110fb3925 | 35 | {0,300}, |
suupen | 1:d4291fd3a94c | 36 | |
suupen | 2:f22110fb3925 | 37 | {1,400}, |
suupen | 2:f22110fb3925 | 38 | {0,400}, |
suupen | 1:d4291fd3a94c | 39 | |
suupen | 1:d4291fd3a94c | 40 | {1,500}, |
suupen | 1:d4291fd3a94c | 41 | {0,500}, |
suupen | 1:d4291fd3a94c | 42 | |
suupen | 0:c5384fa0fc28 | 43 | {1,100}, |
suupen | 2:f22110fb3925 | 44 | {0,200}, |
suupen | 1:d4291fd3a94c | 45 | |
suupen | 2:f22110fb3925 | 46 | |
suupen | 1:d4291fd3a94c | 47 | |
suupen | 1:d4291fd3a94c | 48 | |
suupen | 0:c5384fa0fc28 | 49 | {2,0} // end |
suupen | 0:c5384fa0fc28 | 50 | }; |
suupen | 0:c5384fa0fc28 | 51 | |
suupen | 1:d4291fd3a94c | 52 | void tick(void) |
suupen | 1:d4291fd3a94c | 53 | { |
suupen | 1:d4291fd3a94c | 54 | myled3 = !myled3; |
suupen | 1:d4291fd3a94c | 55 | if(testLedLevel == true) { |
suupen | 1:d4291fd3a94c | 56 | testLed = !testLed; |
suupen | 1:d4291fd3a94c | 57 | } else { |
suupen | 1:d4291fd3a94c | 58 | testLed = 0; |
suupen | 1:d4291fd3a94c | 59 | } |
suupen | 1:d4291fd3a94c | 60 | } |
suupen | 1:d4291fd3a94c | 61 | |
suupen | 1:d4291fd3a94c | 62 | |
suupen | 1:d4291fd3a94c | 63 | |
suupen | 0:c5384fa0fc28 | 64 | bool testLedMain(bool request) |
suupen | 0:c5384fa0fc28 | 65 | { |
suupen | 0:c5384fa0fc28 | 66 | if(brinkRequest == false) { |
suupen | 0:c5384fa0fc28 | 67 | if(request == true) { |
suupen | 0:c5384fa0fc28 | 68 | brinkRequest = true; |
suupen | 0:c5384fa0fc28 | 69 | brinkPosition = 0; |
suupen | 1:d4291fd3a94c | 70 | testLedLevel = brinkPattern[brinkPosition][0]; |
suupen | 0:c5384fa0fc28 | 71 | brinkPriod = brinkPattern[brinkPosition][1]; |
suupen | 0:c5384fa0fc28 | 72 | |
suupen | 0:c5384fa0fc28 | 73 | timerTestLed.reset(); |
suupen | 0:c5384fa0fc28 | 74 | } else { |
suupen | 0:c5384fa0fc28 | 75 | // nothing |
suupen | 0:c5384fa0fc28 | 76 | } |
suupen | 0:c5384fa0fc28 | 77 | } else { |
suupen | 0:c5384fa0fc28 | 78 | if(timerTestLed.read_ms() > brinkPriod) { |
suupen | 0:c5384fa0fc28 | 79 | brinkPosition++; |
suupen | 0:c5384fa0fc28 | 80 | if(brinkPattern[brinkPosition][0] == 2) { |
suupen | 1:d4291fd3a94c | 81 | testLedLevel = 0; |
suupen | 0:c5384fa0fc28 | 82 | brinkRequest = false; |
suupen | 0:c5384fa0fc28 | 83 | } else { |
suupen | 1:d4291fd3a94c | 84 | testLedLevel = brinkPattern[brinkPosition][0]; |
suupen | 0:c5384fa0fc28 | 85 | brinkPriod = brinkPattern[brinkPosition][1]; |
suupen | 1:d4291fd3a94c | 86 | timerTestLed.reset(); |
suupen | 0:c5384fa0fc28 | 87 | |
suupen | 0:c5384fa0fc28 | 88 | } |
suupen | 0:c5384fa0fc28 | 89 | } |
suupen | 0:c5384fa0fc28 | 90 | } |
suupen | 0:c5384fa0fc28 | 91 | return (brinkRequest); |
suupen | 0:c5384fa0fc28 | 92 | } |