Dziś z przerwami usiadłem nad zadaniem.
Wrzuciłem program do Arduino, działa (PS2KeyboardEXT)
Podłączyłem porty 7 i 8 pod klawisz ENTER.
1.
Niestety nie mogłem w żaden sposób wywołać go.
Doświadczalnie pomierzyłem napięcia na stykach klawiatury ZX'a.
Rozwarte:
Linia D(0-4) - niecałe 5V (4,89).
Linia A(8-15) - 0V
Zwarte:
0,9V czyli logiczne 0.
Mam przez to rozumieć, że jak zewrę styki klawiatury to logiczne 0 ma pojawić się na np. KB1 i A8
Jak robię to w ardunio:
port 7 i 8 ustawiam jako INPUT (złącz klawiatury).
jeżeli zostanie wykryty klawisz na PS2
port 7 i 8 ustawiam jako OUTPUT, LOW
czeka 25 ms (właśnie nie wiem jak długo mam czekać)
port 7 i 8 ustawiam jako INPUT
i to nie działa.
2.
Zrobiłem podobnie tylko zamiast bezpośredniego podłączenia do złączy klawiaturowych
podłączyłem prze CD4066.
Klawisz zadziałał od strzału.
Problemem okazał się tylko czas, przez jaki symulacja klawisza w tym przypadku ENTER'a miała go zwierać.
Wybrałem 25ms, oczywiście testowo.
Jak robię to w ardunio:
port 8 ustawiam jako OUTPUT, LOW (klucz CD4066)
jeżeli zostanie wykryty klawisz na PS2
port 8 ustawiam jako OUTPUT, HIGH (uruchamiam klucz)
czeka 25 ms
port 8 ustawiam jako OUTPUT, LOW (wyłączam klucz)
i to działa niedoskonale ale działa.
W przypadku bezpośredniego podłączenia portów do złącz (przypadek 1), nie jestem pewien czy aby dobrze robię to.