logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak poprawnie obsłużyć dwa przyciski w aplikacji?

Dzonzi 22 Mar 2018 15:08 1146 19
  • #1 17120486
    Dzonzi
    Poziom 12  
    do usunięcia
  • #2 17120514
    mycodename47
    Poziom 15  
    Na obsługę przycisków jest mnóstwo sposobów, mi najlepiej sprawdza się próbkowanie w przerwaniach, nie jest to specjalnie trudne, w internecie jest mnóstwo poradników jak to zrobić i działa :) Dodatkowo w prosty sposób detekcje się różne stany (wciśnięcie, przytrzymanie, puszczenie).
  • #3 17120664
    Dzonzi
    Poziom 12  
    Ale to nadal nie odpowiada na pytanie czemu po pierwszym kliku licznik = 3; gdy mam dwa przyciski
  • #4 17120700
    Konto nie istnieje
    Konto nie istnieje  
  • #5 17120705
    Dzonzi
    Poziom 12  
    Co to proponujesz?

    Poratujcie jakimś dobrym pseudokodem
  • #6 17120910
    JacekCz
    Poziom 42  
    Piotrus_999 napisał:
    Dzonzi napisał:
    Ale to nadal nie odpowiada na pytanie
    Po prostu jest b.źle napisane, abstrahując od błędnej koncepcji itd itd.


    zgadzam się.
    Kod który "w oczach" nie jest czytelny, jest PRAWDOPODOBNIE błędny (tzn głównie sensie nie wart szukania błędów, błędów zwykle jest wiele itd ...)
  • #7 17120976
    Dzonzi
    Poziom 12  
    Ale jakim cudem wyświetla trzecią literę?
  • #8 17121009
    grko
    Poziom 33  
    @Dzonzi Kod, który wkleiłeś jest niesformatowany i podejrzewam, że nikomu nawet nie będzie się chciało tego czytać. Przyłóż się do niego bardziej tak aby wogóle dało się do czytać -> nawiasy, wcięcia itd. W eclipse masz przykładowo automatyczne formatowanie Ctrl+a a potem Ctrl+i.
  • #9 17121101
    Dzonzi
    Poziom 12  
    do usunięcia
  • #11 17121128
    Dzonzi
    Poziom 12  
    do usunięcia
  • #12 17121258
    JacekCz
    Poziom 42  
    grko napisał:
    @Dzonzi Kod, który wkleiłeś jest niesformatowany i podejrzewam, że nikomu nawet nie będzie się chciało tego czytać. Przyłóż się do niego bardziej tak aby wogóle dało się do czytać -> nawiasy, wcięcia itd. W eclipse masz przykładowo automatyczne formatowanie Ctrl+a a potem Ctrl+i.


    Nie chcem ale bendem czytelnikiem kodu ... niestety przeczytałem (nieco) ten kod. Rzeczywiście szkoda nawet Ctrl-A klepnąć, że o zużyciu następnych klawiszy nie wspomnę.
    switch jest zbędny, wystarczy DOBRZE obejrzec co jest robione w każdej odnodze, zamodelowanie czasu na uK jest przedziwne, a dokładnie nie ma go wcale (np przekręcanie się liczników), goto jak w najbardziej koszmarnych przykładach apostołów anty-goto, intrukcje blokowe wylatują w kosmos, nie sposób zobaczyć jaki jest stan programu.

    wg Mojej Wspaniałej Zasady (tm) statystycznie błędów jest >=10
    :)
  • #13 17121327
    Dzonzi
    Poziom 12  
    A jak wywalę ten drugi przycisk to będzie błędów?
  • #14 17122228
    JacekCz
    Poziom 42  
    Dzonzi napisał:
    A jak wywalę ten drugi przycisk to będzie błędów?


    Przekomarzasz się, czy serio pytasz?
    Na tyle, na ile różni się skakanie na oślep na dwóch nogach, albo na jednej. Jakaś teoretyczna różnica jest, ale bez znaczenia praktycznego.
  • #15 17122384
    mycodename47
    Poziom 15  
    Trochę nie mam czasu, żeby napisać Ci gotowy kod, ale myślę, że po zapoznaniu się z tym dokumentem sam sobie poradzisz.
  • #16 17122945
    Dzonzi
    Poziom 12  
    Przepisałem tą funkcję debounce i działa jeszcze gorzej, niż ta moja.

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Kod: C / C++
    Zaloguj się, aby zobaczyć kod



    static declaration of 'debounce' follows non-static declaration

    Dodano po 4 [godziny] 9 [minuty]:

    Zamykam
  • #17 17128318
    mycodename47
    Poziom 15  
    Nie wiem czy przeczytałeś cały dokument, który Ci podesłałem, ale ta funkcja powinna wywoływać się w przerwaniu, jeżeli nadal będzie źle to szukałbym błędów w innym miejscu np. pcb...
  • #18 17128354
    Dzonzi
    Poziom 12  
    To musi działać bez przerwania. Już zrobiłem. Było dobrze tak jak miałem.
  • #19 17128357
    mycodename47
    Poziom 15  
    Ok, dobrze, że działa. Problemy mogą pojawić się jak program się rozrośnie.
  • #20 17128536
    NoweMillennium
    Poziom 17  
    Dzonzi napisał:
    To musi działać bez przerwania.

    Z jakiego powodu nie można używać przerwań?
REKLAMA