Nur 2 Pins mit einer case abfrage abfragen

OP #2552268
Lesenswert?

Hallo,

Ich versuche mit einer case abfrage 2 Pins an einem Port abzufragen.
Es handelt sich dabei um PORTB6 und PORTB7.
Wenn der eine von 1 auf 0 gezogen wird soll case 1 ablaufen und beim 
anderen case2 wenn beide 0 sind soll keiner der beiden ausgeführt werden 
und beide 1 kann nicht auftreten, da als hardware ein auswahlschalter 
dahinter ist, der aber auch eine nullstellung hat.
Wie funktioniert die case anweisung? Da ja auf den anderen Pins dieses 
Ports was ganz anderes abläuft und nix mit der auswahl zu tuen hat.
1
switch(PORTB)
2
    {
3
      case 0b01000000:
4
      {
5
        linkslauf();
6
        break;
7
      }
8
      case 0b10000000:
9
      {
10
        rechtslauf();
11
      }
12
    }

Weil so habe ich ja das problem, das sobald an den Pins 0-6 irgendwas 
ist, ist meine Bedingung ja nicht erfüllt, und zusätzlich reagiert er 
jetzt darauf wenn ich eine 1 anlege und nicht wenn ich das Signal auf 
Masse ziehe.

Kann mir da wer weiterhelfen?

Danke
OP #2552276
Lesenswert?

Super für die schnelle super Antwort.

KAnnst du mir noch sagen, wieso jetzt PINB auftaucht?
Das ist ja eine Maskierung wenn ich das richtig sehe. Muss dann nicht 
der ganze Port maskiert werden?

bin anfänger. desshalb diese warscheinlich banalen Fragen.

Aber vielen Dank für die Antwort
OP #2552297
Lesenswert?

Okay das hilft mir zum entprellen jetzt schonmal weiter.

HAbe aber gerade gemerkt, das er immernoch darauf reagiert, wenn ein 
signal kommt. Er muss aber im grunde darauf reagieren, wenn eine 
negative flanke kommt, da auf allen eingängen 1 signal anliegt und bei 
betätigtem schalter das signal auf MAsse gelegt wird. Muss ich jetzt 
meine 1 en und 0en nur alle umdrehen? oder gibt es da eine andere 
Möglichkeit?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren