Dependents:
TEST_with_daniel
Revision 0:ed332628f798, committed 2017-01-07
- Comitter:
- jurgis
- Date:
- Sat Jan 07 16:00:30 2017 +0000
- Commit message:
- Blinker library initial commit
Changed in this revision
diff -r 000000000000 -r ed332628f798 Blinker.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Blinker.cpp Sat Jan 07 16:00:30 2017 +0000
@@ -0,0 +1,66 @@
+/**
+ * @file Blinker.cpp
+ * @brief Digital pin blinking library
+ * @author Jurgis Jurksta
+ * @version 1.0.0
+ * @see
+ *
+ * Copyright (c) 2017, Jurgis Jurksta
+ */
+
+#include "Blinker.h"
+
+namespace jj
+{
+ Blinker::Blinker(DigitalOut& pin, Timer& timer)
+ : _pin(pin), _timer(timer)
+ {
+ _blink = false;
+ }
+
+
+ void Blinker::update()
+ {
+ // do not proceed if blinking is not allowed
+ if (_blink == false)
+ return;
+
+ bool pinIsOn = _pin == 1;
+ int toggleTimeMs = pinIsOn ? _onTimeMs : _offTimeMs;
+
+ if (_timer.read_ms() - _lastToggleTimeMs >= toggleTimeMs)
+ {
+ _lastToggleTimeMs = _timer.read_ms();
+ _pin = !_pin;
+ }
+ }
+
+
+ void Blinker::on()
+ {
+ _blink = true;
+ _pin = 1;
+ }
+
+
+ void Blinker::off()
+ {
+ _blink = false;
+ _pin = 0;
+ }
+
+
+ void Blinker::blink(int onTimeMs, int offTimeMs)
+ {
+ _blink = true;
+ _onTimeMs = onTimeMs;
+ _offTimeMs = offTimeMs;
+ _lastToggleTimeMs = _timer.read_ms();
+ }
+
+
+ void Blinker::blink(int timeMs)
+ {
+ blink(timeMs, timeMs);
+ }
+}
diff -r 000000000000 -r ed332628f798 Blinker.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Blinker.h Sat Jan 07 16:00:30 2017 +0000
@@ -0,0 +1,40 @@
+/**
+ * @file Blinker.h
+ * @brief Digital pin blinking library
+ * @author Jurgis Jurksta
+ * @version 1.0.0
+ * @see
+ *
+ * Copyright (c) 2017, Jurgis Jurksta
+ */
+
+#ifndef JJ_BLINKER_H
+#define JJ_BLINKER_H
+
+#include "mbed.h"
+
+namespace jj
+{
+ /** Digital pin blinking class
+ */
+ class Blinker
+ {
+ public:
+ Blinker(DigitalOut& pin, Timer& timer);
+ void update();
+ void on();
+ void off();
+ void blink(int onTimeMs, int offTimeMs);
+ void blink(int timeMs);
+
+ private:
+ DigitalOut& _pin;
+ Timer& _timer;
+ bool _blink;
+ int _onTimeMs;
+ int _offTimeMs;
+ uint32_t _lastToggleTimeMs;
+ };
+}
+
+#endif