const unsigned int interval = 1500;
void setup() {
Serial.begin(115200);
}
unsigned long fastMillis ()
{
unsigned long k = micros();
return k >> 6;
}
unsigned long now;
void loop() {
now = fastMillis();
setToMillis();
addToMillis();
theBlocker();
}
void setToMillis(){
static unsigned long previousMillis = now;
unsigned long currentMillis = now;
static unsigned int count = 0;
if (currentMillis - previousMillis >= interval){
count++;
Serial.print("setToMillis : ");
Serial.print(currentMillis);
Serial.print(" count : ");
Serial.print(count);
Serial.print(" Elapsed : ");
Serial.print(currentMillis - previousMillis);
Serial.println();
previousMillis = currentMillis;
}
}
void addToMillis(){
static unsigned long previousMillis = now;
static unsigned long actualPreviousMillis;
unsigned long currentMillis = now;
static unsigned int count = 0;
if (currentMillis - previousMillis >= interval){
count++;
Serial.print("addToMillis : ");
Serial.print(currentMillis);
Serial.print(" count : ");
Serial.print(count);
Serial.print(" Elapsed : ");
Serial.print(currentMillis - actualPreviousMillis);
if(currentMillis - actualPreviousMillis < interval){
Serial.print(" <-- Short Inverval!");
}
Serial.println();
previousMillis += interval;
actualPreviousMillis = currentMillis;
}
}
void theBlocker(){
unsigned long start = fastMillis();
while (fastMillis() - start < 600);
}