Habe mit "if" das Signal "a" invertiert. Das Resultat ist "B". Leider kann ich mit B nur weiterarbeiten wenn ich B auf einen Pin lege. Das ist nicht gut weil ich noch fünf weitere Signale invertieren muß.. Wie macht man das richtig? Und wie invertiert man a mit dem "!" 001.ino angehängt. LG old.
Also was du da machen willst, versteht keiner. Beschreibe doch mal genau, was du willst.
Jetzthabensieihn I. schrieb: > Wie macht man das richtig? Mit einer Variablen Jetzthabensieihn I. schrieb: > Und wie invertiert man a mit dem "!" a ist in Deinem Programm eine Variable mit dem Wert 2. Was Du wahrscheinlich willst / brauchst, ist hier beispielhaft beschrieben https://www.arduino.cc/en/Reference/BooleanVariables
Das kommt darauf an, ob du binäre oder boolsche Werte hast. Das wäre der ~ Operator oder der ! Operator.
Wie sind denn HIGH und LOW definiert. Und du willst auch nicht den Wert von a invertieren, sondern den vom "Port a"
Rainer U. schrieb: > Mit einer Variablen Du hast die .ino, zeige es mir bitte daran. Zwei if..else und eine && Funktion, wobei eine wegfällt wenn man invertieren kann, sind ja kein Riesending. LG old.
Dirk B. schrieb: > Wenn Ich probiere noch herum. Leider sind in den Beispielen die Operatoren in if eingebunden. https://www.arduino.cc/en/Reference/Boolean Wie man jetzt ohne diese Einbindung invertiert, habe ich noch nicht herausgefunden. Bei UND && habe ich es hinbekommen, wie man in der 001.ino sieht. LG old.
Jetzthabensieihn I. schrieb: > Du hast die .ino, zeige es mir bitte daran. Du lernst mehr, wemm Du besser verstehst, was Du programmierst. Also ich meinte, Du kannst schreiben statt if (digitalRead(a) == HIGH) in mehreren Schritten bVar = digitalRead(a) bVar = !bvar digitalWrite(AusgabePin, bVar) // welchen Ausgabepin weißt Du
.. und diese Variable bVar natürlich am Anfang deklarieren: boolean bVar = false; // Startwert
Jetzthabensieihn I. schrieb: > Bei UND && > habe ich es hinbekommen, wie man in der 001.ino sieht. Weißt du, was das digitalRead() macht und was die Werte bedeuten, die du übergibst und zurück bekommst?
Dirk B. schrieb: > Wenn du weißt wie es geht, dann mach doch. Nach etwas Gartenarbeit noch mal rumprobiert. Ich denke, ich habe jetzt raus wie die Struktur aussehen muss. Mit einem NAND kann ich dann alle logischen Funktionen realisieren. :-) In meinen Augen sind das grundlegende Dinge und ich wundere mich sehr über die Antworten hier. LG old.
Jetzthabensieihn I. schrieb: > In meinen Augen sind das grundlegende Dinge Ja, ja das sind sie. > und ich wundere mich sehr über die Antworten hier. Darüber, das wir dir diese Dinge erklären? Oder darüber, dass wir nicht deine Arbeit machen? Wenn du Probleme hast dann frag gezielt nach.
Jetzthabensieihn I. schrieb: > In meinen Augen sind das grundlegende Dinge > und ich wundere mich sehr über die Antworten hier. Genau...und daher solltest du das auch wissen.
Dirk B. schrieb: > Wie sind denn HIGH und LOW definiert. Siehe hier: http://www.ov-meschede.de/workshop/Arduino%20Programmierhandbuch.pdf Seite 11. LG old.
Jetzthabensieihn I. schrieb: > In meinen Augen sind das grundlegende Dinge > und ich wundere mich sehr über die Antworten hier. Mich wundert es nicht. --- Jetzthabensieihn I. schrieb: > Mit einem NAND kann ich dann alle > logischen Funktionen realisieren. :-) In einer anderen Situation könnte diese Erleichtung zielführend sein, evtl. sogar Bahnbrechend. --- Nur, in Sachen C/C++ bzw. AVR, nicht wirklich. Denn diese kennen kein NAND. Klar kannst du ein NAND aus den vorhandenen Operatoren bauen, und dann z.B. ein XOR aus ein paar NAND. Nur leider ist diese Idee ausgesprochen dumm, denn XOR ist schließlich schon nativ vorhanden. Alle logischen Operatoren, welche man je brauchen könnte, sind schon längst vorhanden. -- Schlussendlich, wundere ich mich eher nicht über die Antworten, sondern mehr über deine Erleuchtungen.
Arduino F. schrieb: > XOR ist schließlich > schon nativ vorhanden. > > Alle logischen Operatoren, welche man je brauchen könnte, sind schon > längst vorhanden. Noch habe ich das xor nicht benötigt. Laut Referenzliste ist xor übrigens nicht vorhanden: https://www.arduino.cc/en/Reference/Boolean Wenn ich herausfinde wie man es macht, lasse ich es Euch wissen. LG old.
Gähn... Dann versuchs mal mit dem binären XOR. Wenn du das auf bool Values anwendest, tut es genau das erwartete.
Jetzthabensieihn I. schrieb: > Wenn ich herausfinde wie man es macht, > lasse ich es Euch wissen. Probiere es einfach mal mit dem (bitweise) XOR-Operator (^). https://en.wikibooks.org/wiki/C_Programming/Reference_Tables#Table_of_Operators Bitweise Operationen bieten sich evtl. sowie an, wenn du mehrere Signale verarbeiten musst.
Habe eine gute Erklärung dazu gefunden: http://www.willemer.de/informatik/cpp/boolexpr.htm > Und dann gibt es noch praktische Ansätze, > einen XOR-Operator zu simulieren. > Als boolescher Operator bietet sich der > Ungleich-Operator != an. Alternativ kann > der binäre Operator ^ verwendet werden. > Da die booleschen Ausdrücke mit Zahlen > kompatibel ist, funktioniert dieser auch > wie ein boolescher Operator bei der Verknüpfung > boolescher Ausdrücke. LG old.
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.