Hm, nikt sie nie kwapi pomoc, to chociaz ja powiem jak to sie robi.
Proponuje to zaprojektowac jako automat stanow. Miec jakis timer, ktory nam wykona jakas fkcje gdy timer sie przekreci.
Napierw nalezy zmienic stan DTA z 1 na 0 w momencie gdy magistrala jest wolna, czyli CLK = 1.
Potem opada napiecie na linii CLK. Przez kolejnych 10 taktow zegara nastepuje przesylanie danych. Bity 0-7 to dane, bit 8 to bit kontroli parzystosci, a ostatni bit to bit stopu.
Wysylanie polega na przeslaniu po prsotu kodu klawisza. Przy czym przesylane jest zarowno nacisniecie jak i puszczenie klawisza - puszzcenei poprzedzone kodem F0. Nie ma czegos takiego jak modyfikacja kodu shiftem, altem czy ctlem. Za kazdym razem masz ten sam kod dla danego klawisza, musisz wiec sam dbac o to, czy jest "wcisniety" alt, ctrl czy shift.
Dane na temat predkosci taktowania transmiji i kodow mozna znalezc w sieci wpisujac o ile dobrze pamietam w googlach ps2 keyboard scancodes czy jakos tak.
Pozodzenia,
Caladan