Basic RGB library for non-PWM LEDs
Dependents: MenuExample exosite_http_example exosite_http_example FastPWM
Warning : Works with non-PWM LED (0 or 1).
A quick example on how to use it.
#include "mbed.h"
#include "RGBLed.h"
RGBLed led(LED_RED, LED_GREEN, LED_BLUE);
int main() {
RGBLed::Color list[8] = {RGBLed::BLACK, RGBLed::RED, RGBLed::GREEN, RGBLed::BLUE, RGBLed::MAGENTA, RGBLed::CYAN, RGBLed::YELLOW, RGBLed::WHITE};
int i = 0;
while (true) {
i = (i+1)%8;
led.setColor(list[i]);
wait_ms(100);
}
}
RGBLed.cpp@6:9b7ee7ba4109, 2015-06-12 (annotated)
- Committer:
- rominos2
- Date:
- Fri Jun 12 19:02:04 2015 +0000
- Revision:
- 6:9b7ee7ba4109
- Parent:
- 4:176363412797
Fixed the documentation in RGBLed.h
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| rominos2 | 4:176363412797 | 1 | /* |
| rominos2 | 4:176363412797 | 2 | Copyright (c) 2014 Romain Berrada |
| rominos2 | 4:176363412797 | 3 | |
| rominos2 | 4:176363412797 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software |
| rominos2 | 4:176363412797 | 5 | and associated documentation files (the "Software"), to deal in the Software without restriction, |
| rominos2 | 4:176363412797 | 6 | including without limitation the rights to use, copy, modify, merge, publish, distribute, |
| rominos2 | 4:176363412797 | 7 | sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is |
| rominos2 | 4:176363412797 | 8 | furnished to do so, subject to the following conditions: |
| rominos2 | 4:176363412797 | 9 | |
| rominos2 | 4:176363412797 | 10 | The above copyright notice and this permission notice shall be included in all copies or |
| rominos2 | 4:176363412797 | 11 | substantial portions of the Software. |
| rominos2 | 4:176363412797 | 12 | |
| rominos2 | 4:176363412797 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING |
| rominos2 | 4:176363412797 | 14 | BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
| rominos2 | 4:176363412797 | 15 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, |
| rominos2 | 4:176363412797 | 16 | DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
| rominos2 | 4:176363412797 | 17 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
| rominos2 | 4:176363412797 | 18 | */ |
| rominos2 | 4:176363412797 | 19 | |
| rominos2 | 3:be0a3c2ec426 | 20 | #include "RGBLed.h" |
| rominos2 | 3:be0a3c2ec426 | 21 | |
| rominos2 | 3:be0a3c2ec426 | 22 | RGBLed::Color::Color(bool r, bool g, bool b) : _r(r), _g(g), _b(b) { |
| rominos2 | 3:be0a3c2ec426 | 23 | } |
| rominos2 | 3:be0a3c2ec426 | 24 | |
| rominos2 | 3:be0a3c2ec426 | 25 | RGBLed::RGBLed(PinName redPin, PinName greenPin, PinName bluePin) : _red(redPin), _green(greenPin), _blue(bluePin) { |
| rominos2 | 3:be0a3c2ec426 | 26 | this->setColor(RGBLed::BLACK); // Clear the LED output |
| rominos2 | 3:be0a3c2ec426 | 27 | } |
| rominos2 | 3:be0a3c2ec426 | 28 | |
| rominos2 | 3:be0a3c2ec426 | 29 | void RGBLed::setColor(Color& color) { |
| rominos2 | 3:be0a3c2ec426 | 30 | _red = color._r; |
| rominos2 | 3:be0a3c2ec426 | 31 | _green = color._g; |
| rominos2 | 3:be0a3c2ec426 | 32 | _blue = color._b; |
| rominos2 | 3:be0a3c2ec426 | 33 | } |
| rominos2 | 3:be0a3c2ec426 | 34 | |
| rominos2 | 3:be0a3c2ec426 | 35 | RGBLed::Color RGBLed::BLACK = RGBLed::Color(1,1,1); |
| rominos2 | 3:be0a3c2ec426 | 36 | RGBLed::Color RGBLed::RED = RGBLed::Color(0,1,1); |
| rominos2 | 3:be0a3c2ec426 | 37 | RGBLed::Color RGBLed::GREEN = RGBLed::Color(1,0,1); |
| rominos2 | 3:be0a3c2ec426 | 38 | RGBLed::Color RGBLed::BLUE = RGBLed::Color(1,1,0); |
| rominos2 | 3:be0a3c2ec426 | 39 | RGBLed::Color RGBLed::MAGENTA = RGBLed::Color(0,1,0); |
| rominos2 | 3:be0a3c2ec426 | 40 | RGBLed::Color RGBLed::CYAN = RGBLed::Color(1,0,0); |
| rominos2 | 3:be0a3c2ec426 | 41 | RGBLed::Color RGBLed::YELLOW = RGBLed::Color(0,0,1); |
| rominos2 | 3:be0a3c2ec426 | 42 | RGBLed::Color RGBLed::WHITE = RGBLed::Color(0,0,0); |