Simple 6-LED bar library. Provides some useful functions.
Simple 6 leds bar library. It allows you to control individual leds, and provides masks.
6LedBar.h@4:ecb39b6f0e18, 2017-05-21 (annotated)
- Committer:
- kryksyh
- Date:
- Sun May 21 14:59:47 2017 +0000
- Revision:
- 4:ecb39b6f0e18
- Parent:
- 3:bb53fa90af91
set_mask method
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kryksyh | 0:52b8975f1dd9 | 1 | #ifndef LED_BAR_H |
kryksyh | 0:52b8975f1dd9 | 2 | #define LED_BAR_H |
kryksyh | 0:52b8975f1dd9 | 3 | |
kryksyh | 2:70b58ce02820 | 4 | /* * * * * * * * * * * * * * * * * * * * * * * * |
kryksyh | 2:70b58ce02820 | 5 | |
kryksyh | 2:70b58ce02820 | 6 | Simple 6-LEDs bar library for using with MBed 2.0 library |
kryksyh | 2:70b58ce02820 | 7 | |
kryksyh | 2:70b58ce02820 | 8 | Copyright 2017 Dmitry Makarenko |
kryksyh | 2:70b58ce02820 | 9 | |
kryksyh | 2:70b58ce02820 | 10 | Licensed under the Apache License, Version 2.0 (the "License"); |
kryksyh | 2:70b58ce02820 | 11 | you may not use this file except in compliance with the License. |
kryksyh | 2:70b58ce02820 | 12 | You may obtain a copy of the License at |
kryksyh | 2:70b58ce02820 | 13 | |
kryksyh | 2:70b58ce02820 | 14 | http://www.apache.org/licenses/LICENSE-2.0 |
kryksyh | 2:70b58ce02820 | 15 | |
kryksyh | 2:70b58ce02820 | 16 | Unless required by applicable law or agreed to in writing, software |
kryksyh | 2:70b58ce02820 | 17 | distributed under the License is distributed on an "AS IS" BASIS, |
kryksyh | 2:70b58ce02820 | 18 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
kryksyh | 2:70b58ce02820 | 19 | See the License for the specific language governing permissions and |
kryksyh | 2:70b58ce02820 | 20 | limitations under the License. |
kryksyh | 2:70b58ce02820 | 21 | |
kryksyh | 2:70b58ce02820 | 22 | * * * * * * * * * * * * * * * * * * * * * * * * */ |
kryksyh | 2:70b58ce02820 | 23 | |
kryksyh | 0:52b8975f1dd9 | 24 | #include "mbed.h" |
kryksyh | 0:52b8975f1dd9 | 25 | |
kryksyh | 1:248129e96f43 | 26 | |
kryksyh | 2:70b58ce02820 | 27 | |
kryksyh | 3:bb53fa90af91 | 28 | /** |
kryksyh | 3:bb53fa90af91 | 29 | * LedBar class is used for controlling 6 led bar. |
kryksyh | 3:bb53fa90af91 | 30 | * |
kryksyh | 3:bb53fa90af91 | 31 | * Example using on, off, toggle methods: |
kryksyh | 3:bb53fa90af91 | 32 | * |
kryksyh | 4:ecb39b6f0e18 | 33 | * @code |
kryksyh | 3:bb53fa90af91 | 34 | * |
kryksyh | 3:bb53fa90af91 | 35 | * #include "mbed.h" |
kryksyh | 3:bb53fa90af91 | 36 | * #include "6LedBar.h" |
kryksyh | 3:bb53fa90af91 | 37 | * |
kryksyh | 3:bb53fa90af91 | 38 | * |
kryksyh | 3:bb53fa90af91 | 39 | * LedBar leds (A0, A1, A2, A3, A4, A5); |
kryksyh | 3:bb53fa90af91 | 40 | * |
kryksyh | 3:bb53fa90af91 | 41 | * int main() { |
kryksyh | 3:bb53fa90af91 | 42 | * leds.on(0); |
kryksyh | 3:bb53fa90af91 | 43 | * leds.on(2); |
kryksyh | 3:bb53fa90af91 | 44 | * leds.on(4); |
kryksyh | 3:bb53fa90af91 | 45 | * |
kryksyh | 3:bb53fa90af91 | 46 | * while(true) { |
kryksyh | 3:bb53fa90af91 | 47 | * for(int i = 0; i < 6; i++) { |
kryksyh | 3:bb53fa90af91 | 48 | * leds.toggle(i); |
kryksyh | 3:bb53fa90af91 | 49 | * } |
kryksyh | 3:bb53fa90af91 | 50 | * wait(0.5); |
kryksyh | 3:bb53fa90af91 | 51 | * } |
kryksyh | 3:bb53fa90af91 | 52 | * } |
kryksyh | 3:bb53fa90af91 | 53 | * |
kryksyh | 3:bb53fa90af91 | 54 | * |
kryksyh | 4:ecb39b6f0e18 | 55 | * @endcode |
kryksyh | 3:bb53fa90af91 | 56 | * |
kryksyh | 3:bb53fa90af91 | 57 | * * * * * * * * * * * * * * * * * * * * * * * * * |
kryksyh | 3:bb53fa90af91 | 58 | * |
kryksyh | 3:bb53fa90af91 | 59 | * Example using mask methods: |
kryksyh | 3:bb53fa90af91 | 60 | * |
kryksyh | 4:ecb39b6f0e18 | 61 | * @code |
kryksyh | 3:bb53fa90af91 | 62 | * |
kryksyh | 3:bb53fa90af91 | 63 | * #include "mbed.h" |
kryksyh | 3:bb53fa90af91 | 64 | * #include "6LedBar.h" |
kryksyh | 3:bb53fa90af91 | 65 | * |
kryksyh | 3:bb53fa90af91 | 66 | * |
kryksyh | 3:bb53fa90af91 | 67 | * LedBar leds (A0, A1, A2, A3, A4, A5); |
kryksyh | 3:bb53fa90af91 | 68 | * |
kryksyh | 3:bb53fa90af91 | 69 | * int main() { |
kryksyh | 3:bb53fa90af91 | 70 | * |
kryksyh | 4:ecb39b6f0e18 | 71 | * leds.set_mask(0b010101); |
kryksyh | 3:bb53fa90af91 | 72 | * |
kryksyh | 3:bb53fa90af91 | 73 | * while(true) { |
kryksyh | 3:bb53fa90af91 | 74 | * leds.toggle_mask(0b111111); |
kryksyh | 3:bb53fa90af91 | 75 | * wait(0.5); |
kryksyh | 3:bb53fa90af91 | 76 | * } |
kryksyh | 3:bb53fa90af91 | 77 | * } |
kryksyh | 3:bb53fa90af91 | 78 | * |
kryksyh | 4:ecb39b6f0e18 | 79 | * @endcode |
kryksyh | 3:bb53fa90af91 | 80 | * |
kryksyh | 3:bb53fa90af91 | 81 | **/ |
kryksyh | 1:248129e96f43 | 82 | |
kryksyh | 3:bb53fa90af91 | 83 | //! |
kryksyh | 0:52b8975f1dd9 | 84 | class LedBar { |
kryksyh | 0:52b8975f1dd9 | 85 | |
kryksyh | 0:52b8975f1dd9 | 86 | public: |
kryksyh | 1:248129e96f43 | 87 | |
kryksyh | 1:248129e96f43 | 88 | //Constructor, you need to specify pins to which |
kryksyh | 1:248129e96f43 | 89 | //leds are connected |
kryksyh | 0:52b8975f1dd9 | 90 | LedBar(PinName p0, |
kryksyh | 0:52b8975f1dd9 | 91 | PinName p1, |
kryksyh | 0:52b8975f1dd9 | 92 | PinName p2, |
kryksyh | 0:52b8975f1dd9 | 93 | PinName p3, |
kryksyh | 0:52b8975f1dd9 | 94 | PinName p4, |
kryksyh | 0:52b8975f1dd9 | 95 | PinName p5); |
kryksyh | 1:248129e96f43 | 96 | |
kryksyh | 3:bb53fa90af91 | 97 | //! Turn n-s led on |
kryksyh | 1:248129e96f43 | 98 | void on(int n); |
kryksyh | 1:248129e96f43 | 99 | |
kryksyh | 3:bb53fa90af91 | 100 | //! Turn n-s led off |
kryksyh | 1:248129e96f43 | 101 | void off(int n); |
kryksyh | 1:248129e96f43 | 102 | |
kryksyh | 3:bb53fa90af91 | 103 | //! Toggle n-s led |
kryksyh | 1:248129e96f43 | 104 | void toggle(int n); |
kryksyh | 1:248129e96f43 | 105 | |
kryksyh | 3:bb53fa90af91 | 106 | //! Set bit mask |
kryksyh | 1:248129e96f43 | 107 | //i.e. mask 0b000101 will turn on leds 0 and 1, and off all others |
kryksyh | 1:248129e96f43 | 108 | void set_mask(int m); |
kryksyh | 1:248129e96f43 | 109 | |
kryksyh | 3:bb53fa90af91 | 110 | //! Turn on leds specified by bit-mask |
kryksyh | 1:248129e96f43 | 111 | void on_mask(int m); |
kryksyh | 1:248129e96f43 | 112 | |
kryksyh | 3:bb53fa90af91 | 113 | //! Turn off leds specified by bit-mask |
kryksyh | 1:248129e96f43 | 114 | void off_mask(int m); |
kryksyh | 1:248129e96f43 | 115 | |
kryksyh | 3:bb53fa90af91 | 116 | //! Toggle leds specified by bit-mask |
kryksyh | 1:248129e96f43 | 117 | void toggle_mask(int m); |
kryksyh | 1:248129e96f43 | 118 | private: |
kryksyh | 1:248129e96f43 | 119 | static const int LEDS_COUNT = 6; |
kryksyh | 1:248129e96f43 | 120 | DigitalOut l0, l1, l2, l3, l4, l5; |
kryksyh | 1:248129e96f43 | 121 | DigitalOut *m_leds[LEDS_COUNT]; |
kryksyh | 0:52b8975f1dd9 | 122 | |
kryksyh | 0:52b8975f1dd9 | 123 | }; |
kryksyh | 0:52b8975f1dd9 | 124 | |
kryksyh | 0:52b8975f1dd9 | 125 | |
kryksyh | 0:52b8975f1dd9 | 126 | #endif //LED_BAR_H |