This library is used to dirve a led with pluse for a duration and periodic toggle. Version 1.0
Led.h@0:5851c2ded0ed, 2015-12-24 (annotated)
- Committer:
- bborredon
- Date:
- Thu Dec 24 12:32:33 2015 +0000
- Revision:
- 0:5851c2ded0ed
Led library version 1.0
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
bborredon | 0:5851c2ded0ed | 1 | #ifndef __Led_H__ |
bborredon | 0:5851c2ded0ed | 2 | #define __Led_H__ |
bborredon | 0:5851c2ded0ed | 3 | |
bborredon | 0:5851c2ded0ed | 4 | /*********************************************************** |
bborredon | 0:5851c2ded0ed | 5 | Author: Bernard Borredon |
bborredon | 0:5851c2ded0ed | 6 | Date : 24 decembre 2015 |
bborredon | 0:5851c2ded0ed | 7 | Version: 1.0 |
bborredon | 0:5851c2ded0ed | 8 | - creation. |
bborredon | 0:5851c2ded0ed | 9 | ************************************************************/ |
bborredon | 0:5851c2ded0ed | 10 | |
bborredon | 0:5851c2ded0ed | 11 | #include "mbed.h" |
bborredon | 0:5851c2ded0ed | 12 | |
bborredon | 0:5851c2ded0ed | 13 | /** Led class |
bborredon | 0:5851c2ded0ed | 14 | * Used to drive a led : on, on for a duration, off, toggle, toggle with a period. |
bborredon | 0:5851c2ded0ed | 15 | * |
bborredon | 0:5851c2ded0ed | 16 | * @code |
bborredon | 0:5851c2ded0ed | 17 | * #include "Led.h" |
bborredon | 0:5851c2ded0ed | 18 | * |
bborredon | 0:5851c2ded0ed | 19 | * Led led1(LED1); // LPC1768 LED1 |
bborredon | 0:5851c2ded0ed | 20 | * Led led2(LED2); // LPC1768 LED2 |
bborredon | 0:5851c2ded0ed | 21 | * Led led3(LED3); // LPC1768 LED3 |
bborredon | 0:5851c2ded0ed | 22 | * Led led4(LED4); // LPC1768 LED4 |
bborredon | 0:5851c2ded0ed | 23 | * |
bborredon | 0:5851c2ded0ed | 24 | * int main() |
bborredon | 0:5851c2ded0ed | 25 | * { |
bborredon | 0:5851c2ded0ed | 26 | * int32_t count = 0; |
bborredon | 0:5851c2ded0ed | 27 | |
bborredon | 0:5851c2ded0ed | 28 | * // Light on LED1 |
bborredon | 0:5851c2ded0ed | 29 | * led1.on(); |
bborredon | 0:5851c2ded0ed | 30 | * |
bborredon | 0:5851c2ded0ed | 31 | * // Toggle LED2 with a 2000ms period |
bborredon | 0:5851c2ded0ed | 32 | * led2.toggle(2000); |
bborredon | 0:5851c2ded0ed | 33 | * |
bborredon | 0:5851c2ded0ed | 34 | * // Toggle LED3 with a 4000ms period |
bborredon | 0:5851c2ded0ed | 35 | * led3.toggle(4000,true); |
bborredon | 0:5851c2ded0ed | 36 | * |
bborredon | 0:5851c2ded0ed | 37 | * while(1) { |
bborredon | 0:5851c2ded0ed | 38 | * // Pulse LED4 for 1000ms each 10s |
bborredon | 0:5851c2ded0ed | 39 | * led4.pulse(1000); |
bborredon | 0:5851c2ded0ed | 40 | * count++; |
bborredon | 0:5851c2ded0ed | 41 | * wait(10.0); |
bborredon | 0:5851c2ded0ed | 42 | * |
bborredon | 0:5851c2ded0ed | 43 | * // After 60s stop toggle LED2 |
bborredon | 0:5851c2ded0ed | 44 | * if(count == 6) |
bborredon | 0:5851c2ded0ed | 45 | * led2.toggle(0,false); |
bborredon | 0:5851c2ded0ed | 46 | * } |
bborredon | 0:5851c2ded0ed | 47 | * return(0); |
bborredon | 0:5851c2ded0ed | 48 | * } |
bborredon | 0:5851c2ded0ed | 49 | * @endcode |
bborredon | 0:5851c2ded0ed | 50 | */ |
bborredon | 0:5851c2ded0ed | 51 | |
bborredon | 0:5851c2ded0ed | 52 | /** LedBase class |
bborredon | 0:5851c2ded0ed | 53 | * Used to drive a led : on, off, toggle. |
bborredon | 0:5851c2ded0ed | 54 | * |
bborredon | 0:5851c2ded0ed | 55 | */ |
bborredon | 0:5851c2ded0ed | 56 | |
bborredon | 0:5851c2ded0ed | 57 | class LedBase { |
bborredon | 0:5851c2ded0ed | 58 | public : |
bborredon | 0:5851c2ded0ed | 59 | /** Class constructor : create and initialize LedBase instance |
bborredon | 0:5851c2ded0ed | 60 | * @param pin : name of the pin connected to the led (PinName) |
bborredon | 0:5851c2ded0ed | 61 | * @returns none |
bborredon | 0:5851c2ded0ed | 62 | */ |
bborredon | 0:5851c2ded0ed | 63 | LedBase(PinName pin); |
bborredon | 0:5851c2ded0ed | 64 | |
bborredon | 0:5851c2ded0ed | 65 | /** Toggle led |
bborredon | 0:5851c2ded0ed | 66 | * @param none |
bborredon | 0:5851c2ded0ed | 67 | * @returns none |
bborredon | 0:5851c2ded0ed | 68 | */ |
bborredon | 0:5851c2ded0ed | 69 | void toggle(void); |
bborredon | 0:5851c2ded0ed | 70 | |
bborredon | 0:5851c2ded0ed | 71 | /** Light on led |
bborredon | 0:5851c2ded0ed | 72 | * @param none |
bborredon | 0:5851c2ded0ed | 73 | * @returns none |
bborredon | 0:5851c2ded0ed | 74 | */ |
bborredon | 0:5851c2ded0ed | 75 | void on(void); |
bborredon | 0:5851c2ded0ed | 76 | |
bborredon | 0:5851c2ded0ed | 77 | /** Light off led |
bborredon | 0:5851c2ded0ed | 78 | * @param none |
bborredon | 0:5851c2ded0ed | 79 | * @returns none |
bborredon | 0:5851c2ded0ed | 80 | */ |
bborredon | 0:5851c2ded0ed | 81 | void off(void); |
bborredon | 0:5851c2ded0ed | 82 | |
bborredon | 0:5851c2ded0ed | 83 | /** Get led status (on or off) |
bborredon | 0:5851c2ded0ed | 84 | * @param none |
bborredon | 0:5851c2ded0ed | 85 | * @returns led status (bool) |
bborredon | 0:5851c2ded0ed | 86 | * false : led is off |
bborredon | 0:5851c2ded0ed | 87 | * ture : led is on |
bborredon | 0:5851c2ded0ed | 88 | */ |
bborredon | 0:5851c2ded0ed | 89 | bool isOn(void); |
bborredon | 0:5851c2ded0ed | 90 | |
bborredon | 0:5851c2ded0ed | 91 | protected : |
bborredon | 0:5851c2ded0ed | 92 | DigitalOut _pin; |
bborredon | 0:5851c2ded0ed | 93 | bool _isOn; |
bborredon | 0:5851c2ded0ed | 94 | }; |
bborredon | 0:5851c2ded0ed | 95 | |
bborredon | 0:5851c2ded0ed | 96 | class Led : public LedBase { |
bborredon | 0:5851c2ded0ed | 97 | public : |
bborredon | 0:5851c2ded0ed | 98 | /** Class constructor : create and initialize Led instance |
bborredon | 0:5851c2ded0ed | 99 | * @param pin : name of the pin connected to the led (PinName) |
bborredon | 0:5851c2ded0ed | 100 | * @returns none |
bborredon | 0:5851c2ded0ed | 101 | */ |
bborredon | 0:5851c2ded0ed | 102 | Led(PinName pin); |
bborredon | 0:5851c2ded0ed | 103 | |
bborredon | 0:5851c2ded0ed | 104 | /** Periodically toggle led |
bborredon | 0:5851c2ded0ed | 105 | * @param period : toggle period in ms (uinit16_t) |
bborredon | 0:5851c2ded0ed | 106 | * @param mode : stop auto toggle if false (bool) |
bborredon | 0:5851c2ded0ed | 107 | * @returns none |
bborredon | 0:5851c2ded0ed | 108 | */ |
bborredon | 0:5851c2ded0ed | 109 | void toggle(uint16_t period, bool mode = true); |
bborredon | 0:5851c2ded0ed | 110 | |
bborredon | 0:5851c2ded0ed | 111 | /** Light on led for a duration |
bborredon | 0:5851c2ded0ed | 112 | * @param time : light on duration in ms (uint16_t) |
bborredon | 0:5851c2ded0ed | 113 | * @returns none |
bborredon | 0:5851c2ded0ed | 114 | */ |
bborredon | 0:5851c2ded0ed | 115 | virtual void pulse(uint16_t time); |
bborredon | 0:5851c2ded0ed | 116 | |
bborredon | 0:5851c2ded0ed | 117 | private : |
bborredon | 0:5851c2ded0ed | 118 | LedBase *_led; |
bborredon | 0:5851c2ded0ed | 119 | Timeout _tPulse; |
bborredon | 0:5851c2ded0ed | 120 | Ticker _tToggle; |
bborredon | 0:5851c2ded0ed | 121 | void atTimer(void); |
bborredon | 0:5851c2ded0ed | 122 | void toggleCB(void); |
bborredon | 0:5851c2ded0ed | 123 | }; |
bborredon | 0:5851c2ded0ed | 124 | |
bborredon | 0:5851c2ded0ed | 125 | #endif |