Tricolor LED driver for any 3 pin tricolor LED.
Diff: tricolor.cpp
- Revision:
- 0:80ebb233e295
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tricolor.cpp Fri May 24 19:09:49 2013 +0000 @@ -0,0 +1,50 @@ +/* mbed Microcontroller Library + * Copyright (c) 2006-2012 ARM Limited + */ +#include "tricolor.h" + +#define ON 255 +#define OFF 0 + +void Tricolor::Blue(void) { + SetLEDColor(OFF, OFF, ON); +} + +void Tricolor::Green(void) { + SetLEDColor(OFF, ON, OFF); +} + +void Tricolor::LEDOff(void) { + // Off == 1.0 + _Red = 1.0; + _Green = 1.0; + _Blue = 1.0; + _on = false; +} + +void Tricolor::LEDOn(void) { + _Red = _RedPwm; + _Green = _GreenPwm; + _Blue = _BluePwm; + _on = true; +} + +void Tricolor::Red(void) { + SetLEDColor(ON, OFF, OFF); +} + +void Tricolor::SetLEDColor(uint8_t red, uint8_t green, uint8_t blue) { + _RedPwm = 1.0 - ((float)red / 255); + _GreenPwm = 1.0 - ((float)green / 255); + _BluePwm = 1.0 - ((float)blue / 255); + + LEDOn(); +} + +void Tricolor::Toggle(void) { + if (_on) { + LEDOff(); + } else { + LEDOn(); + } +}