Hallo mare_crisium,
bin leider noch nicht all soweit gekommen.
Zum Einen war ich auf Fehlersuche zum Anderen mach ich mir noch Gedanken, wie man die Tasten-Auswertung am Besten realisiert.
Der Fehler:
Bei gedrueckter Taste ist mir aufgefallen, dass ein Tabellenindexfehler erzeugt wurde.
Der Z-Wert sprang von 0x0F auf 0x00 anstatt auf 0x07(wo er dann ohne Pegelaenderung verharren sollte).
Bei losgelassener Taste natuerlich dann auch.
Ursache:
Das Flankenbit wurde in der vorhergehenden Programmversion in TAST_UTILS_V01.asm bei "GET_HIGH_NIBBLE:" geloescht.
..und das ist in der neuen Version nicht mehr eingebunden. Aus diesem Grund gibt es nun eine TAST_UTILS_V02.asm.
Dort wird es jetzt in "NEXT_TAST_ZST:" bei der Beschraenkung der Tabelleneintraegen von ehemals 127(0x7F) auf 119(0x77) geloescht.
Nun ja, da haette ich es auch gleich ablegen koennen.. Bild  

Gedanken zur Auswertung der Tasten und Flanken:

-----------------------------------------------
Daten im R A M
Code:
Bsp Taste0 bei gedrueckter Taste.:
-----------------------------------------------
TASTCTL0 Byte0   TASTCTL0 Byte1   TASTCTL0 Byte2 
-----------------------------------------------
TASTCTL_FLAGS                     TASTCTL_MASKE 
-----------------------------------------------
0000 0010        0000 0000        0000 0001 
0x02             0x00             0x01
-----------------------------------------------
0000 0100        0000 0000        0000 0001 
0x04             0x00             0x01
-----------------------------------------------
0000 0110        0000 0000        0000 0001 
0x06             0x00             0x01
-----------------------------------------------
0000 1111        0000 0000        0000 0001 
0x0F             0x00             0x01
-----------------------------------------------
0000 0111        0000 0000        0000 0001 
0x07             0x00             0x01
-----------------------------------------------
  ||               ||               ||   
----------------------------
Bsp Taste0 losgelassen(high bzw. gedrueckt voraus gegangen).:
-----------------------------------------------
0000 0111        0000 0000        0000 0001 
0x07             0x00             0x01
-----------------------------------------------
0000 0101        0000 0000        0000 0001 
0x05             0x00             0x01
-----------------------------------------------
0000 0011        0000 0000        0000 0001 
0x03             0x00             0x01
-----------------------------------------------
0000 0001        0000 0000        0000 0001 
0x01             0x00             0x01
-----------------------------------------------
0000 1000        0000 0000        0000 0001 
0x08             0x00             0x01
-----------------------------------------------
0000 0000        0000 0000        0000 0001 
0x00             0x00             0x01
-----------------------------------------------
Flankenbit - Bit3
Taste gedrueckt: Bit0 :=0 bis Flanke eintritt dann 1
Taste losgelassen: Bit0 :=1 bis Flanke eintritt dann 0

-> Taste gedrueckt Bit0 :=0 -> dann Flankenbit -> Bit0 :=1 == Taste als High(geschaltet) erkannt
-> Taste nicht gedrueckt Bit0 :=1 -> dann Flankenbit -> Bit0 :=0 == Taste als Low( nicht geschaltet) erkannt

===> Auswertung mit Flankenbit auf Bit0
liegt FlankenBit an und ist Bit0 :=0 dann Tasten nicht gedrueckt
liegt FlankenBit an und ist Bit0 :=1 dann Tasten gedrueckt

------------------------------------------------
im Programm "Tasten_4g_V02" wurden die Flanken mit einem macro in der ISR in ein Register gesichert.
neu soll:
in Main-Schleife - vorangegngene ISR setzt Bit(1) - in rIO_Config fuer Erlaubnis zum FlankenBit testen - Flanke (gesetzt) - Ausgang(LED)Update - Rueckehr in Main-Schleife
in Main-Schleife - vorangegngene ISR setzt Bit(1) - in rIO_Config fuer Erlaubnis zum FlankenBit testen - Flanke (n.gesetzt)- Rueckehr in Main-Schleife
in Main-Schleife - vorangegngene ISR setzt Bit(0) - Rueckehr in Main-Schleife
// bin noch an der richtigen Ausarbeitung und hoffe es bis zum WE noch verneunftig umzusetzen
// habe dann noch weitere Plaene mit der Schaltung Bild   - mir schwebt eine Menuefunktion vor, mit der das LED-Update veraendert wird

PS. irgendwie verschwinden meine Leerzeichen im Posting Bild   - deswegen das RAM im Code-Schnipsel.