Control Surface
main
MIDI Control Surface library for Arduino
Toggle main menu visibility
Loading...
Searching...
No Matches
src
AH
Timing
MillisMicrosTimer.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include <
AH/Settings/NamespaceSettings.hpp
>
4
5
#include <
AH/Arduino-Wrapper.h
>
// millis, micros
6
7
BEGIN_AH_NAMESPACE
8
11
13
using
timefunction
=
unsigned
long (*)();
14
22
template
<timefunction time = micros>
23
class
Timer
{
24
public
:
30
Timer
(
unsigned
long
interval
) :
interval
(
interval
) {
31
#ifdef ARDUINO
32
begin
();
33
#endif
34
}
35
36
void
begin
() {
previous
= time() -
interval
; }
38
void
beginNextPeriod
() {
previous
= time(); }
40
explicit
operator
bool() {
41
auto
now = time();
42
if
(now -
previous
>=
interval
) {
43
previous
+=
interval
;
44
return
true
;
45
}
46
return
false
;
47
}
48
50
unsigned
long
getInterval
()
const
{
return
interval
; }
52
void
setInterval
(
unsigned
long
interval
) { this->interval =
interval
; }
53
54
private
:
55
unsigned
long
interval
;
56
unsigned
long
previous
= 0;
57
};
58
60
61
END_AH_NAMESPACE
NamespaceSettings.hpp
END_AH_NAMESPACE
#define END_AH_NAMESPACE
Definition
AH/Settings/NamespaceSettings.hpp:14
BEGIN_AH_NAMESPACE
#define BEGIN_AH_NAMESPACE
Definition
AH/Settings/NamespaceSettings.hpp:11
Arduino-Wrapper.h
::Timer
A class for easily managing timed events.
Definition
MillisMicrosTimer.hpp:23
AH::Timer::getInterval
unsigned long getInterval() const
Get the interval of the timer.
Definition
MillisMicrosTimer.hpp:50
AH::Timer::Timer
Timer(unsigned long interval)
Constructor.
Definition
MillisMicrosTimer.hpp:30
AH::Timer::setInterval
void setInterval(unsigned long interval)
Set the interval of the timer.
Definition
MillisMicrosTimer.hpp:52
AH::Timer::beginNextPeriod
void beginNextPeriod()
Initialize or reset the timer. The timer will fire after one period.
Definition
MillisMicrosTimer.hpp:38
AH::Timer::interval
unsigned long interval
Definition
MillisMicrosTimer.hpp:55
AH::Timer::begin
void begin()
Initialize or reset the timer. The timer will fire immediately.
Definition
MillisMicrosTimer.hpp:36
AH::Timer::previous
unsigned long previous
Definition
MillisMicrosTimer.hpp:56
AH::timefunction
unsigned long(*)() timefunction
A function type that returns a time value.
Definition
MillisMicrosTimer.hpp:13
Generated by
1.17.0