A simple library to handle LEDs a little bit easier.

Committer:
coisme
Date:
Fri Jul 31 23:26:36 2015 +0000
Revision:
0:3c77443bfb5b
Child:
1:220396a0cb8a
First commit.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
coisme 0:3c77443bfb5b 1 #include "mbed.h"
coisme 0:3c77443bfb5b 2 #include "LEDUtil.h"
coisme 0:3c77443bfb5b 3
coisme 0:3c77443bfb5b 4 #define PIN_HIGH 1
coisme 0:3c77443bfb5b 5 #define PIN_LOW 0
coisme 0:3c77443bfb5b 6
coisme 0:3c77443bfb5b 7 LEDUtil::LEDUtil(PinName targetPinName, LEDUtil::Polarity targetPinPolarity) {
coisme 0:3c77443bfb5b 8 this->pinName = targetPinName;
coisme 0:3c77443bfb5b 9 this->polarity = targetPinPolarity;
coisme 0:3c77443bfb5b 10 }
coisme 0:3c77443bfb5b 11
coisme 0:3c77443bfb5b 12
coisme 0:3c77443bfb5b 13 void LEDUtil::setLedState(LedState state) {
coisme 0:3c77443bfb5b 14 DigitalOut pin(pinName);
coisme 0:3c77443bfb5b 15
coisme 0:3c77443bfb5b 16 if (state == LEDUtil::LED_ON) {
coisme 0:3c77443bfb5b 17 // turns on the LED
coisme 0:3c77443bfb5b 18 pin.write((polarity == LEDUtil::HIGH_ON_LOW_OFF) ? PIN_HIGH : PIN_LOW);
coisme 0:3c77443bfb5b 19 } else {
coisme 0:3c77443bfb5b 20 // turns off the LED
coisme 0:3c77443bfb5b 21 pin.write((polarity == LEDUtil::HIGH_ON_LOW_OFF) ? PIN_LOW : PIN_HIGH);
coisme 0:3c77443bfb5b 22 }
coisme 0:3c77443bfb5b 23 }
coisme 0:3c77443bfb5b 24
coisme 0:3c77443bfb5b 25 void LEDUtil::turnOn() {
coisme 0:3c77443bfb5b 26 LEDUtil::setLedState(LEDUtil::LED_ON);
coisme 0:3c77443bfb5b 27 }
coisme 0:3c77443bfb5b 28
coisme 0:3c77443bfb5b 29 void LEDUtil::turnOff() {
coisme 0:3c77443bfb5b 30 LEDUtil::setLedState(LEDUtil::LED_OFF);
coisme 0:3c77443bfb5b 31 }
coisme 0:3c77443bfb5b 32
coisme 0:3c77443bfb5b 33 bool LEDUtil::isOn() {
coisme 0:3c77443bfb5b 34 if (getLedState() == LEDUtil::LED_ON) {
coisme 0:3c77443bfb5b 35 return true;
coisme 0:3c77443bfb5b 36 } else {
coisme 0:3c77443bfb5b 37 return false;
coisme 0:3c77443bfb5b 38 }
coisme 0:3c77443bfb5b 39 }
coisme 0:3c77443bfb5b 40
coisme 0:3c77443bfb5b 41 bool LEDUtil::isOff() {
coisme 0:3c77443bfb5b 42 return (!LEDUtil::isOn());
coisme 0:3c77443bfb5b 43 }
coisme 0:3c77443bfb5b 44
coisme 0:3c77443bfb5b 45 LEDUtil::LedState LEDUtil::getLedState() {
coisme 0:3c77443bfb5b 46 DigitalOut pin(pinName);
coisme 0:3c77443bfb5b 47 LedState state = LEDUtil::LED_OFF;
coisme 0:3c77443bfb5b 48
coisme 0:3c77443bfb5b 49 if (pin.read() == PIN_HIGH) {
coisme 0:3c77443bfb5b 50 state = ((polarity == LEDUtil::HIGH_ON_LOW_OFF) ? LEDUtil::LED_ON : LEDUtil::LED_OFF);
coisme 0:3c77443bfb5b 51 } else {
coisme 0:3c77443bfb5b 52 state = ((polarity == LEDUtil::LOW_ON_HIGH_OFF) ? LEDUtil::LED_OFF : LEDUtil::LED_ON);
coisme 0:3c77443bfb5b 53 }
coisme 0:3c77443bfb5b 54
coisme 0:3c77443bfb5b 55 return state;
coisme 0:3c77443bfb5b 56 }
coisme 0:3c77443bfb5b 57