A simple library to handle LEDs a little bit easier.
LEDUtil.cpp@0:3c77443bfb5b, 2015-07-31 (annotated)
- 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?
User | Revision | Line number | New 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 |