A simple library to handle LEDs a little bit easier.
LEDUtil.h@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 | #ifndef __LEDUTIL_H__ |
coisme | 0:3c77443bfb5b | 2 | #define __LEDUTIL_H__ |
coisme | 0:3c77443bfb5b | 3 | |
coisme | 0:3c77443bfb5b | 4 | /** |
coisme | 0:3c77443bfb5b | 5 | * A simple class to handle LED. |
coisme | 0:3c77443bfb5b | 6 | * |
coisme | 0:3c77443bfb5b | 7 | * Example (tested on BLENano): |
coisme | 0:3c77443bfb5b | 8 | * @code |
coisme | 0:3c77443bfb5b | 9 | * #include "mbed.h" |
coisme | 0:3c77443bfb5b | 10 | * #include "LEDUtil.h" |
coisme | 0:3c77443bfb5b | 11 | * |
coisme | 0:3c77443bfb5b | 12 | * // LED is connected to P0_19 on BLENano and it lights up when the pin state is high. |
coisme | 1:220396a0cb8a | 13 | * #define LED_PIN_NAME P0_19 |
coisme | 0:3c77443bfb5b | 14 | * |
coisme | 0:3c77443bfb5b | 15 | * void main() { |
coisme | 0:3c77443bfb5b | 16 | * LEDUtil led1(P0_19, LEDUtil::HIGH_ON_LOW_OFF); |
coisme | 1:220396a0cb8a | 17 | * |
coisme | 0:3c77443bfb5b | 18 | * while(true) { |
coisme | 0:3c77443bfb5b | 19 | * led1.turnOn(); |
coisme | 0:3c77443bfb5b | 20 | * wait(0.5); |
coisme | 0:3c77443bfb5b | 21 | * led1.turnOff(); |
coisme | 0:3c77443bfb5b | 22 | * wait(0.5); |
coisme | 0:3c77443bfb5b | 23 | * } |
coisme | 0:3c77443bfb5b | 24 | * } |
coisme | 0:3c77443bfb5b | 25 | * @endcode |
coisme | 0:3c77443bfb5b | 26 | */ |
coisme | 1:220396a0cb8a | 27 | class LEDUtil |
coisme | 1:220396a0cb8a | 28 | { |
coisme | 0:3c77443bfb5b | 29 | |
coisme | 1:220396a0cb8a | 30 | public: |
coisme | 1:220396a0cb8a | 31 | |
coisme | 0:3c77443bfb5b | 32 | /** Polarity of LED's configuration. */ |
coisme | 0:3c77443bfb5b | 33 | typedef enum { |
coisme | 0:3c77443bfb5b | 34 | /** The target LED lights up when the pin level is high. */ |
coisme | 0:3c77443bfb5b | 35 | HIGH_ON_LOW_OFF, |
coisme | 0:3c77443bfb5b | 36 | /** The target LED lights up when the pin level is low. */ |
coisme | 1:220396a0cb8a | 37 | LOW_ON_HIGH_OFF |
coisme | 0:3c77443bfb5b | 38 | } Polarity; |
coisme | 1:220396a0cb8a | 39 | |
coisme | 0:3c77443bfb5b | 40 | /** |
coisme | 0:3c77443bfb5b | 41 | * Constructor. |
coisme | 0:3c77443bfb5b | 42 | * |
coisme | 0:3c77443bfb5b | 43 | * @param targetPinName pin name of the target pin which is coneccted with the target LED. |
coisme | 0:3c77443bfb5b | 44 | * @param targetPinPolarity pin polarity of the target. The default value is POLARITY_HIGH_ON_LOW_OFF |
coisme | 0:3c77443bfb5b | 45 | */ |
coisme | 0:3c77443bfb5b | 46 | LEDUtil(PinName targetPinName, Polarity targetPinPolarity = HIGH_ON_LOW_OFF); |
coisme | 0:3c77443bfb5b | 47 | |
coisme | 0:3c77443bfb5b | 48 | /** |
coisme | 0:3c77443bfb5b | 49 | * Turns on the LED. |
coisme | 0:3c77443bfb5b | 50 | */ |
coisme | 0:3c77443bfb5b | 51 | void turnOn(); |
coisme | 1:220396a0cb8a | 52 | |
coisme | 0:3c77443bfb5b | 53 | /** |
coisme | 0:3c77443bfb5b | 54 | * Turns off the LED. |
coisme | 0:3c77443bfb5b | 55 | */ |
coisme | 0:3c77443bfb5b | 56 | void turnOff(); |
coisme | 1:220396a0cb8a | 57 | |
coisme | 0:3c77443bfb5b | 58 | /** |
coisme | 0:3c77443bfb5b | 59 | * Returns if the LED is on. |
coisme | 0:3c77443bfb5b | 60 | * @return Returns true if the LED is on. Otherwise returns false. |
coisme | 0:3c77443bfb5b | 61 | */ |
coisme | 0:3c77443bfb5b | 62 | bool isOn(); |
coisme | 1:220396a0cb8a | 63 | |
coisme | 0:3c77443bfb5b | 64 | /** |
coisme | 0:3c77443bfb5b | 65 | * Returns if the LED is off. |
coisme | 0:3c77443bfb5b | 66 | * @return Returns true if the LED is off. Otherwise returns false. |
coisme | 0:3c77443bfb5b | 67 | */ |
coisme | 1:220396a0cb8a | 68 | bool isOff(); |
coisme | 1:220396a0cb8a | 69 | |
coisme | 0:3c77443bfb5b | 70 | /** |
coisme | 0:3c77443bfb5b | 71 | * Get polarity setting. |
coisme | 0:3c77443bfb5b | 72 | * @return polarity setting of this LED configuration. |
coisme | 0:3c77443bfb5b | 73 | */ |
coisme | 0:3c77443bfb5b | 74 | Polarity getPolarity(); |
coisme | 0:3c77443bfb5b | 75 | |
coisme | 0:3c77443bfb5b | 76 | |
coisme | 1:220396a0cb8a | 77 | private: |
coisme | 1:220396a0cb8a | 78 | |
coisme | 0:3c77443bfb5b | 79 | /* Holds the target LED's pin name. */ |
coisme | 0:3c77443bfb5b | 80 | PinName pinName; |
coisme | 1:220396a0cb8a | 81 | |
coisme | 0:3c77443bfb5b | 82 | /* Holds polarity of the target LED pin. */ |
coisme | 0:3c77443bfb5b | 83 | Polarity polarity; |
coisme | 1:220396a0cb8a | 84 | |
coisme | 0:3c77443bfb5b | 85 | /* State of the LED, i.e. on or off. */ |
coisme | 0:3c77443bfb5b | 86 | typedef enum {LED_ON, LED_OFF} LedState; |
coisme | 0:3c77443bfb5b | 87 | |
coisme | 0:3c77443bfb5b | 88 | /* |
coisme | 0:3c77443bfb5b | 89 | * Sets the LED state. |
coisme | 0:3c77443bfb5b | 90 | * @param state LED state to be set. |
coisme | 0:3c77443bfb5b | 91 | */ |
coisme | 0:3c77443bfb5b | 92 | void setLedState(LedState state); |
coisme | 1:220396a0cb8a | 93 | |
coisme | 0:3c77443bfb5b | 94 | /* |
coisme | 0:3c77443bfb5b | 95 | * Gets the LED state. |
coisme | 0:3c77443bfb5b | 96 | * @return Returns LED state. |
coisme | 0:3c77443bfb5b | 97 | */ |
coisme | 0:3c77443bfb5b | 98 | LedState getLedState(); |
coisme | 0:3c77443bfb5b | 99 | }; |
coisme | 0:3c77443bfb5b | 100 | |
coisme | 0:3c77443bfb5b | 101 | #endif |