-
1. Data: 2014-02-26 23:33:05
Temat: Klawiatura USB i jej obsługa
Od: "Akond ze skwak" <A...@s...pl>
Jest problem ...
Mianowicie klawiatura USB podłączona do procesora SAM3X przez port native
( płyta Arduino DUE).
Wiem ... Arduino - kupa szmelcu weź się człowieku za coś innego ...
Ale może ktoś jednak się z tym bawił.
W bibliotekach i dostępnych przykładach do obsługi owej klawiatury
użyta zostaje klasa HostUSB i KeyboardController w taki sposób, że w pętli
głównej programu
wywołuje się metodę HostUSB.Task() która odpowiada za komunikację i ruch na
USB.
Wszystko działa pięknie ( w przykładach) , pod warunkiem, że się za bardzo
nie skomplikuje projektu.
Problem polega na tym, że po podłączeniu klawiatury do układu i jej
zidentyfikowaniu przez system
wspomniana metoda Task() czeka na naciśniecie klawisza i blokuje proces.
Istnieje stała czasowa TIME_LIMIT 5 sekund ... czyli co 5 sek dostaję
informację, że nic się nie dzieje.
Jeżeli nacisnę klawisz to oczywiście od razu jest reakcja.
Patrząc do środka procedury widzę moment zatrzymania w pętli ograniczonej
przez timeout 5sek
w której jest funkcja UHD_Pipe_Is_Transfer_Complete odbierająca dane z
klawiatury.
Zmniejszenie limitu timeout poniżej 100 ms powoduje błąd inicjowania
urządzenia.
A i tak to jest jak dla mnie za duża strata czasu.
Próbowałem metodę Task uruchamiać z przerwania albo innego wątku Shedulera
ale nic to nie daje.
Po prostu - gdy z klawiaturą nic się nie dzieje Task czeka 5 sekund
obojętnie gdzie by jej nie wsadzić.
Jedynie co mi przychodzi do głowy to rozpisanie tej klasy na drobne i
włączenie po kawałku do pętli głównej programu.
... albo poszukanie sposobu aby mój program uruchamiany był z wnętrza klasy
HostUSB ... to może być rozwiązanie .
Coś podobnego jak USB na ATmega8.
Pozdr.
-
2. Data: 2014-02-27 19:19:15
Temat: Re: Klawiatura USB i jej obsługa
Od: "Akond ze skwak" <A...@s...pl>
No i udało się ...
Do najbardziej zagnieżdżonej pętli wstawiłem procedurę
UsbUserCalback, wyprowadziłem ją na zewnątrz.
W pętli głównej uruchamiam HustUSB.Task, a to co tam miałem
przeniosłem do UsbUserCalback.
Klawiatura działa i cała reszta również.
Pozdr. AzS
PS.
Im dłużej się tym bawię (Ardiuno DUE) tym bardziej mi się podoba.
I nie jest to kryptoreklama ...
-
3. Data: 2014-02-27 20:03:43
Temat: Re: Klawiatura USB i jej obsługa
Od: "tusk, donald tusk" <N...@g...pl>
skąd zassałeś biblioteki?
-
4. Data: 2014-02-27 20:14:38
Temat: Re: Klawiatura USB i jej obsługa
Od: "Akond ze skwak" <A...@s...pl>
>skąd zassałeś biblioteki?
Z linków na forum Arduino.
np :
http://arduino.cc/en/Reference/USBHost#.Uw-OTWeYa70
-
5. Data: 2014-02-27 20:26:14
Temat: Re: Klawiatura USB i jej obsługa
Od: "Akond ze skwak" <A...@s...pl>
>skąd zassałeś biblioteki?
Sorry ... akurat HostUsb ( i wiele innych) instaluje się razem z IDE
http://arduino.cc/en/Main/Software#.Uw-PemeYa70