Witam serdecznie. Jako dość początkujący programista w Bascomie, szukam pomocy dotyczącej połączenia klawiatury komputerowej AT PS/2 pod Atmege8. Ogólnie posłużyłem się gotowym rozwiązaniem jakie znalazłem w książce m.wiazani:
Wykorzystując te porady, oraz to co znalazłem w Helpie Bascoma mogłem linie CLK i DATA klawiatury podpiąć pod dowolne piny atmegi. W moim przypadku były to PINB.6 i PINB.7
Program niestety nie działa poprawnie, tzn jest reakcja na klawisz, natomiast dane są bardzo błędnie przesyłane - efektem jest wyświetlanie rożnych liter, rzadko poprawnych.
Moje pytanie jest takie - czy ta procedura Getatkbd() w ogóle działa poprawnie, czy też ja o czymś zapomniałem, i w końcu czy jest faktycznie mało ważne do jakich pinów podpina się linie klawiatury.
Przeglądając fora i inne 'nazwijmy to gotowe rozwiązania' zauważyłem że stosuje się również metodę połączenia klawiatury pod piny portu D INT0, ale niestety nie mam takiego doświadczenia jak poprawnie napisać program w oparciu o te przerwania by klawiatura działała poprawnie.
...
Config Keyboard = Pinb.6 , Data = Pinb.7 , Keydata = Keydata
...
Kod_kl = Getatkbd()
...
Keydata:
Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
Data &H5E , 0 , 0 , 0 , 0 , 0 , 0 , 113 , 49 , 0 , 0 , 0 , 122 ,
Data 115 , 97 , 119 , 50 , 0 , 0 , 99 , 120 , 100 , 101 , 52,
Data 51 , 0 , 0 , 32 , 118 , 102 , 116 , 114 , 53 , 0 , 0 , 110,
Data 98 , 104 , 103 , 121 , 54 , 7 , 8 , 44 , 109 , 106 , 117 , 55,
Data 56 , 0 , 0 , 44 , 107 , 105 , 111 , 48 , 57 , 0 , 0 , 46 , 45
Data 108 , 48 , 112 , 43 , 0 , 0 , 0 , 0 , 0 , 0 , 92 , 0 , 0 , 0,
Data 0 , 13 , 0 , 0 , 92 , 0 , 0 , 0 , 60 , 0 , 0 , 0 , 0 , 8 , 0,
Data 0 , 49 , 0 , 52 , 55 , 0 , 0 , 0 , 48 , 44 , 50 , 53 , 54 , 56,
Data 0 , 0 , 0 , 43 , 51 , 45 , 42 , 57 , 0 , 0
Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0,
Data 0 , 0 , 0 , 0 , 0 , 0 , 81 , 33 , 0 , 0 , 0 , 90 , 83 , 65,
Data 87 , 34 , 0 , 0 , 67 , 88 , 68 , 69 , 0 , 35 , 0 , 0 , 32 , 86,
Data 70 , 84 , 82 , 37 , 0 , 0 , 78 , 66 , 72 , 71 , 89 , 38 , 0,
Data 0 , 76 , 77 , 74 , 85 , 47 , 40 , 0 , 0 , 59 , 75 , 73 , 79,
Data 61 , 41 , 0 , 0 , 58 , 95 , 76 , 48 , 80 , 63 , 0 , 0 , 0 , 0,
Data 0 , 0 , 96 , 0 , 0 , 0 , 0 , 13 , 94 , 0 , 42 , 0 , 0 , 0 , 62,
Data 0 , 0 , 0 , 8 , 0 , 0 , 49 , 0 , 52 , 55 , 0 , 0 , 0 , 0 , 48,
Data 44 , 50 , 53 , 54 , 56 , 0 , 0 , 0 , 43 , 51 , 45 , 42 , 57 , 0 , 0
Wykorzystując te porady, oraz to co znalazłem w Helpie Bascoma mogłem linie CLK i DATA klawiatury podpiąć pod dowolne piny atmegi. W moim przypadku były to PINB.6 i PINB.7
Program niestety nie działa poprawnie, tzn jest reakcja na klawisz, natomiast dane są bardzo błędnie przesyłane - efektem jest wyświetlanie rożnych liter, rzadko poprawnych.
Moje pytanie jest takie - czy ta procedura Getatkbd() w ogóle działa poprawnie, czy też ja o czymś zapomniałem, i w końcu czy jest faktycznie mało ważne do jakich pinów podpina się linie klawiatury.
Przeglądając fora i inne 'nazwijmy to gotowe rozwiązania' zauważyłem że stosuje się również metodę połączenia klawiatury pod piny portu D INT0, ale niestety nie mam takiego doświadczenia jak poprawnie napisać program w oparciu o te przerwania by klawiatura działała poprawnie.