Hi,
ich würde das so machen:
der taster der für die eins steht und der, der für die zwei steht haben jew. zugriff auf ein eigenes byte. wird z.B. taster eins gedrückt, wird auf das byte 1
ein logik shift links angewendet und dann die unteren vier BITS um 1 erhöht.
lsl Byte1 ;links shift
ori Byte1,0b00000001 ;um eins erhöhen
Das logik shift links muss auf jeden fall zuerst kommen! Der selbe Algorithmus gilt für taster zwei, Nur das der im Byte 2 auf die oberen vier Bits zugreift.
lsl Byte2 ;links shift
ori Byte2,0b00010000 ;um eins erhöhen
Außerdem ist darauf zu achten, dass die schleifen erst verlassen werden, wenn die taster losgelassen sind.
Wird der dritte Taster zum bestätigen gedrückt, werden byte 1 und 2 über eine logische UND Verknüpfung verknüpft. z.B. so
AND Byte1,Byte2
Das Ergebnis findet sich dann in Byte1. Anhand der kodierung der unteren und oberen vier Bits kannst du dann eine Fallunterscheidung der gewünschten Position machen.
Ich geb zu das ist jetzt an Assemblercode angelehnt, aber ich hoffe, die Idee ist klar.
Gruß,
The Man
Lesezeichen