[Projekt] INTERVAL Ersatzstoff

ElEspanol:
Kann aber dann nicht stimmen.

Das würde ja puls==!millis()%1000 entsprechen, müsste also genau treffen. Tatsächlich funktioniert es aber wie ich gedacht habe.

#include "CombieTimer.h"

Combie::Pulsator puls(1);

void setup()
{
  pinMode(LED_BUILTIN,OUTPUT);
}

void loop()
{
  if(puls)
  {
    digitalWrite(LED_BUILTIN,!digitalRead(LED_BUILTIN));
    puls.setInterval(digitalRead(LED_BUILTIN) ? 1000 : 500);
  }

delay(157);  //soll den Rest des Programmablaufs simulieren. 100 bzw. 500 werden nie genau getroffen
}

Testprogram:

#include "CombieTimer.h"
using Combie::Pulsator;

Pulsator puls(1000);

void setup(void) 
{
  Serial.begin(9600);
  Serial.println();Serial.println("Start");Serial.println();

}

void loop(void) 
{
  if(puls) Serial.println(millis());
}

Resultat:

Start

0
1000
2000
3000
4000
5000
6000
7000
8000
9000
10000
11000
12000
13000
14000
15000
16000
17000

Kommt also exakt auf dem Punkt.