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

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.