Klawiatura USB i jej obsługa

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.

Reply to
Akond ze skwak
Loading thread data ...

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 ...

Reply to
Akond ze skwak

skąd zassałeś biblioteki?

Reply to
tusk, donald tusk

Z linków na forum Arduino.

np :

formatting link

Reply to
Akond ze skwak

Sorry ... akurat HostUsb ( i wiele innych) instaluje się razem z IDE

formatting link

Reply to
Akond ze skwak

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.