A simple library to handle LEDs a little bit easier.

Committer:
coisme
Date:
Fri Jul 31 23:36:45 2015 +0000
Revision:
1:220396a0cb8a
Parent:
0:3c77443bfb5b
Formatted.

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 1:220396a0cb8a 7 LEDUtil::LEDUtil(PinName targetPinName, LEDUtil::Polarity targetPinPolarity)
coisme 1:220396a0cb8a 8 {
coisme 0:3c77443bfb5b 9 this->pinName = targetPinName;
coisme 0:3c77443bfb5b 10 this->polarity = targetPinPolarity;
coisme 1:220396a0cb8a 11 }
coisme 1:220396a0cb8a 12
coisme 0:3c77443bfb5b 13
coisme 1:220396a0cb8a 14 void LEDUtil::setLedState(LedState state)
coisme 1:220396a0cb8a 15 {
coisme 0:3c77443bfb5b 16 DigitalOut pin(pinName);
coisme 1:220396a0cb8a 17
coisme 0:3c77443bfb5b 18 if (state == LEDUtil::LED_ON) {
coisme 0:3c77443bfb5b 19 // turns on the LED
coisme 0:3c77443bfb5b 20 pin.write((polarity == LEDUtil::HIGH_ON_LOW_OFF) ? PIN_HIGH : PIN_LOW);
coisme 0:3c77443bfb5b 21 } else {
coisme 0:3c77443bfb5b 22 // turns off the LED
coisme 0:3c77443bfb5b 23 pin.write((polarity == LEDUtil::HIGH_ON_LOW_OFF) ? PIN_LOW : PIN_HIGH);
coisme 0:3c77443bfb5b 24 }
coisme 0:3c77443bfb5b 25 }
coisme 0:3c77443bfb5b 26
coisme 1:220396a0cb8a 27 void LEDUtil::turnOn()
coisme 1:220396a0cb8a 28 {
coisme 0:3c77443bfb5b 29 LEDUtil::setLedState(LEDUtil::LED_ON);
coisme 0:3c77443bfb5b 30 }
coisme 0:3c77443bfb5b 31
coisme 1:220396a0cb8a 32 void LEDUtil::turnOff()
coisme 1:220396a0cb8a 33 {
coisme 0:3c77443bfb5b 34 LEDUtil::setLedState(LEDUtil::LED_OFF);
coisme 0:3c77443bfb5b 35 }
coisme 0:3c77443bfb5b 36
coisme 1:220396a0cb8a 37 bool LEDUtil::isOn()
coisme 1:220396a0cb8a 38 {
coisme 0:3c77443bfb5b 39 if (getLedState() == LEDUtil::LED_ON) {
coisme 0:3c77443bfb5b 40 return true;
coisme 0:3c77443bfb5b 41 } else {
coisme 0:3c77443bfb5b 42 return false;
coisme 0:3c77443bfb5b 43 }
coisme 0:3c77443bfb5b 44 }
coisme 0:3c77443bfb5b 45
coisme 1:220396a0cb8a 46 bool LEDUtil::isOff()
coisme 1:220396a0cb8a 47 {
coisme 0:3c77443bfb5b 48 return (!LEDUtil::isOn());
coisme 0:3c77443bfb5b 49 }
coisme 0:3c77443bfb5b 50
coisme 1:220396a0cb8a 51 LEDUtil::LedState LEDUtil::getLedState()
coisme 1:220396a0cb8a 52 {
coisme 0:3c77443bfb5b 53 DigitalOut pin(pinName);
coisme 0:3c77443bfb5b 54 LedState state = LEDUtil::LED_OFF;
coisme 1:220396a0cb8a 55
coisme 0:3c77443bfb5b 56 if (pin.read() == PIN_HIGH) {
coisme 0:3c77443bfb5b 57 state = ((polarity == LEDUtil::HIGH_ON_LOW_OFF) ? LEDUtil::LED_ON : LEDUtil::LED_OFF);
coisme 0:3c77443bfb5b 58 } else {
coisme 0:3c77443bfb5b 59 state = ((polarity == LEDUtil::LOW_ON_HIGH_OFF) ? LEDUtil::LED_OFF : LEDUtil::LED_ON);
coisme 0:3c77443bfb5b 60 }
coisme 1:220396a0cb8a 61
coisme 0:3c77443bfb5b 62 return state;
coisme 0:3c77443bfb5b 63 }
coisme 0:3c77443bfb5b 64