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.

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?

UserRevisionLine numberNew 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 }