Sample Code of http://ohurochan.jp/blog/?p=446 Added SerialController to control BitPattern from PC via Serial. Based on https://developer.mbed.org/users/tandk1124/code/LED_BitPattern/
Fork of LED_BitPattern by
Added Control class for SeirialPC. You can change LED Lighting Bit Pattern from PC Serial. Type "1" to set countup. Type "0" to set countdown.
main.cpp@3:af4bdd802643, 2017-03-06 (annotated)
- Committer:
- tandk1124
- Date:
- Mon Mar 06 12:56:36 2017 +0000
- Revision:
- 3:af4bdd802643
- Parent:
- 2:5a1cb5bdeae6
- Child:
- 4:0cc67e76eaba
new
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
simon | 0:fb6bbc10ffa0 | 1 | #include "mbed.h" |
simon | 0:fb6bbc10ffa0 | 2 | |
tandk1124 | 2:5a1cb5bdeae6 | 3 | DigitalOut leds[] = {LED1, LED2, LED3, LED4}; |
tandk1124 | 2:5a1cb5bdeae6 | 4 | int numLeds = sizeof(leds)/sizeof(DigitalOut); |
tandk1124 | 2:5a1cb5bdeae6 | 5 | |
tandk1124 | 2:5a1cb5bdeae6 | 6 | class CtrlLEDs{ |
tandk1124 | 2:5a1cb5bdeae6 | 7 | public: |
tandk1124 | 2:5a1cb5bdeae6 | 8 | static void ALLOFF(){ |
tandk1124 | 2:5a1cb5bdeae6 | 9 | for(int i = 0 ; i < numLeds ; i++){ |
tandk1124 | 2:5a1cb5bdeae6 | 10 | leds[i] = 0; |
tandk1124 | 2:5a1cb5bdeae6 | 11 | } |
tandk1124 | 2:5a1cb5bdeae6 | 12 | }; |
tandk1124 | 2:5a1cb5bdeae6 | 13 | static void ON(int idx){ leds[idx] = 1; }; |
tandk1124 | 2:5a1cb5bdeae6 | 14 | static void OFF(int idx){ leds[idx] = 0; }; |
tandk1124 | 2:5a1cb5bdeae6 | 15 | |
tandk1124 | 2:5a1cb5bdeae6 | 16 | static void ON_Bit(int flag) { |
tandk1124 | 2:5a1cb5bdeae6 | 17 | if(numLeds < 4) return; |
tandk1124 | 2:5a1cb5bdeae6 | 18 | |
tandk1124 | 2:5a1cb5bdeae6 | 19 | leds[0] = ((flag & 0b1000) > 0) ? 1 : 0; |
tandk1124 | 2:5a1cb5bdeae6 | 20 | leds[1] = ((flag & 0b0100) > 0) ? 1 : 0; |
tandk1124 | 2:5a1cb5bdeae6 | 21 | leds[2] = ((flag & 0b0010) > 0) ? 1 : 0; |
tandk1124 | 2:5a1cb5bdeae6 | 22 | leds[3] = ((flag & 0x0001) > 0) ? 1 : 0; |
tandk1124 | 2:5a1cb5bdeae6 | 23 | }; |
tandk1124 | 2:5a1cb5bdeae6 | 24 | }; |
simon | 0:fb6bbc10ffa0 | 25 | |
simon | 0:fb6bbc10ffa0 | 26 | int main() { |
tandk1124 | 2:5a1cb5bdeae6 | 27 | int loopCnt = 0; |
tandk1124 | 2:5a1cb5bdeae6 | 28 | CtrlLEDs::ALLOFF(); |
simon | 0:fb6bbc10ffa0 | 29 | while(1) { |
tandk1124 | 2:5a1cb5bdeae6 | 30 | if(loopCnt<=15){ |
tandk1124 | 2:5a1cb5bdeae6 | 31 | CtrlLEDs::ON_Bit(loopCnt); |
tandk1124 | 2:5a1cb5bdeae6 | 32 | loopCnt++; |
tandk1124 | 2:5a1cb5bdeae6 | 33 | if(loopCnt > 15){ |
tandk1124 | 2:5a1cb5bdeae6 | 34 | loopCnt = 0; |
tandk1124 | 2:5a1cb5bdeae6 | 35 | } |
tandk1124 | 2:5a1cb5bdeae6 | 36 | } |
tandk1124 | 3:af4bdd802643 | 37 | wait(0.5); |
simon | 0:fb6bbc10ffa0 | 38 | } |
simon | 0:fb6bbc10ffa0 | 39 | } |