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 Seeed

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?

UserRevisionLine numberNew 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