AVR Bascom Befehl Case div. Pins abfragen

OP #1990202
Lesenswert?

Hallo Leute,

ich besuche Euer Forum schon länger, nun habe ich mich angemeldet. Ich 
habe hier eine Frage zu Bascom und dem Befehl case/select .

In Google habe ich nicht so die Lösung gefunden, da die  Listings für 
einen Anfänger sehr umfangreich und manchmal undurchsichtig sind.

Bitte nicht andere Lösungen wie if, then else usw. präsentieren.

Nur antworten zu case/select!

Danke

-------------------

Hier mein Programm.
Ich möchte jeweils einen Taster an PortC 0, 1, 2 anschliessen. Dieser 
schaltet gegen GND.

Ist Schalter 0 gedrückt leuchtet die LED z.B. 1 Sekunde.
Ist Schalter 1 gedrückt leuchtet die LED z.B. 3 Sekunde.
Ist Schalter 2 gedrückt leuchtet die LED z.B. 6 Sekunde.
.....
Ist Schalter 0 und 1 gedrückt leuchtet die LED z.B. x Sekunden.
usw.


Die LED leuchtet  aber nicht.


Entweder habe ich ein Problem beim maskieren oder Do sitzt an der 
falschen Stelle. Als Anfänger bin ich da ein bisschen verloren.
Kann mir bitte jemand behilflich sei?

-------------------


$regfile = "m8def.dat"                         'ATmega8-Deklarationen
$crystal = 3686400                             'Quarz: 3,6864 MHz

Ddrc = &B00100000                              'Pin PC5 Ausgang,
                                               'Rest Eingang

Do
Portc = &B00001111                             'PullUp für Pin 
PC01/2/3/4
                                               'aktivieren



  Dim Eingabe As Byte


  Eingabe = &B00001111                         'gesamten Port abfragen
                                               'und maskieren

   Select Case Eingabe

      Case &B00000001:
         Portc.5 = 1                           'LED an (Pin PC5)
         wait 1

      Case &B00000011:
         Portc.5 = 1                           'LED an (Pin PC5)
         wait 3

      Case &B00000111:
         Portc.5 = 1                           'LED an (Pin PC5)
         wait 6

   End Select

Loop
End
Persönliche Seite #1990219
Lesenswert?

Wenn du nur select-case haben willst, brauchst du für alle möglichen 
Fälle ein case.

      Case &B00000001: ' Nur Schalter 0
      Case &B00000011: ' Schalter 0 und Schalter 1
      Case &B00000111: ' Schalter 0, 1 und 2

plus...

      Case &B00000010: ' Nur Schalter 1
      Case &B00000100: ' Nur Schalter 2
      Case &B00000101: ' Schalter 0 und Schalter 2
      Case &B00000110: ' Schalter 1 und Schalter 2

ADD:
Eingabe = PINC and &B00000111

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