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 15 lip 2025, o 08:03


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 10 ] 
    Autor Wiadomość
     Tytuł: SeperDebounce
    PostNapisane: 5 sie 2012, o 07:57 
    Offline
    Użytkownik

    Dołączył(a): 23 sty 2012
    Posty: 27
    Pomógł: 0

    z moich testów wynika, że SuperD działa wyłącznie jeżeli przyciski są skonfigurowane na tym samym porcie?
    jeżeli mam jeden przycisk na innym porcie wtedy funkcyjnie przyciski się zamieniają, np. wciskam 1 a reakcja jest jak bym wcisnął 3(mam 3 przyciski).



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 5 sie 2012, o 08:03 
    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 chcesz podyskutować to pokaż kod programu.

    _________________
    Dragonus Cracovus: Biomagia



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 5 sie 2012, o 08:31 
    Offline
    Moderator
    Avatar użytkownika

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

    Krauser napisał(a):
    Jak chcesz podyskutować to pokaż kod programu.


    A już myślałem że i tu podołasz ??? No byłbym w szoku ;) ale po poprzednim wątku wiem że do wszystkiego jesteś pan zdolny ;)

    Panowie - zadając pytania a szczególnie wypowiadając jakieś niesprawdzone opinie na temat kodów z książki, bardzo proszę - powołajcie się na jakiś kod źródłowy. OCZYWIŚCIE nie mówię tu o kodzie samej funkcji SuperDebounce() - tego kodu nie trzeba tu pokazywać - każdy go ma pod ręką.

    Chodzi o wasz kod np z main.c, żeby zobaczyć jak tej funkcji używacie w praktyce ...

    Ja dodam tylko, że ta funkcja nie ma absolutnie żadnych takich ograniczeń jak napisał na górze kolega sirk77 - a jeśli pokaże swój kod to pewnie uda nam się to wyjaśnić dlaczego tak a nie inaczej jemu się coś tam w programie zachowuje.

    _________________
    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 sie 2012, o 08:34 
    Offline
    Użytkownik

    Dołączył(a): 23 sty 2012
    Posty: 27
    Pomógł: 0

    generalnie kod nie powinien mieć większego znaczenia, poprzednio używałem przycisków podłączonych do portuD i działało prawidłowo:

    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    obecnie przycisk P1 mam na porcie C, czyli zmiana w programie:

    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    funkcji SuperD uzywam bezpośrednio z projektu wielozadaniowego z książki nr1

    jeżeli zamiast
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    zastosuję zwykłe wykrywanie przycisku
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    wszystkie przyciski działają prawidłowo



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 5 sie 2012, o 08:50 
    Offline
    Moderator
    Avatar użytkownika

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

    No i tu kolega zrobił małą skuchę - od razu mówię.... tzn dlaczego czasem moi szanowni czytelnicy nie zaglądają do kodów na płycie DVD ???? Ja kody w książce traktuję nieco luźniej - one mają służyć tylko do wyjaśnienia pewnych zagadnień. Czasem niestety przy takiej okazji zdarzy się drobny błąd lub niedomówienie jak np w rozdziale o ADC - proszę sobie np przeczytać to:

    http://atnel.pl/domyslna-promocja-do-typu-int.html

    ale ok - przejdźmy do problemu kolegi sirk77 i rozwiążmy go do końca ;)

    Proszę spojrzeć jaki nagłówek funkcji SuperDebounce znajduje się na płycie DVD:

    Cytuj:
    void SuperDebounce(uint8_t * key_state, volatile uint8_t *KPIN,
    uint8_t key_mask, uint16_t rep_time, uint16_t rep_wait,
    void (*push_proc)(void), void (*rep_proc)(void) );


    Widzi kolega tutaj zasadniczą różnicę ??? wprowadzony został dodatkowy parametr. Jego opis przy funkcji na DVD wygląda tak:

    Cytuj:
    /************** funkcja SuperDebounce do obsługi pojedynczych klawiszy ***************
    * AUTOR: Mirosław Kardaś
    * ZALETY:
    * - nie wprowadza najmniejszego spowalnienia
    * - posiada funkcję REPEAT (powtarzanie akcji dla dłużej wciśniętego przycisku)
    * - można przydzielić różne akcje dla trybu REPEAT i pojedynczego kliknięcia
    * - można przydzielić tylko jedną akcję wtedy w miejsce drugiej przekazujemy 0 (NULL)
    *
    * Wymagania:
    * Timer programowy utworzony w oparciu o Timer sprzętowy (przerwanie 100Hz)
    *
    * Parametry wejściowe:
    * *key_state - wskaźnik na zmienną w pamięci RAM (1 bajt)
    * *KPIN - nazwa PINx portu na którym umieszczony jest klawisz, np: PINB
    * key_mask - maska klawisza np: (1<<PB3)
    * rep_time - czas powtarzania funkcji rep_proc w trybie REPEAT
    * rep_wait - czas oczekiwania do przejścia do trybu REPEAT
    * push_proc - wskaźnik do własnej funkcji wywoływanej raz po zwolenieniu przycisku
    * rep_proc - wskaźnik do własnej funkcji wykonywanej w trybie REPEAT
    **************************************************************************************/


    A przykład wykorzystania funkcji w main wygląda tak:

    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Widzi kolega te dwie różne zmienne o nazwach k1 i k2 ??? to właśnie te dwa różne bajty w pamięci RAM na potrzeby pracy każdego wywołania funkcji SuperDebounce. Można bowiem powiedzieć, że tutaj funkcja SuperDebounce działa prawie jak obiekt ;) w języku wyższego rzędu. I każda instancja obiektu potrzebuje swojego kawałka RAM na przechowywanie stanów. Jeśli tego nie ma i kod jest tylko taki jak z książki, to rzeczywiście funkcja będzie działać poprawnie TYLKO na dla JEDNEGO klawisza i nie ma znaczenia czy na tym samym porcie czy nie :(

    ale jeśli użyjemy tej wersji z DVD to proszę bardzo "hulaj dusza" - można jej używać dla dowolnej ilości klawiszy i na dowolnych pinach i portach. Proszę sobie TO właśnie sprawdzić. Mówiąc TO mam na myśli kod na płycie DVD - OK?

    _________________
    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 sie 2012, o 09:11 
    Offline
    Użytkownik

    Dołączył(a): 23 sty 2012
    Posty: 27
    Pomógł: 0

    ok dzięki, funkcję brałem bezpośrednio z DVD1



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 5 sie 2012, o 09:16 
    Offline
    Moderator
    Avatar użytkownika

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

    sirk77 napisał(a):
    ok dzięki, funkcję brałem bezpośrednio z DVD1


    No ale zaraz - to jak to jest że w przykładowym kodzie nie korzystasz z tego parametru ???? hmmm z tego co pamiętam ta poprawiona nieco funkcja była na DVD już od samego początku - czy się mylę i masz może na DVD bez tego parametru ???? daj znać proszę bo to mnie zaciekawiło teraz.

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

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

    OK w razie czego proszę jeszcze raz zajrzeć do tego LINKU

    post6106.html#p6106

    pod koniec jest aktualizacja lekcji nr.19 ;)

    _________________
    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: 30 sie 2012, o 11:31 
    Offline
    Użytkownik

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

    mirekk36 napisał(a):
    OK w razie czego proszę jeszcze raz zajrzeć do tego LINKU

    post11823.html#p11823

    Ooooo... coś się po...teges... bo: "wybrany wątek nie istnieje" :?:

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



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 30 sie 2012, o 12:57 
    Offline
    Moderator
    Avatar użytkownika

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

    post6106.html#p6106

    _________________
    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: 10 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

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