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 2 maja 2025, o 23:52


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
    Autor Wiadomość
    PostNapisane: 7 kwi 2020, o 06:33 
    Offline
    Nowy

    Dołączył(a): 28 gru 2014
    Posty: 19
    Pomógł: 0

    Witam
    Proszę o informację normalne zachowanie
    zakomentowane mam
    // register_enc_event_callback( my_encoder );
    // ENCODER_EVENT();
    w pliku mkenkoder.h odkomentowałem
    extern volatile int enco_cnt;

    ustawienia mam takie
    #define USE_INT_IRQ 1
    #define ENC_INT -1
    #define ENC_A (1<<PD2)
    #define ENC_B (1<<PD3)
    i impulsy z enkodera są normalnie zliczane.
    Pytanie czy to normalne, czy mam szukać gdzieś błędu u siebie?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 7 kwi 2020, o 16:44 
    Offline
    Użytkownik

    Dołączył(a): 11 sty 2015
    Posty: 166
    Pomógł: 24

    Skoro używasz przerwań to ENCODER_EVENT() jest niepotrzebne i po jego zakomentowaniu encoder nadal jest zliczany.
    register_enc_event_callback( my_encoder ) - nie jest funkcją zliczającą, tylko służy do zarejestrowania twojej funkcji która ma reagować na obrót encodera.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 7 kwi 2020, o 18:47 
    Offline
    Użytkownik

    Dołączył(a): 24 sty 2012
    Posty: 1469
    Pomógł: 56

    Ależ ENCODER_EVENT() jest jak najbardziej potrzebne.
    To tam jest sprawdzane czy funkcja my_encoder jest
    zarejestrowana i w przypadku ustawienia flagi o zajściu
    zdarzenia obrócenia enkodera wywoływana.
    No chyba, że obsługuje się enkoder w poolingu...

    _________________
    Jestem początkujący i moje porady mogą być błędne



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 7 kwi 2020, o 19:15 
    Offline
    Użytkownik

    Dołączył(a): 11 sty 2015
    Posty: 166
    Pomógł: 24

    Nie wiem co gdzie masz, bo nie wiem co masz w kodzie.
    Nie mam też Mirkowej biblioteki, jeżeli to jej używasz.
    Natomiast Twoje rozumowanie jest chyba na odwrót.
    Jeżeli używasz pollingu to ENCODER_EVENT() jest niezbędny bo tam testujesz wejścia.
    Jeżeli używasz przerwań a na to wskazuje zamieszczony fragment kodu to ENCODER_EVENT() jest zbędne.
    Dlatego program Ci działa, mimo tego, że uważasz, że nie powinien.

    ------------------------ [ Dodano po: 31 minutach ]

    Sorki, nie zwróciłem uwagi, że autor poprzedniego postu, nie jest autorem wątku.



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

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 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