Tricolor LED driver for any 3 pin tricolor LED.
Embed:
(wiki syntax)
Show/hide line numbers
tricolor.cpp
00001 /* mbed Microcontroller Library 00002 * Copyright (c) 2006-2012 ARM Limited 00003 */ 00004 #include "tricolor.h" 00005 00006 #define ON 255 00007 #define OFF 0 00008 00009 void Tricolor::Blue(void) { 00010 SetLEDColor(OFF, OFF, ON); 00011 } 00012 00013 void Tricolor::Green(void) { 00014 SetLEDColor(OFF, ON, OFF); 00015 } 00016 00017 void Tricolor::LEDOff(void) { 00018 // Off == 1.0 00019 _Red = 1.0; 00020 _Green = 1.0; 00021 _Blue = 1.0; 00022 _on = false; 00023 } 00024 00025 void Tricolor::LEDOn(void) { 00026 _Red = _RedPwm; 00027 _Green = _GreenPwm; 00028 _Blue = _BluePwm; 00029 _on = true; 00030 } 00031 00032 void Tricolor::Red(void) { 00033 SetLEDColor(ON, OFF, OFF); 00034 } 00035 00036 void Tricolor::SetLEDColor(uint8_t red, uint8_t green, uint8_t blue) { 00037 _RedPwm = 1.0 - ((float)red / 255); 00038 _GreenPwm = 1.0 - ((float)green / 255); 00039 _BluePwm = 1.0 - ((float)blue / 255); 00040 00041 LEDOn(); 00042 } 00043 00044 void Tricolor::Toggle(void) { 00045 if (_on) { 00046 LEDOff(); 00047 } else { 00048 LEDOn(); 00049 } 00050 }
Generated on Tue Jul 12 2022 16:54:56 by 1.7.2