Skip to content

Commit 4efe30f

Browse files
committed
Library ready to use
1 parent 37808b1 commit 4efe30f

File tree

7 files changed

+69
-41
lines changed

7 files changed

+69
-41
lines changed

examples/Blink/Blink.ino

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
/*
22
DelayFunctions, is designed for managing multiple software timers in Arduino projects.
3+
4+
In this example, the timer function is demonstrated by blinking an LED.
5+
36
https://github.com/jaakka/DelayFunctionsArduino
4-
Created by Jaakko Talvitie 18.11.2024
7+
Library created by Jaakko Talvitie 18.11.2024
58
*/
69

710
#include <DelayFunctions.h>

examples/DelaySwapWithBlinkExample/DelaySwapWithBlinkExample.ino

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
/*
2+
DelayFunctions, is designed for managing multiple software timers in Arduino projects.
3+
4+
In this example, it is demonstrated how you can change the speed of the timer function. (after start)
5+
6+
https://github.com/jaakka/DelayFunctionsArduino
7+
Library created by Jaakko Talvitie 18.11.2024
8+
*/
9+
110
#include <DelayFunctions.h>
211

312
//FOR ARDUINO #define ledPin = LED_BUILTIN;

examples/FourFunctions/FourFunctions.ino

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,13 @@
1+
/*
2+
DelayFunctions, is designed for managing multiple software timers in Arduino projects.
3+
4+
In this example, multiple timed functions are demonstrated,
5+
and a message is printed to the Serial Monitor whenever one of them executes.
6+
7+
https://github.com/jaakka/DelayFunctionsArduino
8+
Library created by Jaakko Talvitie 18.11.2024
9+
*/
10+
111
#include <DelayFunctions.h>
212

313
//save memory with correct count of timers.

examples/OneFunction/OneFunction.ino

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,13 @@
1+
/*
2+
DelayFunctions, is designed for managing multiple software timers in Arduino projects.
3+
4+
In this example, the timer function is demonstrated by printing a message
5+
to the Serial Monitor every second.
6+
7+
https://github.com/jaakka/DelayFunctionsArduino
8+
Library created by Jaakko Talvitie 18.11.2024
9+
*/
10+
111
#include <DelayFunctions.h>
212

313
//save memory with correct count of timers.

library.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ version=0.0.1
33
author=Jaakko Talvitie
44
maintainer=Jaakko Talvitie<jaska.talvitie@gmail.com>
55
sentence=Simple delay functions.
6-
paragraph=Simple delay functions for arduino, with out full code pause.
6+
paragraph=Simple delay functions for arduino, without full code pause.
77
category=SmartCode
88
url=https://github.com/jaakka
99
architectures=avr,esp32

src/DelayFunctions.cpp

Lines changed: 17 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,86 +1,78 @@
1+
/*
2+
https://github.com/jaakka/DelayFunctionsArduino
3+
Library created by Jaakko Talvitie 18.11.2024
4+
*/
5+
16
#include "Arduino.h"
27
#include "DelayFunctions.h"
38

4-
// Konstruktori, joka alustaa ajastimien määrän ja varaa muistia
59
DelayFunctions::DelayFunctions(int argTimersCount)
610
{
7-
_maxTimersCount = argTimersCount; // Asetetaan enimmäismäärä
8-
timeFunctions = new DelayFunction[_maxTimersCount]; // Dynaaminen muistivaraus ajastimille
9-
_timersCount = 0; // Alustetaan ajastimien määrä nollaksi
11+
_maxTimersCount = argTimersCount;
12+
timeFunctions = new DelayFunction[_maxTimersCount];
13+
_timersCount = 0;
1014
}
1115

12-
// Destruktori, joka vapauttaa dynaamisesti varatun muistin
1316
DelayFunctions::~DelayFunctions()
1417
{
15-
delete[] timeFunctions; // Vapautetaan muistivaraus
18+
delete[] timeFunctions;
1619
}
1720

18-
// Päivittää ajastimen aikarajan
1921
void DelayFunctions::updateTime(void (*cb)(), unsigned long interval)
2022
{
2123
for (int i = 0; i < _timersCount; i++)
2224
{
23-
if (timeFunctions[i].callback == cb) // Jos callback-muuttuja vastaa
25+
if (timeFunctions[i].callback == cb)
2426
{
25-
timeFunctions[i].interval = interval; // Päivitetään ajastimen interval
27+
timeFunctions[i].interval = interval;
2628
}
2729
}
2830
}
2931

30-
// Hankkii ajastimen aikarajan
3132
unsigned long DelayFunctions::getTime(void (*cb)())
3233
{
3334
for (int i = 0; i < _timersCount; i++)
3435
{
35-
if (timeFunctions[i].callback == cb) // Jos callback-muuttuja vastaa
36+
if (timeFunctions[i].callback == cb)
3637
{
37-
return timeFunctions[i].interval; // Palautetaan ajastimen interval
38+
return timeFunctions[i].interval;
3839
}
3940
}
4041
return -1;
4142
}
4243

43-
// Lisää uuden ajastimen ajastinluetteloon
4444
void DelayFunctions::NewDelayFunction(unsigned long interval, void (*cb)())
4545
{
4646
if (_timersCount < _maxTimersCount)
4747
{
4848
timeFunctions[_timersCount] = DelayFunction(cb, interval);
49-
timeFunctions[_timersCount].lastRun = millis(); // Alustetaan viimeinen suoritushetki
49+
timeFunctions[_timersCount].lastRun = millis();
5050
_timersCount++;
5151
}
52-
else
53-
{
54-
Serial.println("Max timers reached! Cannot add more timers.");
55-
}
5652
}
5753

58-
// Kutsutaan pääloopissa ja tarkistaa ajastimet
5954
void DelayFunctions::loop()
6055
{
61-
unsigned long currentMillis = millis(); // Haetaan nykyinen aika
56+
unsigned long currentMillis = millis();
6257
for (int i = 0; i < _timersCount; i++)
6358
{
64-
// Tarkistetaan, onko ajastin ehtinyt aikarajan
6559
if (currentMillis - timeFunctions[i].lastRun >= timeFunctions[i].interval)
6660
{
6761
if (timeFunctions[i].callback != nullptr)
6862
{
69-
timeFunctions[i].callback(); // Kutsutaan ajastimen callback
70-
timeFunctions[i].lastRun = currentMillis; // Päivitetään viimeinen suoritushetki
63+
timeFunctions[i].callback();
64+
timeFunctions[i].lastRun = currentMillis;
7165
}
7266
}
7367
}
7468
}
7569

76-
// DelayFunction-konstruktori, joka alustaa ajastimen
7770
DelayFunction::DelayFunction()
7871
{
7972
interval = 0;
8073
callback = nullptr;
8174
}
8275

83-
// Parametrillinen konstruktori, joka asettaa callbackin ja intervalin
8476
DelayFunction::DelayFunction(void (*_callback)(), unsigned long _interval)
8577
{
8678
callback = _callback;

src/DelayFunctions.h

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,37 @@
1+
/*
2+
https://github.com/jaakka/DelayFunctionsArduino
3+
Library created by Jaakko Talvitie 18.11.2024
4+
*/
5+
16
#ifndef DELAYFUNCTIONS_H
27
#define DELAYFUNCTIONS_H
38

49
#include "Arduino.h"
510

6-
// DelayFunction-luokka, joka edustaa yksittäistä ajastinta
711
class DelayFunction
812
{
913
public:
10-
DelayFunction(); // Konstruktori, joka alustaa ajastimen
11-
DelayFunction(void (*_callback)(), unsigned long _interval); // Parametrillinen konstruktori
14+
DelayFunction();
15+
DelayFunction(void (*_callback)(), unsigned long _interval);
1216
unsigned long lastRun;
13-
unsigned long interval; // Ajastimen aikaraja
14-
void (*callback)(); // Callback-funktion osoitin
17+
unsigned long interval;
18+
void (*callback)();
1519
};
1620

1721
class DelayFunctions
1822
{
1923
public:
20-
DelayFunctions(int timersCount); // Konstruktori, joka alustaa ajastimien määrän
21-
~DelayFunctions(); // Destruktori, joka vapauttaa dynaamisen muistin
22-
void NewDelayFunction(unsigned long interval, void (*cb)()); // Lisää uuden ajastimen
23-
void loop(); // Pääloopin metodi, joka käsittelee ajastimet
24-
void updateTime(void (*cb)(), unsigned long interval); // Päivittää ajastimen ajan
25-
unsigned long getTime(void (*cb)()); // Hankkii ajastimen ajan
24+
DelayFunctions(int timersCount);
25+
~DelayFunctions();
26+
void NewDelayFunction(unsigned long interval, void (*cb)());
27+
void loop();
28+
void updateTime(void (*cb)(), unsigned long interval);
29+
unsigned long getTime(void (*cb)());
2630

2731
private:
28-
int _maxTimersCount; // Ajastimien enimmäismäärä
29-
int _timersCount; // Käytössä olevien ajastimien määrä
30-
DelayFunction* timeFunctions; // Dynaamisesti varattu taulukko ajastimille
32+
int _maxTimersCount;
33+
int _timersCount;
34+
DelayFunction* timeFunctions;
3135
};
3236

3337
#endif

0 commit comments

Comments
 (0)