Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 28 mar 2024, o 16:22


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 19 ] 
Autor Wiadomość
PostNapisane: 2 maja 2021, o 13:17 
Offline
Nowy

Dołączył(a): 19 sie 2014
Posty: 16
Pomógł: 0

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.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 maja 2021, o 14:11 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27212
Lokalizacja: Szczecin
Pomógł: 1041

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 ?

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 maja 2021, o 14:20 
Offline
Nowy

Dołączył(a): 19 sie 2014
Posty: 16
Pomógł: 0

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 maja 2021, o 19:09 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27212
Lokalizacja: Szczecin
Pomógł: 1041

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

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

Opisz dokładniej

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 maja 2021, o 21:32 
Offline
Nowy

Dołączył(a): 19 sie 2014
Posty: 16
Pomógł: 0

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 ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2021, o 09:43 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27212
Lokalizacja: Szczecin
Pomógł: 1041

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.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2021, o 12:55 
Offline
Nowy

Dołączył(a): 19 sie 2014
Posty: 16
Pomógł: 0

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2021, o 14:28 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27212
Lokalizacja: Szczecin
Pomógł: 1041

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?

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2021, o 14:37 
Offline
Nowy

Dołączył(a): 19 sie 2014
Posty: 16
Pomógł: 0

Windows 10



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2021, o 15:00 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27212
Lokalizacja: Szczecin
Pomógł: 1041

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.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 maja 2021, o 18:01 
Offline
Nowy

Dołączył(a): 19 sie 2014
Posty: 16
Pomógł: 0

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;))



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 maja 2021, o 21:44 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27212
Lokalizacja: Szczecin
Pomógł: 1041

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 ]


_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 maja 2021, o 22:47 
Offline
Nowy

Dołączył(a): 19 sie 2014
Posty: 16
Pomógł: 0

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 maja 2021, o 00:24 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27212
Lokalizacja: Szczecin
Pomógł: 1041

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

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 maja 2021, o 14:26 
Offline
Nowy

Dołączył(a): 19 sie 2014
Posty: 16
Pomógł: 0

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 maja 2021, o 16:40 
Offline
Nowy

Dołączył(a): 19 sie 2014
Posty: 16
Pomógł: 0

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 ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 maja 2021, o 16:49 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27212
Lokalizacja: Szczecin
Pomógł: 1041

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

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 maja 2021, o 18:51 
Offline
Nowy

Dołączył(a): 19 sie 2014
Posty: 16
Pomógł: 0

ObrazekObrazekObrazekObrazekObrazekObrazekObrazek
;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 maja 2021, o 22:07 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27212
Lokalizacja: Szczecin
Pomógł: 1041

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!

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 19 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 8 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO