Hiho, was macht dieser Befehl? Ist das eine zustandsabhängige Schaltung des Pins? Hab leider nichts darüber gefunden.
Thorsten S. schrieb: > Hab leider nichts darüber gefunden. Google geht bei dir nicht? Hier: https://www.arduino.cc/reference/de/language/functions/digital-io/digitalwrite/
Welche Programmiersprache soll das sein? Kannst du bitte einen etwas größeren Schnipsel präsentieren? Bist du sicher, dass es kein Schreibfehler ist?
Ich nehme an du meinst "digitalWrite(LED_YELLOW, state ? HIGH : LOW);" das ist funktionell aehnlich wie if (state) digitalWrite(LED_YELLOW, HIGH); else digitalWrite(LED_YELLOW, LOW); Patrick aus die Niederlaende
Das wäre der "Ternäre Operator". <wenn ausdruck wahr> ? <dann dies> : <sonst das>
Beitrag #6686976 wurde von einem Moderator gelöscht.
Danke, mit den letzten 2 Infos kann ich etwas anfangen. Gruß Thorsten
Beitrag #6687023 wurde von einem Moderator gelöscht.
Beitrag #6687029 wurde von einem Moderator gelöscht.
Patrick C. schrieb: > Ich nehme an du meinst "digitalWrite(LED_YELLOW, state ? HIGH : LOW);" Das ist eine Tautologie. https://de.wikipedia.org/wiki/Tautologie_(Logik) Nicht nur, daß man den ternären Operator in normalen Code außerhalb von Macros eher meiden sollte, auch so ist es doppelt gemoppelt. digitalWrite(LED_YELLOW, state); Tut das Gleiche, allerdings deutlich einfacher lesbar ;-)
Aber doch nur, wenn State auch ein Bool ist, oder? Bei nem Integer würde er versuchen einen Int Wert in das Register des LED Pins zu schreiben. Also wahrscheinlich den aktuellen Wert des untersten Bit von State.
Beitrag #6687062 wurde von einem Moderator gelöscht.
Falk B. schrieb: > digitalWrite(LED_YELLOW, state); > Tut das Gleiche, allerdings deutlich einfacher lesbar ;-) Snoop schrieb: > Aber doch nur, wenn State auch ein Bool ist, oder? > Bei nem Integer würde er versuchen einen Int Wert in > das Register des LED Pins zu schreiben. Nein. Schau in den Quelltext!
1 | void digitalWrite(uint8_t pin, uint8_t val) |
2 | {
|
3 | ...
|
4 | if (val == LOW) { |
5 | *out &= ~bit; |
6 | } else { |
7 | *out |= bit; |
8 | }
|
9 | ...
|
10 | }
|
Und LOW ist als #define LOW 0 definiert.
Okay Danke. Laut der Arduino Beschreibung aus dem Link im zweiten Post dürfte als Wert eigentlich nur High oder Low migegeben werden. Parameter pin: Die Arduino-Pinnummer. value: HIGH oder LOW. dennoch fangen sie auch alle anderen Werte ab. Beschreibung der Funktion ist also inkonsistent zum Quellcode. In der Beschreibung gibt es auch den Quellcode der Funktion oder einen Link dahin erst gar nicht.
Snoop schrieb: > Beschreibung der Funktion ist also inkonsistent zum Quellcode. So ist das bei Arduino. Dazu kommt, dass die konkrete Implementierung je nach Core (µC) variiert. Ich gucke andauernd in den konkreten Quelltext um mich zu vergewissern, dass da auch wirklich das passiert, was ich erwarte.
Snoop schrieb: > Laut der Arduino Beschreibung aus dem Link im zweiten Post > dürfte als Wert eigentlich nur High oder Low migegeben werden. Man kann der Funktion alles überreichen, was in einen uint8_t konvertierbar ist. Und das ist bei bool eben auch der Fall. Die Regeln sind klar. Snoop schrieb: > In der Beschreibung gibt es auch > den Quellcode der Funktion oder einen Link dahin erst gar nicht. Es ist nur eine Beschreibung des Interface der Funktion. Auch nachvollziehbar, da es dutzende von digitalWrite() Implementierungen gibt.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.