A simple library to handle LEDs a little bit easier.
LEDUtil.h@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 | #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 | 0:3c77443bfb5b | 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 | 0:3c77443bfb5b | 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 | 0:3c77443bfb5b | 27 | class LEDUtil { |
coisme | 0:3c77443bfb5b | 28 | |
coisme | 0:3c77443bfb5b | 29 | public: |
coisme | 0:3c77443bfb5b | 30 | |
coisme | 0:3c77443bfb5b | 31 | /** Polarity of LED's configuration. */ |
coisme | 0:3c77443bfb5b | 32 | typedef enum { |
coisme | 0:3c77443bfb5b | 33 | /** The target LED lights up when the pin level is high. */ |
coisme | 0:3c77443bfb5b | 34 | HIGH_ON_LOW_OFF, |
coisme | 0:3c77443bfb5b | 35 | /** The target LED lights up when the pin level is low. */ |
coisme | 0:3c77443bfb5b | 36 | LOW_ON_HIGH_OFF |
coisme | 0:3c77443bfb5b | 37 | } Polarity; |
coisme | 0:3c77443bfb5b | 38 | |
coisme | 0:3c77443bfb5b | 39 | /** |
coisme | 0:3c77443bfb5b | 40 | * Constructor. |
coisme | 0:3c77443bfb5b | 41 | * |
coisme | 0:3c77443bfb5b | 42 | * @param targetPinName pin name of the target pin which is coneccted with the target LED. |
coisme | 0:3c77443bfb5b | 43 | * @param targetPinPolarity pin polarity of the target. The default value is POLARITY_HIGH_ON_LOW_OFF |
coisme | 0:3c77443bfb5b | 44 | */ |
coisme | 0:3c77443bfb5b | 45 | LEDUtil(PinName targetPinName, Polarity targetPinPolarity = HIGH_ON_LOW_OFF); |
coisme | 0:3c77443bfb5b | 46 | |
coisme | 0:3c77443bfb5b | 47 | /** |
coisme | 0:3c77443bfb5b | 48 | * Turns on the LED. |
coisme | 0:3c77443bfb5b | 49 | */ |
coisme | 0:3c77443bfb5b | 50 | void turnOn(); |
coisme | 0:3c77443bfb5b | 51 | |
coisme | 0:3c77443bfb5b | 52 | /** |
coisme | 0:3c77443bfb5b | 53 | * Turns off the LED. |
coisme | 0:3c77443bfb5b | 54 | */ |
coisme | 0:3c77443bfb5b | 55 | void turnOff(); |
coisme | 0:3c77443bfb5b | 56 | |
coisme | 0:3c77443bfb5b | 57 | /** |
coisme | 0:3c77443bfb5b | 58 | * Returns if the LED is on. |
coisme | 0:3c77443bfb5b | 59 | * @return Returns true if the LED is on. Otherwise returns false. |
coisme | 0:3c77443bfb5b | 60 | */ |
coisme | 0:3c77443bfb5b | 61 | bool isOn(); |
coisme | 0:3c77443bfb5b | 62 | |
coisme | 0:3c77443bfb5b | 63 | /** |
coisme | 0:3c77443bfb5b | 64 | * Returns if the LED is off. |
coisme | 0:3c77443bfb5b | 65 | * @return Returns true if the LED is off. Otherwise returns false. |
coisme | 0:3c77443bfb5b | 66 | */ |
coisme | 0:3c77443bfb5b | 67 | bool isOff(); |
coisme | 0:3c77443bfb5b | 68 | |
coisme | 0:3c77443bfb5b | 69 | /** |
coisme | 0:3c77443bfb5b | 70 | * Get polarity setting. |
coisme | 0:3c77443bfb5b | 71 | * @return polarity setting of this LED configuration. |
coisme | 0:3c77443bfb5b | 72 | */ |
coisme | 0:3c77443bfb5b | 73 | Polarity getPolarity(); |
coisme | 0:3c77443bfb5b | 74 | |
coisme | 0:3c77443bfb5b | 75 | |
coisme | 0:3c77443bfb5b | 76 | private: |
coisme | 0:3c77443bfb5b | 77 | |
coisme | 0:3c77443bfb5b | 78 | /* Holds the target LED's pin name. */ |
coisme | 0:3c77443bfb5b | 79 | PinName pinName; |
coisme | 0:3c77443bfb5b | 80 | |
coisme | 0:3c77443bfb5b | 81 | /* Holds polarity of the target LED pin. */ |
coisme | 0:3c77443bfb5b | 82 | Polarity polarity; |
coisme | 0:3c77443bfb5b | 83 | |
coisme | 0:3c77443bfb5b | 84 | /* State of the LED, i.e. on or off. */ |
coisme | 0:3c77443bfb5b | 85 | typedef enum {LED_ON, LED_OFF} LedState; |
coisme | 0:3c77443bfb5b | 86 | |
coisme | 0:3c77443bfb5b | 87 | /* |
coisme | 0:3c77443bfb5b | 88 | * Sets the LED state. |
coisme | 0:3c77443bfb5b | 89 | * @param state LED state to be set. |
coisme | 0:3c77443bfb5b | 90 | */ |
coisme | 0:3c77443bfb5b | 91 | void setLedState(LedState state); |
coisme | 0:3c77443bfb5b | 92 | |
coisme | 0:3c77443bfb5b | 93 | /* |
coisme | 0:3c77443bfb5b | 94 | * Gets the LED state. |
coisme | 0:3c77443bfb5b | 95 | * @return Returns LED state. |
coisme | 0:3c77443bfb5b | 96 | */ |
coisme | 0:3c77443bfb5b | 97 | LedState getLedState(); |
coisme | 0:3c77443bfb5b | 98 | }; |
coisme | 0:3c77443bfb5b | 99 | |
coisme | 0:3c77443bfb5b | 100 | #endif |