Can toggle digital output at the specified time intervals
Blinker.h@0:ed332628f798, 2017-01-07 (annotated)
- Committer:
- jurgis
- Date:
- Sat Jan 07 16:00:30 2017 +0000
- Revision:
- 0:ed332628f798
Blinker library initial commit
Who changed what in which revision?
User | Revision | Line number | New 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 |