A library to drive the Grove Circular LED by Seeed Studio: https://www.seeedstudio.com/Grove-Circular-LED-p-1353.html
Dependents: Seeed_Grove_Circular_LED
Fork of LED_Bar by
Circular_LED.h@1:30d1850db92a, 2017-06-16 (annotated)
- Committer:
- mochen
- Date:
- Fri Jun 16 16:09:25 2017 +0000
- Revision:
- 1:30d1850db92a
- Parent:
- LED_Bar.h@0:edcb13b58b4f
Initial commit.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
screamer | 0:edcb13b58b4f | 1 | /* |
screamer | 0:edcb13b58b4f | 2 | LED bar library V1.0 |
screamer | 0:edcb13b58b4f | 3 | 2010 Copyright (c) Seeed Technology Inc. All right reserved. |
screamer | 0:edcb13b58b4f | 4 | |
screamer | 0:edcb13b58b4f | 5 | Original Author: LG |
screamer | 0:edcb13b58b4f | 6 | Modify: Loovee, 2014-2-26 |
screamer | 0:edcb13b58b4f | 7 | User can choose which Io to be used. |
screamer | 0:edcb13b58b4f | 8 | |
screamer | 0:edcb13b58b4f | 9 | This library is free software; you can redistribute it and/or |
screamer | 0:edcb13b58b4f | 10 | modify it under the terms of the GNU Lesser General Public |
screamer | 0:edcb13b58b4f | 11 | License as published by the Free Software Foundation; either |
screamer | 0:edcb13b58b4f | 12 | version 2.1 of the License, or (at your option) any later version. |
screamer | 0:edcb13b58b4f | 13 | |
screamer | 0:edcb13b58b4f | 14 | This library is distributed in the hope that it will be useful, |
screamer | 0:edcb13b58b4f | 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
screamer | 0:edcb13b58b4f | 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
screamer | 0:edcb13b58b4f | 17 | Lesser General Public License for more details. |
screamer | 0:edcb13b58b4f | 18 | |
screamer | 0:edcb13b58b4f | 19 | You should have received a copy of the GNU Lesser General Public |
screamer | 0:edcb13b58b4f | 20 | License along with this library; if not, write to the Free Software |
screamer | 0:edcb13b58b4f | 21 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
screamer | 0:edcb13b58b4f | 22 | */ |
screamer | 0:edcb13b58b4f | 23 | |
screamer | 0:edcb13b58b4f | 24 | #include "mbed.h" |
screamer | 0:edcb13b58b4f | 25 | |
mochen | 1:30d1850db92a | 26 | #ifndef Circular_LED_H |
mochen | 1:30d1850db92a | 27 | #define Circular_LED_H |
screamer | 0:edcb13b58b4f | 28 | |
screamer | 0:edcb13b58b4f | 29 | #define CMDMODE 0x0000 // Work on 8-bit mode |
screamer | 0:edcb13b58b4f | 30 | #define ON 0x00ff // 8-bit 1 data |
screamer | 0:edcb13b58b4f | 31 | #define SHUT 0x0000 // 8-bit 0 data |
screamer | 0:edcb13b58b4f | 32 | |
screamer | 0:edcb13b58b4f | 33 | /** |
mochen | 1:30d1850db92a | 34 | * The Circular_LED interface |
screamer | 0:edcb13b58b4f | 35 | */ |
mochen | 1:30d1850db92a | 36 | class Circular_LED |
screamer | 0:edcb13b58b4f | 37 | { |
screamer | 0:edcb13b58b4f | 38 | |
screamer | 0:edcb13b58b4f | 39 | public: |
mochen | 1:30d1850db92a | 40 | Circular_LED(PinName pinClk, PinName pinDta); |
screamer | 0:edcb13b58b4f | 41 | |
screamer | 0:edcb13b58b4f | 42 | /** |
mochen | 1:30d1850db92a | 43 | * Set the on/off state for all LEDs based on a bitmap. |
mochen | 1:30d1850db92a | 44 | * @param state The bitmap. For example, if state is 0x05, then led 0 and led 3 will be on, and the others will be off. |
screamer | 0:edcb13b58b4f | 45 | */ |
mochen | 1:30d1850db92a | 46 | void setState(uint32_t state); |
screamer | 0:edcb13b58b4f | 47 | |
screamer | 0:edcb13b58b4f | 48 | /** |
mochen | 1:30d1850db92a | 49 | * Set level, frm 0 to 24. |
screamer | 0:edcb13b58b4f | 50 | * @param level Level 0 means all leds off while level 5 means 5led on and the other will off |
screamer | 0:edcb13b58b4f | 51 | */ |
mochen | 1:30d1850db92a | 52 | void setLevel(uint8_t level); |
screamer | 0:edcb13b58b4f | 53 | |
screamer | 0:edcb13b58b4f | 54 | /** |
screamer | 0:edcb13b58b4f | 55 | * Control a single led |
screamer | 0:edcb13b58b4f | 56 | * @param num which led |
screamer | 0:edcb13b58b4f | 57 | * @param st 1: on 0: off |
screamer | 0:edcb13b58b4f | 58 | */ |
mochen | 1:30d1850db92a | 59 | void setSingleLed(uint8_t num, bool st); |
screamer | 0:edcb13b58b4f | 60 | |
screamer | 0:edcb13b58b4f | 61 | private: |
screamer | 0:edcb13b58b4f | 62 | /** |
screamer | 0:edcb13b58b4f | 63 | * Pin for clock |
screamer | 0:edcb13b58b4f | 64 | */ |
screamer | 0:edcb13b58b4f | 65 | DigitalOut __pinClk; |
screamer | 0:edcb13b58b4f | 66 | |
screamer | 0:edcb13b58b4f | 67 | /** |
screamer | 0:edcb13b58b4f | 68 | * Pin for data |
screamer | 0:edcb13b58b4f | 69 | */ |
screamer | 0:edcb13b58b4f | 70 | DigitalOut __pinDta; |
screamer | 0:edcb13b58b4f | 71 | |
screamer | 0:edcb13b58b4f | 72 | /** |
screamer | 0:edcb13b58b4f | 73 | * LED State |
screamer | 0:edcb13b58b4f | 74 | */ |
mochen | 1:30d1850db92a | 75 | uint32_t __led_state; |
screamer | 0:edcb13b58b4f | 76 | |
mochen | 1:30d1850db92a | 77 | void send16bitData(uint16_t data); |
screamer | 0:edcb13b58b4f | 78 | void latchData(void); |
screamer | 0:edcb13b58b4f | 79 | |
screamer | 0:edcb13b58b4f | 80 | }; |
screamer | 0:edcb13b58b4f | 81 | |
screamer | 0:edcb13b58b4f | 82 | #endif |