Simple library for controlling LEDs. Turn them on & off, blink them at specified rates and toggle their output. Don't forget to add a timer for the LEDs to use. Documentation found in header file.
LEDControl.cpp@1:1f6bd61833a3, 2015-07-31 (annotated)
- Committer:
- wakestrap
- Date:
- Fri Jul 31 18:15:08 2015 +0000
- Revision:
- 1:1f6bd61833a3
- Parent:
- 0:8aa281e74b4a
First Commit, Basic library functions tested and working.
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| wakestrap | 0:8aa281e74b4a | 1 | #include "LEDControl.h" |
| wakestrap | 0:8aa281e74b4a | 2 | #include "mbed.h" |
| wakestrap | 0:8aa281e74b4a | 3 | |
| wakestrap | 0:8aa281e74b4a | 4 | LEDControl::LEDControl(PinName pin, Timer *time): |
| wakestrap | 0:8aa281e74b4a | 5 | _led(pin), |
| wakestrap | 0:8aa281e74b4a | 6 | _nextBlink( 0 ), |
| wakestrap | 0:8aa281e74b4a | 7 | _Time ( time ) |
| wakestrap | 0:8aa281e74b4a | 8 | { |
| wakestrap | 0:8aa281e74b4a | 9 | _led = 0; |
| wakestrap | 0:8aa281e74b4a | 10 | } |
| wakestrap | 0:8aa281e74b4a | 11 | |
| wakestrap | 0:8aa281e74b4a | 12 | void LEDControl::blink(float rate) { |
| wakestrap | 0:8aa281e74b4a | 13 | long _currentTime = _Time->read_ms(); |
| wakestrap | 1:1f6bd61833a3 | 14 | |
| wakestrap | 1:1f6bd61833a3 | 15 | if(_nextBlink - _currentTime > 5000) |
| wakestrap | 1:1f6bd61833a3 | 16 | { |
| wakestrap | 1:1f6bd61833a3 | 17 | _nextBlink = 0; |
| wakestrap | 1:1f6bd61833a3 | 18 | } |
| wakestrap | 1:1f6bd61833a3 | 19 | |
| wakestrap | 0:8aa281e74b4a | 20 | if(_currentTime - _nextBlink > 0) |
| wakestrap | 0:8aa281e74b4a | 21 | { |
| wakestrap | 1:1f6bd61833a3 | 22 | if(_currentTime > 30000) |
| wakestrap | 0:8aa281e74b4a | 23 | { |
| wakestrap | 0:8aa281e74b4a | 24 | _Time->reset(); |
| wakestrap | 0:8aa281e74b4a | 25 | _currentTime = 0; |
| wakestrap | 0:8aa281e74b4a | 26 | } |
| wakestrap | 0:8aa281e74b4a | 27 | _led = !_led; |
| wakestrap | 0:8aa281e74b4a | 28 | _nextBlink = 1000/rate + _currentTime; |
| wakestrap | 0:8aa281e74b4a | 29 | } |
| wakestrap | 0:8aa281e74b4a | 30 | } |
| wakestrap | 0:8aa281e74b4a | 31 | void LEDControl::off() { |
| wakestrap | 0:8aa281e74b4a | 32 | _led = 0; |
| wakestrap | 0:8aa281e74b4a | 33 | } |
| wakestrap | 0:8aa281e74b4a | 34 | |
| wakestrap | 0:8aa281e74b4a | 35 | void LEDControl::on() { |
| wakestrap | 0:8aa281e74b4a | 36 | _led = 1; |
| wakestrap | 0:8aa281e74b4a | 37 | } |
| wakestrap | 0:8aa281e74b4a | 38 | |
| wakestrap | 0:8aa281e74b4a | 39 | void LEDControl::toggle() { |
| wakestrap | 0:8aa281e74b4a | 40 | _led = !_led; |
| wakestrap | 0:8aa281e74b4a | 41 | } |