Shop-Wechsel

Der Warenkorb wird nicht übernommen.

Zum Firmenkunden / Bildungseinrichtungs Shop

Lernpakete

Folie288 unklare Anweisung

Beiträge zu diesem Thema: 3
Folie288 unklare Anweisung
Antwort als hilfreich markieren
0Positive Markierungen
Antwort als nicht hilfreich markieren
0Negative Markierungen
Melden Sie diesen Beitrag
20.02.2012, 11:06
Hallo,
mit folgender Anweisung komme ich nicht ganz klar und bitte um nähere Erläuterung.

digitalWrite(ledpin, digitalRead(ledpin) ^ 1);

Pin 13 ist als Ausgang geschaltet. Damit ist mir 'digitalWrite' klar. Aber kann ich einen Ausgang auch lesen 'digitalRead' ?

Die Schreibweise finde ich auch nirgends erklärt.
Ist das eine Anweisung innerhalb einer Anweisung?

Was bewirkt dieses '^1'?

Gruss Karl Zimmer

Aw: Folie288 unklare Anweisung
Antwort als hilfreich markieren
0Positive Markierungen
Antwort als nicht hilfreich markieren
0Negative Markierungen
Melden Sie diesen Beitrag
20.02.2012, 16:59
Hallo,

1) Ausgänge kann man auch lesen. Man erhält denn eben den logischen Pegel des Pins zurück. Das ist insbesondere dann sinnvoll, wenn Ausgänge von verschiedenen Programmteilen gesteuert werden können.

2) Anweisungen können problemlos auch verschachtelt werden. Die genannte Code-Zeile ist ein Beipiel dafür.

3) Der Operator ^ bewirkt eine sogenannte EXOR-Verknüpfung
(ausschließendes oder). Insgesamt wird also mit ^1 eine Invertierung erreicht:
0^1 = 1
1^1 = 0
Somit wird also mit
digitalWrite(ledpin, digitalRead(ledpin) ^ 1);
der ledpin "umgedreht" d. h. invertiert. Man spricht hier auch von "toggeln"

Mit besten Grüßen,

uC_Dozent
Aw: Folie288 unklare Anweisung
Antwort als hilfreich markieren
0Positive Markierungen
Antwort als nicht hilfreich markieren
0Negative Markierungen
Melden Sie diesen Beitrag
21.02.2012, 16:25
Hallo,
diese Erklärung gehört aber auch in den Kurs als eigene Folie.

Gruss Karl Zimmer