Hi,

danke für die Antwort. Zu deinem Hinweis mit dem Interrupt: Ich nutze den Timer um einen IR-Sensor zu dekodieren. Meine Vorgehensweise habe ich mir aus verschiedenen Quellen zusammengeholt.

Beispiel Start-Bit nach NEC:

9000µs HIGH, 4500µs LOW

Anfangs hatte ich etwas in der Art wie:

Code:
unsigned long startTime, highPulsTime, lowPulsTime;

void waitForStartSequence() {
  startTime = millis();

  while(IsIrHigh); // call macro which checks if ir is high
  
  highPulsTime = millis();

  while(IsIrLow);

  lowPulsTime = millis();

  lowPulsTime -= highPulsTime;
  highPulsTime -= time;

  if(highPulsTime >= THE_VALUE_FOR_9600us  IsAlmostEqual(lowPulsTime , THE_VALUE_FOR_4500us, TOLERANCE))
     Serial.println("X");
}
Das hat zur Erkennung des Start-Bits soweit funktioniert. Um dann aber die weiteren bits auszulesen scheint millis nicht akkurat genug zu sein. Wie könnte da eine saubere Lösung aussehen?