Timer
📅 27. 2. 2024
Jednoduchá knihovna pro časování v milisekundách, funguje na Atmega328P / Arduino UNO, s drobnými modifikacemi ji lze použít na různých hodinách mikrokontroleru a pro různá podobná AVR (úpravy lze provést podle dokumentace, link dole). K updatování času používá interrupty, může běžet bez přetečení skoro 50 dní.
Features
Init
void Init(void);
Inicializace, tuto funkci je potřeba zavolat jako úplně první.
Get
unsigned long Get(void);
Vrací čas v ms od inicializace.
Reset
void Reset(void);
Resetuje naměřený čas na nulu.
Ukázka použití
#include "timer.h"
#define DELAY 200 // v ms
Timer timer;
unsigned long lastReading;
int main(void)
{
// setup timeru
timer.Init();
unsigned long lastReading = 0;
unsigned long currentTime = 0;
// povoleni interruptu
sei();
// hlavni loop
while (1)
{
// cas prave ted
currentTime = timer.Get();
// pokud ubehlo dost casu
if (currentTime - lastReading > DELAY) {
/*
delej neco (treba blikej LED)
*/
// reset
lastReading = currentTime;
}
}
}