Can toggle digital output at the specified time intervals

Dependents:   TEST_with_daniel

Committer:
jurgis
Date:
Sat Jan 07 16:00:30 2017 +0000
Revision:
0:ed332628f798
Blinker library initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jurgis 0:ed332628f798 1 /**
jurgis 0:ed332628f798 2 * @file Blinker.h
jurgis 0:ed332628f798 3 * @brief Digital pin blinking library
jurgis 0:ed332628f798 4 * @author Jurgis Jurksta
jurgis 0:ed332628f798 5 * @version 1.0.0
jurgis 0:ed332628f798 6 * @see
jurgis 0:ed332628f798 7 *
jurgis 0:ed332628f798 8 * Copyright (c) 2017, Jurgis Jurksta
jurgis 0:ed332628f798 9 */
jurgis 0:ed332628f798 10
jurgis 0:ed332628f798 11 #ifndef JJ_BLINKER_H
jurgis 0:ed332628f798 12 #define JJ_BLINKER_H
jurgis 0:ed332628f798 13
jurgis 0:ed332628f798 14 #include "mbed.h"
jurgis 0:ed332628f798 15
jurgis 0:ed332628f798 16 namespace jj
jurgis 0:ed332628f798 17 {
jurgis 0:ed332628f798 18 /** Digital pin blinking class
jurgis 0:ed332628f798 19 */
jurgis 0:ed332628f798 20 class Blinker
jurgis 0:ed332628f798 21 {
jurgis 0:ed332628f798 22 public:
jurgis 0:ed332628f798 23 Blinker(DigitalOut& pin, Timer& timer);
jurgis 0:ed332628f798 24 void update();
jurgis 0:ed332628f798 25 void on();
jurgis 0:ed332628f798 26 void off();
jurgis 0:ed332628f798 27 void blink(int onTimeMs, int offTimeMs);
jurgis 0:ed332628f798 28 void blink(int timeMs);
jurgis 0:ed332628f798 29
jurgis 0:ed332628f798 30 private:
jurgis 0:ed332628f798 31 DigitalOut& _pin;
jurgis 0:ed332628f798 32 Timer& _timer;
jurgis 0:ed332628f798 33 bool _blink;
jurgis 0:ed332628f798 34 int _onTimeMs;
jurgis 0:ed332628f798 35 int _offTimeMs;
jurgis 0:ed332628f798 36 uint32_t _lastToggleTimeMs;
jurgis 0:ed332628f798 37 };
jurgis 0:ed332628f798 38 }
jurgis 0:ed332628f798 39
jurgis 0:ed332628f798 40 #endif