die Timerlibrary "TimerOne"

Hallo,

was bedeutet bzw bewirkt das " ^1" in der interrupt Timerlibrary?

void blinken() {
digitalWrite(ledpin, digitalRead(ledpin) ^ 1);
}

Besten Dank schon mal.

Tschüß
Lokgeist

bitweises XOR. XOR mit 1 invertiert den Wert von 0 nach 1 und umgekehrt. Wobei man hier normalerweise eher die logische Negation mit ! verwendet

Ansonsten bei sowas einfach mal die C/C++ Operatoren nachschlagen:

Hallo Serenifly,

ich habe die Links mal kurz überflogen.
Da muß ich mich aber mal intensiver damit beschäftigen. In mein altes Hirn will das nicht so schnell hinein.

Aber auf jeden Fall vielen vielen Dank für die sehr schnelle Antwort.

Tschüß
der Lokgeist

Ist eigentlich ganz einfach. a ^ b invertiert jedes Bit in a das in b gesetzt ist. Also z.B. 1001 ^ 1111 = 0110

Du machst hier XOR mit 1. Also mit 00000001 Damit wird nur das niederwertigste Bit invertiert.

Weniger verwirrend und öfters anzutreffen ist wie gesagt das:

digitalWrite(ledpin, !digitalRead(ledpin));