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 w 2025? 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 12 kwi 2025, o 15:31


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 
    Autor Wiadomość
     Tytuł: SuperDebouce
    PostNapisane: 13 sie 2012, o 15:01 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 25 maja 2012
    Posty: 296
    Lokalizacja: Chebzie Dolne
    Zbananowany użytkownik

    Pomógł: 6

    Witam!
    Używam funkcji SuperDebounce z Mirka książki i pojawił się mi problem. Generalnie napisze najpierw
    do czego to wykorzystuję. Steruję kamerą za pomocą RS232. Kamera ta przyjmuje określone komendy, które np sterują zoomem, autofocusem itp. Komendy wysyła funkcją uart_putc(0x81) itp. Chciałem np sterować zoomem za pomocą przycisku, jeden + drugi przycisk - i tak z kilkoma funkcjami. Wyszło na to że używam 8 przycisków. Teraz jest taka rzecz.
    Kiedy wydam rozkaz np zoom+ to kamera zoomuje do maxa i dla tego potrzebna jest funkcja stop, która jest w nocie pdf kamery nazwałem ją void stop(void). I teraz jak napisać funkcję SuperDebounce żeby ująć funkcję np zoom i stop.

    Robię coś takiego: (pisze teraz z pamięci bo nie mam kody na tym pc)
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Oczywiście bardzo skrótowo napisałem z pamięci.
    Teraz jak tutaj zaimplementować funkcję stop, która by zatrzymywała funkcję tele_zoom na czas, po tym jak puszczę przycisk? Zoom ma sie tylko wykonywać jak trzymam wciśnięty przycisk.

    _________________
    Inspekcja TV kanalizacji
    Programowanie



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 13 sie 2012, o 15:10 
    Offline
    Moderator
    Avatar użytkownika

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

    Przede wszystkim to zajrzyj do kolejnej lekcji (Projekt wielozadaniowy) na płycie DVD tam masz lekko poprawioną tą funkcję, ponieważ trzeba było do niej dodać dodakowy parametr na początku - zobacz tam co i jak

    A użycie samej funkcji ??? no przecież hmmm jest dość dobrze opisane w książce - może napisz czego nie rozumiesz - zamiast pytania jak użyć ?

    Przecież masz w nie reakcję pięknie albo na wciśnięcie klawisza albo funkcję auto-repeat. Ta druga może przydać ci się do zoomowania bo rozumiem że jak się wciśnie klawisz dłużej to ma się robić zooom czyli trzeba powtarzać wysyłanie jakiejś komendy do kamery

    No a do klawisza sto przyda ci się tylko dodać funkcję własną do pojedynczego wciśnięcia czyli zatrzymania STOP

    albo kompletnie nie wiem o co chodzi ? ;)

    bo co ty za program napisałeś ? piszesz że chodzi ci o dwa klawisze a podajesz przykład z jednym .....

    _________________
    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: 13 sie 2012, o 16:06 
    Offline
    Moderator
    Avatar użytkownika

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

    GwynBleidD napisał(a):
    mirku, z tego co zrozumiałem kamera przyjmuje 2 komendy (które nas interesują) zoom+ i stop. Podanie zoom+ powoduje zoom na max lub do podania komendy stop. Kolega chciałby, żeby komenda zoom+ była wysłana przy naciśnięciu przycisku, a stop przy jego puszczeniu. Tak przynajmniej ja to zrozumiałem, bo ma to wtedy sens ;)


    No to nie za bardzo SuperDebounce w takiej postaci - trzeba byłoby sobie trochę to przerobić .... toż Funkcja ta nie była podana jako gotowa super biblioteka na każdy przypadek ;) a jedynie jako przykład jak można podchodzić do oprogramowania sobie klawiszy ....

    więc można zrealizować wszystko - tylko trzeba to już dalej zrobić we własnym zakresie - na 100% nigdzie się gotowca na takie nietypowe potrzeby nie znajdzie przecież ... i nie o to chodzi chyba ? prawda

    warto więc przestudiować działanie SuperDebounce i zrozumieć zasadę działania - bo na tej podstawie już będzie można pisać sobie co się żywnie spodoba ;)

    _________________
    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: 13 sie 2012, o 18:19 
    Offline
    Moderator
    Avatar użytkownika

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

    Rozumiem to doskonale - jednak jako że źle na początku zrozumiałem to starałem się podpowiedzieć jak mogłem ;)

    Za to na stworzenie RYBY na razie nie mam czasu :( .... może znajdzie się inna osoba ... zobaczymy

    _________________
    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: 13 sie 2012, o 18:37 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 25 maja 2012
    Posty: 296
    Lokalizacja: Chebzie Dolne
    Zbananowany użytkownik

    Pomógł: 6

    GwynBleidD zrozumiałeś mnie doskonale, dokładnie o to mi chodziło:). Cóż pokombinuje jutro z tą funkcją. Dzięki za zainteresowanie:)
    Robiłem przyciski na timerach programowych. Lecz kiedy wysyłałem komendę to zoom nie szedł płynnie tylko tak zacinało - czy to może od programowych przerwań?
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    _________________
    Inspekcja TV kanalizacji
    Programowanie



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 13 sie 2012, o 18:53 
    Offline
    Uzytkownik zasłużony dla forum.atnel.pl
    Avatar użytkownika

    Dołączył(a): 16 lip 2012
    Posty: 2088
    Lokalizacja: Leżajsk / Kraków
    Pomógł: 411

    Jak klawisz masz wciśnięty to wysyłasz cyklicznie rozkaz i zajmujesz procesor i kamerę. Musisz wysłać komendę tylko raz w reakcji na zbocza. Np.
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    _________________
    Dragonus Cracovus: Biomagia



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 13 sie 2012, o 21:53 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    Może nie wiele pomogę , ale z lenistwa nie używam żadnych funkcji debounce/superdebounce i megadebounce wszystko załatwia mały scalaczek:

    MAX6816 -- dla 1 klawisza
    MAX6817 -- dla 2ch
    MAX6818 -- dla 8

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 14 sie 2012, o 06:12 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 25 maja 2012
    Posty: 296
    Lokalizacja: Chebzie Dolne
    Zbananowany użytkownik

    Pomógł: 6

    Fajniutki ten układzik. Nie wiedziałem o czymś takim nawet:)

    _________________
    Inspekcja TV kanalizacji
    Programowanie



    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: 8 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

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


    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