More comments, cleanups and added LICENSE and README.

This commit is contained in:
Johannes Findeisen 2022-11-29 21:06:25 +01:00
commit 8c4c00ae0a
5 changed files with 72 additions and 26 deletions

View file

@ -0,0 +1,44 @@
#include <Blinker.h>
Blinker::Blinker(int pin) {
_blinkPin = pin;
_highDelay = 500;
_lowDelay = 500;
_lastBlink = 0;
_blinkState = false;
_running = false;
}
void Blinker::setDelay(uint32_t d) {
_highDelay = d;
_lowDelay = d;
}
void Blinker::setDelay(uint32_t h, uint32_t l) {
_highDelay = h;
_lowDelay = l;
}
void Blinker::blink() {
uint32_t diff = millis() - _lastBlink;
uint32_t blinkDelay = _blinkState ? _highDelay : _lowDelay;
if (diff >= blinkDelay) {
_lastBlink = millis() - (diff - blinkDelay); // Account for any delay in calling blink
_blinkState = !_blinkState;
if (_running) {
digitalWrite(_blinkPin, _blinkState ? HIGH : LOW);
}
}
}
void Blinker::start() {
pinMode(_blinkPin, OUTPUT);
_running = true;
_lastBlink = millis();
}
void Blinker::stop(bool idleState) {
_running = false;
_blinkState = idleState;
digitalWrite(_blinkPin, _blinkState);
}

View file

@ -0,0 +1,28 @@
#ifndef _BLINKER_H
#define _BLINKER_H
#if (ARDUINO >= 100)
# include <Arduino.h>
#else
# include <WProgram.h>
#endif
class Blinker {
private:
int _blinkPin;
uint32_t _highDelay;
uint32_t _lowDelay;
uint32_t _lastBlink;
boolean _blinkState;
boolean _running;
public:
Blinker(int pin);
void setDelay(uint32_t d);
void setDelay(uint32_t h, uint32_t l);
void blink();
void start();
void stop(bool idleState = LOW);
};
#endif