wie man merkt ist das ein Binäncode.
...genau - und damit kannst Du die Sache ziemlich vereinfachen. Du definierst eine Variable als Byte, setzt die Variable gleich PinA und setzt die ersten 4 Bits auf 0 (falls pinA.4 bis PinA.7 anderweitig besetzt sind). Damit hat Deine Variable genau den Wert, der auf den Ports A.0 bis A.3 in binärer Form anliegt. D.h. sind alle 4 Pins high, wäre die Variable 15, sind A.0, A.1 und A.3 high wäre die Variable 11 usw - ganz ohne UND-Verknüpfung. Den Wert der Variablen kannst Du dann direkt via LCD ausgeben!
Als Code könnte das so aussehen:
Code:
$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 1000000
Config LCD....
Dim Zahl as byte
Do
Zahl = Pina
Zahl = Zahl AND &B00001111
LCD Zahl
Loop
Die Geschichte mit "Zahl = Zahl AND &B00001111 setzt die bits 7-4 der Variablen Zahl auf 0 (x UND 0 ergibt immer 0), während sie die bits 3-0 unbeinflusst lässt (x UND 1 ergibt immer x).
Alles klar?
Daniel
Lesezeichen