More comments, cleanups and added LICENSE and README.
This commit is contained in:
parent
96d4a99aec
commit
8c4c00ae0a
5 changed files with 72 additions and 26 deletions
44
Digispark_Passkey/Blinker/src/Blinker.cpp
Normal file
44
Digispark_Passkey/Blinker/src/Blinker.cpp
Normal 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);
|
||||
}
|
||||
28
Digispark_Passkey/Blinker/src/Blinker.h
Normal file
28
Digispark_Passkey/Blinker/src/Blinker.h
Normal 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue