Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
rgb-led-pca9555.cpp
00001 #include "rgb-led-pca9555.h" 00002 00003 00004 RgbLed::RgbLed (PCA9555 *ioExt, unsigned int redPin, unsigned int greenPin, unsigned int bluePin): 00005 extIO(ioExt), ledR(redPin), ledG(greenPin), ledB(bluePin) 00006 { 00007 setColor(OFF); 00008 } 00009 00010 void RgbLed::toggle() { 00011 extIO->togglePin(ledR); 00012 extIO->togglePin(ledG); 00013 extIO->togglePin(ledB); 00014 } 00015 00016 void RgbLed::setColor(Color color) { 00017 switch (color) { 00018 case RED: 00019 extIO->clearPin(ledR); 00020 extIO->setPin(ledG); 00021 extIO->setPin(ledB); 00022 break; 00023 case GREEN: 00024 extIO->setPin(ledR); 00025 extIO->clearPin(ledG); 00026 extIO->setPin(ledB); 00027 break; 00028 case BLUE: 00029 extIO->setPin(ledR); 00030 extIO->setPin(ledG); 00031 extIO->clearPin(ledB); 00032 break; 00033 case CYAN: 00034 extIO->setPin(ledR); 00035 extIO->clearPin(ledG); 00036 extIO->clearPin(ledB); 00037 break; 00038 case MAGENTA: 00039 extIO->clearPin(ledR); 00040 extIO->setPin(ledG); 00041 extIO->clearPin(ledB); 00042 break; 00043 case YELLOW: 00044 extIO->clearPin(ledR); 00045 extIO->clearPin(ledG); 00046 extIO->setPin(ledB); 00047 break; 00048 case WHITE: 00049 extIO->clearPin(ledR); 00050 extIO->clearPin(ledG); 00051 extIO->clearPin(ledB); 00052 break; 00053 case OFF: 00054 extIO->setPin(ledR); 00055 extIO->setPin(ledG); 00056 extIO->setPin(ledB); 00057 break; 00058 } 00059 } 00060 00061 void RgbLed::setRed(bool ledState) { 00062 if (ledState) { 00063 extIO->clearPin(ledR); 00064 } else { 00065 extIO->setPin(ledR); 00066 } 00067 } 00068 00069 void RgbLed::setGreen(bool ledState) { 00070 if (ledState) { 00071 extIO->clearPin(ledG); 00072 } else { 00073 extIO->setPin(ledG); 00074 } 00075 } 00076 00077 void RgbLed::setBlue(bool ledState) { 00078 if (ledState) { 00079 extIO->clearPin(ledB); 00080 } else { 00081 extIO->setPin(ledB); 00082 } 00083 } 00084 00085 void RgbLed::toggleRed() { 00086 extIO->togglePin(ledR); 00087 } 00088 00089 void RgbLed::toggleGreen() { 00090 extIO->togglePin(ledG); 00091 } 00092 00093 void RgbLed::toggleBlue() { 00094 extIO->togglePin(ledB); 00095 }
Generated on Wed Jul 13 2022 20:25:29 by
1.7.2