ATNEL tech-forum
https://forum.atnel.pl/

Początki z Orange Bookiem i V-USB HID ale coś nie trymi
https://forum.atnel.pl/topic23751.html
Strona 1 z 1

Autor:  xec [ 2 maja 2021, o 13:17 ]
Tytuł:  Początki z Orange Bookiem i V-USB HID ale coś nie trymi

Witam. Probuję okiełznać V-USB ale od samego startu coś mi nie trybi ;)
Już uprościłem mój projekt do minimum aby od pierwszych kroków poznawać zasadę działania...
Naklepałem jakiś mini deskryptor, który ma działać jako GamePad tylko z 3 przyciskami. W timerze "przyciskam" i "zwalniam" cyklicznie jeden przycisk, a dla oka dołozyłem diodę LED która ma sie zapalić jak przycisk wciśniety i zgasić jak przycisk zwolniony... Jak podłączę zasilanie, widzę po ledzie, że coś tam probowano wysłać, później się nic nie dzieje. Druga dioda miga na drugim Timerze programowym w celu wizualizowania działania kodu.

Poniżej wklejam kod, będę bardzo wdzięczy za wskazanie mi miejsca błedu...

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Autor:  mirekk36 [ 2 maja 2021, o 14:11 ]
Tytuł:  Re: Początki z Orange Bookiem i V-USB HID ale coś nie trymi

Może najpierw powiedz czy odpaliłeś dla sprawdzenia i przekonania się, że jest wszystko ok najprostszy przykład z książki? ten pierwszy jest najprostszy chyba.

Po drugie na podstawie czego zbudowałeś swój gamepadowy deskryptor ?

Jak to w ogóle próbujesz sprawdzać w kompie ?

Autor:  xec [ 2 maja 2021, o 14:20 ]
Tytuł:  Re: Początki z Orange Bookiem i V-USB HID ale coś nie trymi

Postanowiłem skupić się na gamepadzie z tego względu, że można na żywo w systemie widzieć wciskane klawisze. System wykrywa poprawnie urządzenie jak i zdefiniowane klawisze.
Chcialem od najprostrzej podstawy zacząć, bez zaprzęgania dodatkowych bibliotek, bez elementu Output itd.

Obrazek

Autor:  mirekk36 [ 2 maja 2021, o 19:09 ]
Tytuł:  Re: Początki z Orange Bookiem i V-USB HID ale coś nie trymi

xec napisał(a):
później się nic nie dzieje

Niestety to są słabe opisy problemu i ciężko cokolwiek odpowiedzieć ...

Opisz dokładniej

Autor:  xec [ 2 maja 2021, o 21:32 ]
Tytuł:  Re: Początki z Orange Bookiem i V-USB HID ale coś nie trymi

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Mialo to działać tak, że cyklicznie co jakiś krótki czas (programowy Timer1) symulowane jest wciśnięcie przycisku button raport.buttons = 1; a przy kolejnej wizycie w Timer1 program ma zwolnić przycisk raport.buttons = 0;... Jako debuger w warunku if( usbInterruptIsReady() wstawiłem diodę LED, która ma się zaświecić gdy przycisk jest wciśnięty, a zgasić gdy zwolniony. Gdy podłączę zasilanie, diodka po chwili zasygnalizuje mi spełnienie warunku if( usbInterruptIsReady() ) i zasymulowane wciśniecie przycisku a po chwili zgaśnie sygnalizując kolejne wejście Timer1, spełnienie warunku if( usbInterruptIsReady() ) i zasymulowanie zwolnienia przycisku. Akcja powinna być ponawiana w kółko, lecz nie jest, wygląda jakby warunek if( usbInterruptIsReady() ) był spełniony tylko raz i więcej już nie... Chodzi tylko o takie szybkie rzucenie okiem, może (na pewno) coś zrobilem nie tak a chciałem na szybko sprawdzić czy taki prosty gamepad zdami egzamin przy pewnym programie... Zadanie Hello World z książki i tak wykonam, tylko chwilowo krucho z czasem ;)

Autor:  mirekk36 [ 3 maja 2021, o 09:43 ]
Tytuł:  Re: Początki z Orange Bookiem i V-USB HID ale coś nie trymi

A no to teraz rozumiem - tylko, że to oznacza, jakby rzeczywiście nic nie wysyłało - ale hmm problem może leżeć jednak w samym deskryptorze - czego też nie mam teraz jak sprawdzić ... ale jak tylko znajdę czas to spróbuję.

Rozumiem, że w menedżerze urządzeń ładnie się wykrywa i jest bez żadnych znaków zapytania, wykrzykników, bez problemów tak?

Czy widać je na liście urządzeń którą można odpalić z zakładki "Narzędzia" MkAvrCalculatora ? (przycisk Check USB devices)

------------------------ [ Dodano po: 13 minutach ]

w twoim deskryptorze brakuje chyba sekcji Physical - spróbuj może tego deskryptora (ale jeszcze go nie sprawdzałem) i daj znać

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Autor:  xec [ 3 maja 2021, o 12:55 ]
Tytuł:  Re: Początki z Orange Bookiem i V-USB HID ale coś nie trymi

Już po napisaniu posta probowałem umieścić przycisk w COLLECTION (Physical), nie pomogło, podobnie jak skopiowanie przesłanego przez Pana deskryptora.
Urządzenie poprawnie wykrywane jest w menadżerze urządzeń i MkAvrCalculator także...

Ok, wyciągnę atmegę 32 i krok pok kroku zrobię Hello World z książki

Autor:  mirekk36 [ 3 maja 2021, o 14:28 ]
Tytuł:  Re: Początki z Orange Bookiem i V-USB HID ale coś nie trymi

xec napisał(a):
Ok, wyciągnę atmegę 32 i krok pok kroku zrobię Hello World z książki

No właśnie, żeby sprawdzić czy ci wysyła w ogóle dane przez V-USB do PC'ta. Czy dobra konfiguracja itp

Przy okazji - jaki windows używasz?

Autor:  xec [ 3 maja 2021, o 14:37 ]
Tytuł:  Re: Początki z Orange Bookiem i V-USB HID ale coś nie trymi

Windows 10

Autor:  mirekk36 [ 3 maja 2021, o 15:00 ]
Tytuł:  Re: Początki z Orange Bookiem i V-USB HID ale coś nie trymi

he - z ciekawości przetestowałem właśnie nawet ten twój deskryptor i śmiga aż miło ;)

nagrałem mini wideo z działania do GIF'a

Obrazek

------------------------ [ Dodano po: 4 minutach ]

wiesz co? spróbuj dodać jeszcze nr ID dla deskryptora tak jak u mnie to jest

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


i oczywiście w raporcie musi być:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


a co za tym idzie wysłanie wciśnięcia i puszczenia też musi to uwzględniać

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



i zwolnienie:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


------------------------ [ Dodano po: 16 minutach ]

O! a tu masz pełnego gamepada - podaję ci pełny deskryptor bo w tym poprzednim co podałem był błąd - i przez to złą ilość przycisków pokazywał

Obrazek


Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Autor:  xec [ 5 maja 2021, o 18:01 ]
Tytuł:  Re: Początki z Orange Bookiem i V-USB HID ale coś nie trymi

Nadal mi coś nie śmiga, skopiowałem już i deskryptor i config v-usb zaremowałem tylko konfigurację timera i int (wtedy domyślnie jest wykorzystywany Timer0 i INT0, zgadza się?)

Będę wdzięczy jakby rzucił Pan jednym okiem na funkcje poniżej:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
- Czy funkcja usbFunctionSetup tak ma wyglądać? Mimo iż w konfigu V-USB zaznaczamy, że nie będziemy korzystać z funkcji usbFunctionRead() i usbFunctionWrite()?

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



I jeszcze tylko czy cała operacja przysyłania raportu może sprowadzać się do poniższego kodu?:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


P.S. Timer2 jest to programowy timer sterowany przez sprzętowy Timer2 - on działa prawidłowo (jak wstawie w nim LED_TOG to miga;))

Autor:  mirekk36 [ 5 maja 2021, o 21:44 ]
Tytuł:  Re: Początki z Orange Bookiem i V-USB HID ale coś nie trymi

xec napisał(a):
zaremowałem tylko konfigurację timera i int

a jakiego timera? gdzie ty w pliku vusbconfig.h widzisz wpis odnośnie konfiguracji timera ?

Tak jak się zaremuje na dole te wpisy od przerwań to domyślnie biblioteka użyje INT0

Twoja funkcja usbFunctionSetup() wygląda OK

xec napisał(a):
Mimo iż w konfigu V-USB zaznaczamy, że nie będziemy korzystać z funkcji usbFunctionRead() i usbFunctionWrite()?

Tak jak napisałem w Orangebooku - pewnie pominąłeś to albo umknęło więc przypomnę - TA funkcja ZAWSZE musi być - ona odpowiada za Control Pipe0 - to za jej pomocą przepływają w ogóle deskryptory też przy starcie urządzenia itp itd - ona pełni jeszcze inne funkcje - no ale to raczej do poczytania dokładniejszego zapraszam OB

xec napisał(a):
I jeszcze tylko czy cała operacja przysyłania raportu może sprowadzać się do poniższego kodu?:


xec napisał(a):
                                        raport.buttons = 1;
                                        raport.x = 50;

A co to jest ? Wiesz pokazujesz fragmenty kodu a reszty trzeba się domyślać - więc nie wiadomo co poradzić, a prawdopodobnie zrobiłeś jakiś dziwny raport i to za duży, na pewno dodałeś ID do raportu no ale w sposób niestety zły próbujesz wysyłać i kończyć wciśnięcie - popatrz, że na przykłady wysłania wciśnięcia i zwolnienia - jakie ci wyżej podałem i jak powinien wyglądać zarówno raport jaki deskryptor przy użyciu ID

------------------------ [ Dodano po: kilkunastu sekundach ]


Autor:  xec [ 5 maja 2021, o 22:47 ]
Tytuł:  Re: Początki z Orange Bookiem i V-USB HID ale coś nie trymi

Użyłem deskryptora podanego przez Pana, tego z ID:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


a później próbuję wysłać ten raport w taki właśnie sposób:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Gdzieś jakąś gafę strzeliłem - pewnie jakas pierdoła, ... Jak zaczynałem czytać OB to nie miałem bladego pojęcia o HID, teraz coś pomieszałem niby (mój deskryptor u Pana zadziałał ;)) w kodzie, nie działa, jak nie zatrybi to cofnę się w książcę do początku o deskryptorach i czytając jeszcze raz z większym już zrozumieniem będę starał się znaleźć gdzie leży problem

Autor:  mirekk36 [ 6 maja 2021, o 00:24 ]
Tytuł:  Re: Początki z Orange Bookiem i V-USB HID ale coś nie trymi

No zobacz z tym ID wciąż masz problem - ale pewnie nie przez to ci nie działa - sprawdź jednak to:


Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


------------------------ [ Dodano po: 1 minucie ]

Na jakim procku to testujesz ? Jakbyś testował na m32 i na przerwaniu INT1 - tak jak mam na zestawie ATB to byś mógł podesłać mi swój kod to bym go sprawdził wtedy czy śmiga

Autor:  xec [ 6 maja 2021, o 14:26 ]
Tytuł:  Re: Początki z Orange Bookiem i V-USB HID ale coś nie trymi

Atmega8, skończyły mi się 32, muszę dokupić

Autor:  xec [ 6 maja 2021, o 16:40 ]
Tytuł:  Re: Początki z Orange Bookiem i V-USB HID ale coś nie trymi

Panie Mirku, zmieniłem pin dla D- i D+ i śmiga.... D+ przywróciłem do poprzedniego i dziala, wygląda jakby D- był uwalony, ale z drugiej strony deskryptor poprawnie się meldował w systemie?
Dziwne tym bardziej, że Atmega nówka, wcześniej nie używana...

No nic, najważniejsze, że działa... Za to zawracanie gitary podrzucę Panu piw... soczek jak będę kiedyś w okolicy ;)

Autor:  mirekk36 [ 6 maja 2021, o 16:49 ]
Tytuł:  Re: Początki z Orange Bookiem i V-USB HID ale coś nie trymi

;) no! to ważne że się udało - jak to widać najczęściej sprzętowe problemy zabierają najwięcej czasu ;)

Autor:  xec [ 19 maja 2021, o 18:51 ]
Tytuł:  Re: Początki z Orange Bookiem i V-USB HID ale coś nie trymi

ObrazekObrazekObrazekObrazekObrazekObrazekObrazek
;)

Autor:  mirekk36 [ 19 maja 2021, o 22:07 ]
Tytuł:  Re: Początki z Orange Bookiem i V-USB HID ale coś nie trymi

No i pięknie - jak rozumiem, nie dość że ci to działa to jeszcze przy okazji rozumiesz wszystko od podszewki - co za co jest odpowiedzialne ;) I o to chodzi!

Strona 1 z 1 Strefa czasowa: UTC + 1
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/