HEX Codierschalter und If-Then-Elseif
Hallo miteinander,
mein Problem schildert sich wiefolgt. Ich habe am PortD.7-D.4 einen Hexadezimalen Codierschalter angeschlossen. Also 1-2-4-8, die C Anschlüssen liegen auf VCC.
Benutze übrigens das RN-Control 1.4. Zur optischen Kontrolle schalte ich die Leds am PortC durch, um den Schalterzustand zu erkennen.
Nur leider passiert rein garnichts. Habs auf vielen Wegen probiert. Nichts hat zum Erfolg geführt.
Liegt es evtl. an der Binärschreibweise wenn ich PortD lesen will? Aber so wie ich das verstehe kommt der obere Nibble doch als erstes. Also würde PortD=&B10000000 eine 1 an PortD.7 bewirken. Das nur zum Verständnis meinerseits. Eigentlich sollte man mit PINX= ... doch auch den ganzen Port abfragen können. Oder ist die If-then-Elseif-Verzweigung Mist?
Nach zwei Tagen ausprobieren und I-Net Recherche find ich keinen Ansatz mehr.
Achso... Schalter ist voll funktionsfähig und gibt die richtigen Zustände an PortD aus
Hier der Code:
Code:
$regfile "m32def.dat"
$crystal = 16000000
$framesize = 32
$swstack = 32
$hwstack = 32
Config Portc = Output
Config Portd = Input
Do
If Pind = &B00000000 Then
Portc = &B11111111
Elseif Pind = &B10000000 Then
Portc = &B11111110
Elseif Pind = &B01000000 Then
Portc = &B11111100
Elseif Pind = &B11000000 Then
Portc = &B11111000
Elseif Pind = &B00010000 Then
Portc = &B11110000
Elseif Pind = &B10010000 Then
Portc = &B11100000
Elseif Pind = &B01010000 Then
Portc = &B11000000
End If
Loop
End
Danke für die Mühe
Gruß 128er