mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik logisches UND/ODER in C


Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
Bin Anfänger, und wollte mal schauen, wie ich zwei Eingänge verunden
kann und das als Ergebnis ausgebe.
Wenn ich folgendes schreibe, und ich jeweils eine der Tasten drücke,
fängt die LED schon an zu leuchten.

PORTC.1 = (PIND.1&&PIND.2);

Es kommt eher eine ODER Verknüpfung raus!?
Was mache ich falsch?
Und wie sieht dann eine ODER Verknüpfung aus?
Es wäre super, wenn ihr mir helfen könntet!
mfG
Jens

Autor: Thomas K (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
logisches und ist nur ein &
genauso das oder: |

Autor: Khani (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also mal prinzipiell :
das logische UND ist &&
das logische ODER ist ||
bitweise UND ist &
bitweise ODER ist |

Wenn das logische UND in dem Beispiel nicht geht, dann liegt das mehr
an der Methode, wie das Programmierinterface eines µC in C/C++
aussieht.

Ganz am Rande : Bitte sagt nicht verunden und verodern, denn dann
bekommt man echte Probleme bei den folgenden logischen Verknüpfungen :
- XOR -> "exklusiv verodern" ? "verexklusivodern" ??
- NOT -> "vernichten" ?
Klingt aber sehr lustig !

MfG, Khani

Autor: Khani (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Weiterführung (tschuldigung habe zu hastig Submit gedrückt) :

Ich glaube, da liegt ein anderes Problem vor :
Du hast wahrscheinlich die Taster mit Pullup-Widerständen gegen Vcc (+)
geschaltet. Das heißt, wenn sie nicht gedrückt sind, liegt am
µController eine 1 an. Jetzt hast Du vielleicht auch noch die Leds
zwischen Vcc und dem Port C. (Das ist dann die Schaltung hier aus dem
Tutorial)

Das heißt die LED gibt negiert den Ausgabewert der UND-Verknüpfung aus.
Wenn also beide Taster ungedrückt sind, liefert das je eine 1 am
Eingang und damit am Ausgang eine 1. Daraus folgt LED leuchtet nicht.
Bei allen anderen Kombinationen von Tastern ein/aus leuchtet sie.

Wie Du schon richtig erkannt hast, ist das eine ODER-Verknüpfung.
Gratulation, Du hast so heben das deMorgan'sche Gesetz gefunden !

'-' heißt negiert

-------
 -   -
(A & B) = A | B

MfG, Khani

Autor: Thomas K (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
huch. tut mir leid.
hab falsch herum gedacht :(

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.