// Menyertakan Library yang dibutuhkan
#include <Arduino.h>
// Variable untuk menyimpan waktu awal
volatile unsigned long currentTime = 0;
// Variable untuk menyimpan waktu berakhir
volatile bool timerExpired = false;
void setup() {
Serial.begin(9600); // Inisiali terminal monitor -> serial
currentTime = millis(); // set waktu awal ->GLOBAL VARIABLE
}
void loop() {
if (isTimerExpired(5000)) {
Serial.println("Waktu telah berlalu 5 detik!");
timerExpired = false;
}
}
// FUngsi reentrant yang dipanggil secara bersamaan
bool isTimerExpired(unsigned long duration) {
unsigned long elapsedTime = millis() - currentTime; // waktu yang telah berlalu
if (elapsedTime >= duration) {
currentTime = millis(); // reset waktu awal
timerExpired = true;
return true;
}
return false;
}