Je conçois un clavier en VHDL. Tout fonctionne bien lorsqu'une seule touche est enfoncée. J'analyse chaque colonne pour une pression de touche dans une machine d'état et lorsqu'aucune touche n'est enfoncée, ce qui est la condition que pin4pin6pin7pin2 = "0000"je passe à l'état suivant pour analyser la colonne suivante. J'ai donc défini les colonnes de pin3pin1pin5manière séquentielle sur "001", "010"et "100".
Pendant la numérisation au pin3pin1pin5fur "001"et à pin4pin6pin7pin2mesure, "0100"il suffit d'appuyer sur "9". Je déclare en VHDL pin4pin6pin7pin2comme pin3pin1pin5ports d' entrée et de sortie. Lorsque j'appuie sur 6 et 9 en même temps pin6et le pin7sont high. La première touche enfoncée est lue, la seconde est ignorée. Lorsque j'appuie sur 3 et 7 en même temps, le premier appuyé avec quelques ms avant gagne et la première touche est lue, la deuxième touche est ignorée, pin2et le pin4sont high.
Voici la partie délicate. Quand j'appuie sur 4 et 6 en même temps, je m'attends pin7à l'être highmais ça devient lowet pin4pin6pin7pin2 = "0000", ce que je ne comprends pas comment et pourquoi. Parce qu'il "0000"est détecté comme aucune touche enfoncée, la machine d'état passe d'un état à l'autre. Tout en maintenant 4 et 6 si l'on pousse et laisse 4 plusieurs fois, il est détecté comme 6 pressé plusieurs fois, ce qui est un gros bug . Je serais heureux si vous pouviez m'aider à déboguer cela!
La même chose se produit avec "1" et "2", la même chose avec "7" et "8" uniquement pour les touches de la même ligne. Puisqu'il s'agit d'un projet en cours, je ne peux pas mettre mon code VHDL en ligne :( Je serais heureux si vous pouviez me donner des conseils pour surmonter cela!

Ci-dessous, je ne télécharge pas mon code sur la carte, aucun code n'est en cours d'exécution. Connexion Pin5à la terre, une seule pression sur 1,2,4,5,7,8, *, 0 n'allume pas la Pin3LED mais si je presse 6 et 4 en même temps, la Pin3LED est Pin7allumée et la LED est toujours allumée, mais lorsque mon code s'exécute, cela ne se produit pas. Peut-être que j'ai connecté quelque chose de mal et heureusement Pin7, je ne sais pas ...

Voici les schémas de la carte du clavier:


