PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : lcd und taster mit select case



silkeidi
19.04.2008, 21:01
Hallo,
habe folgendes Programm mit if an weisungen geschrieben , da aber noch weitere eingänge hinzukommen soolen ,möchte ich das ganze eigentlich mit der select case anweisung realisieren.
Habe ein problem die verschiedenen taster indie select case anweisung einzubauen.
vielleicht hat jemand ne idee.

mfg Silkeidi

$regfile = "m8def.dat"
$crystal = 1000000


Config Portd = Output
Config Portb = Input

Config Lcd = 16 * 4
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
Config Lcdbus = 4

tür Alias Pinb.1
fenster Alias Pinb.2

Do
Cls
If tür = 1 Then

Locate 1 , 1
Lcd "tür auf"
End If

If fenster = 1 Then

Locate 4 , 1
Lcd "fenster auf"
End If
Loop
End

for_ro
20.04.2008, 01:26
Hallo,
warum willst du das mit Select Case machen? Wegen der Übersichtlichkeit?
Falls immer nur ein Taster gedrückt ist und die alle an einem Port hängen, kannst du sowas machen:

Tür1 Alias 1
Tür2 Alias 2
Tür3 Alias 4
Fenster1 Alias 8
Fenster2 Alias 16
....

Select Case PINB
Case Tür1
....
Case Tür2
....
....
End Select


Ein Select ist immer nur für genau ein Case zutreffend. Wenn du also mehrere Taster gedrückt hast, passiert nix.
Anders bei deinen IFs. So wie du sie angegeben hast, werden alle Taster nacheinander überprüft und falls gedrückt wird die zugehörigen Befehle ausgeführt. Also kannst du auch mehrere Taster gleichzeitig drücken und es werden die Befehle für alle gedrückten ausgeführt.
Ein Select funktioniert so wie ein If...Elseif...Elseif...Else...Endif

Gruß

Rolf