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

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.