A simple library to handle LEDs a little bit easier.
LEDUtil.cpp@1:220396a0cb8a, 2015-07-31 (annotated)
- Committer:
- coisme
- Date:
- Fri Jul 31 23:36:45 2015 +0000
- Revision:
- 1:220396a0cb8a
- Parent:
- 0:3c77443bfb5b
Formatted.
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 | 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 |