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 #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