Myszka plus mikrokontroler w Bascom
Myszka plus mikrokontroler w Bascom
Mam pytanie. Szukam już dosyć długo i nie trafiłem na żadne dobre opracowanie po polsku. Po angielsku nie wszystko rozumiem. Na tej stronie ( http://www.computer-engineering.org/ind ... _Interface )poczytałem o protokole przesyłu danych i muszę powiedzieć, że jest dla mnie już całkowicie zrozumiały. Jednak interesuje mnie coś innego. Jak to działa? Na linię clk muszę ciągle podawać taktowanie z procesora i równolegle mysz zwraca mi linią danych (data) synchronizowaną za pomocą sygnału zegarowego paczkę danych przy każdym poruszeniu myszy? Czy może poprostu zwraca pewną ilośc próbek na sekundę? Czy może to mysz po zainicjowaniu taktowania sama się taktuje i wysyła do procesora sygnał taktujący do synchronizacji i dane? Proszę o wytłumaczenie. Pomóżcie koledzy...
Ostatnio zmieniony 01 sty 1970, 1:00 przez Jasam, łącznie zmieniany 1 raz.
"When the keyboard or mouse wants to send information, it first checks the Clock line to make sure it's at a high logic level. If it's not, the host is inhibiting communication and the device must buffer any to-be-sent data until the host releases Clock. The Clock line must be continuously high for at least 50 microseconds before the device can begin to transmit its data."
Czyli jeżeli chcesz ty coś do niej nadać to oprocz sygnalu zegara podajesz dane. Jeżeli urzadzenie ma odpowiedzieć ci to czeka aż linia CLK ma stan wysoki (przez conajmniej 50us musi być linia zegara w stanie wysokim". Wtedy myszka zaczyna generowac impulsy zegara i danych.
http://www.computer-engineering.org/ind ... d_Protocol
Czyli jeżeli chcesz ty coś do niej nadać to oprocz sygnalu zegara podajesz dane. Jeżeli urzadzenie ma odpowiedzieć ci to czeka aż linia CLK ma stan wysoki (przez conajmniej 50us musi być linia zegara w stanie wysokim". Wtedy myszka zaczyna generowac impulsy zegara i danych.
http://www.computer-engineering.org/ind ... d_Protocol
Znaczy jeśli dobrze rozumiem to powinno wyglądać następująco. Włączam układ do prądu. Początkowo nic się nie dzieje. Wtedy zaczyna się działanie. procesor podciąga na te co najmniej 50 us do plusa linie clk a potem wyłącza podciągnięcie. I od tego czasu co? Mysz sama zaczyna generować sygnał zegarowy i wysyła próbki danych przy każdym przesunięciu? czy nawet bez przesunięcia ustaloną na sztywno ilość próbek na sekundę przez linię data? Tak to działa?
[ Dodano: 2007-12-15, 19:58 ]
Wystarczy tylko raz podciagnać i będzie ciągle wysyłało dane potem?
[ Dodano: 2007-12-15, 19:58 ]
Wystarczy tylko raz podciagnać i będzie ciągle wysyłało dane potem?
Data reporting is handled according to the mode in which the mouse is operating. There are four modes of operation:
* Reset - The initial mode, in which the mouse performs initialization and self-diagnostics.
* Stream - The default operating mode, in which the mouse issues movement data packets when movement occurs or button state changes.
* Remote - The host must poll for movement data packets.
* Wrap - A purely diagnostic mode where the mouse echoes every received packet back to the host.
Czyli masz 4 tryby pracy, wykorzystujesz 2, stream albo remote. Jak włączysz ją w tryb stream to będzie wysyłała dane za każdym razem gdy nią ruszysz albo naciśniesz guzik. W trybie Remote musisz przez hosta wysłać do myszy odpowiednie komendy żeby ci odpowiedziała, czyli ty wymuszasz kiedy chcesz otrzymywać dane.
Oczywiście trzeba pamiętać o prawidłowej inicjalizacji, co także jest opisane na tej stronie którą w pierwszym poście przytoczyłeś
Jasam pisze:jak wprowadzic mysz w tryb stream?
Stream mode is the default operating mode
Szczerze mówiąc nigdy nie robiłem obsługi myszki ale w tym linku jest:
http://www.computer-engineering.org/ind ... ialization
i chyba trzeba by z tej pierwszej wyłowić to co najważniejsze.
Tutaj masz troche po polsku: http://mipsa.p.lodz.pl/download/BazaWie ... iatura.pdf
-
ZbeeGin
-
ZbeeGin