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

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 10 lip 2025, o 08:03


    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 ] [ Zaznacz wszystko ]
    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: 27415
    Lokalizacja: Szczecin
    Pomógł: 1043

    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: 27415
    Lokalizacja: Szczecin
    Pomógł: 1043

    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 ] [ Zaznacz wszystko ]
    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: 27415
    Lokalizacja: Szczecin
    Pomógł: 1043

    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 ] [ Zaznacz wszystko ]
    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: 27415
    Lokalizacja: Szczecin
    Pomógł: 1043

    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: 27415
    Lokalizacja: Szczecin
    Pomógł: 1043

    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 ] [ Zaznacz wszystko ]
    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 ] [ Zaznacz wszystko ]
    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 ] [ Zaznacz wszystko ]
    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: 27415
    Lokalizacja: Szczecin
    Pomógł: 1043

    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 ] [ Zaznacz wszystko ]
    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 ] [ Zaznacz wszystko ]
    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: 27415
    Lokalizacja: Szczecin
    Pomógł: 1043

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


    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    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: 27415
    Lokalizacja: Szczecin
    Pomógł: 1043

    ;) 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: 27415
    Lokalizacja: Szczecin
    Pomógł: 1043

    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 6 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:  
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO