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 25 kwi 2025, o 01:25


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 75 ]  Przejdź na stronę Poprzednia strona  1, 2, 3
    Autor Wiadomość
    PostNapisane: 19 gru 2018, o 18:38 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 22 paź 2013
    Posty: 1968
    Lokalizacja: Lipsko
    Pomógł: 125

    Wrzuć całość, bo takie sprawdzanie programu w kawałkach do niczego dobrego nie doprowadzi

    _________________
    http://www.sylwekkuna.com



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 gru 2018, o 10:09 
    Offline
    Użytkownik

    Dołączył(a): 02 maja 2015
    Posty: 62
    Pomógł: 0

    SylwekK napisał(a):
    Wrzuć całość, bo takie sprawdzanie programu w kawałkach do niczego dobrego nie doprowadzi

    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.

    Spróbowałem przy inicjalizacji ustawić timer_key na wartość 10, ale nic to nie dało.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 gru 2018, o 11:51 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 22 paź 2013
    Posty: 1968
    Lokalizacja: Lipsko
    Pomógł: 125

    Taaaak... :)
    Może najpierw trochę porządków, bo są pewne nieścisłości. Proszę wyjaśnij to i wskaż jakiś wspólny mianownik:

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


    Autor postu otrzymał pochwałę

    _________________
    http://www.sylwekkuna.com



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 gru 2018, o 13:49 
    Offline
    Użytkownik

    Dołączył(a): 02 maja 2015
    Posty: 62
    Pomógł: 0

    SylwekK napisał(a):
    Może najpierw trochę porządków, bo są pewne nieścisłości.
    Taaak, nie wiem jak ten PIND się tam znalazł? Po zmianie na PINB jest OK! :) Dzięki!
    Teraz należy taką sekwencję wstawić w badanie kolejnych wejść. Myślę, że byłoby bardziej przejrzyście i elegancko, gdyby to ująć w funkcję. Muszę zajrzeć do BB, bo funkcja będzie mieć kilka argumentów :o

    dziobak7 napisał(a):
    Cztery poziomy zagnieżdżenia.
    Ja naprawdę jestem początkujący, zasugeruj coś może w celu uproszczenia kodu, tworzonego w pocie czoła - tworzę jak potrafię. Jak widać nie ma się czym chwalić ;)

    Po przemyśleniach, wykrystalizowała się 8-) taka funkcja
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    Wynika mi z tego, że każdy przycisk musi mieć osobny timer programowy dekrementowany w przerwaniu, bo chyba nie da się tego obsłużyć jednym timerem?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 gru 2018, o 23:33 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 22 paź 2013
    Posty: 1968
    Lokalizacja: Lipsko
    Pomógł: 125

    oowan napisał(a):
    Wynika mi z tego, że każdy przycisk musi mieć osobny timer programowy dekrementowany w przerwaniu, bo chyba nie da się tego obsłużyć jednym timerem?

    Jeśli będzie to robione sposobem, który podałem to TAK, ale zawsze można inaczej to zrobić i o ile przyciski nie są wciskane równocześnie to można by z jednego timera korzystać.

    _________________
    http://www.sylwekkuna.com



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 gru 2018, o 13:43 
    Offline
    Użytkownik

    Dołączył(a): 02 maja 2015
    Posty: 62
    Pomógł: 0

    W efekcie wyszły dwie funkcje:
    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.

    Nie wiem, czy znowu nie przekombinowałem, ale działa, przynajmniej to, co mam fizycznie podłączone do testów.

    Życzę wszystkim WESOŁYCH ŚWIĄT!!!



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 28 gru 2018, o 13:34 
    Offline
    Użytkownik

    Dołączył(a): 02 maja 2015
    Posty: 62
    Pomógł: 0

    Program powoli się rozrasta - dołożyłem wyłącznik czasowy do sterowania lampą przed garażem.
    Jest to kolejny timer programowy (tym razem uint16_t) odliczany co sekundę w przerwaniu.
    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.

    Wszystko działa prawidłowo, tylko że odliczana sekunda ma tak na oko 1,6s. Co może być przyczyną?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 28 gru 2018, o 17:35 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 01 lis 2015
    Posty: 1448
    Lokalizacja: okolice Warszawa
    Pomógł: 149

    witam,
    oowan napisał(a):
    , tylko że odliczana sekunda ma tak na oko 1,6s. Co może być przyczyną?

    jeżeli przedstawisz ciało funkcji 'timer_init();', to może coś da się wywnioskować/wyliczyć.
    Przejrzałem wątek i nie zauważyłem jak jest ustawiony timer.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 28 gru 2018, o 20:37 
    Offline
    Użytkownik

    Dołączył(a): 02 maja 2015
    Posty: 62
    Pomógł: 0

    oowan napisał(a):
    jeżeli przedstawisz ciało funkcji 'timer_init();', to może coś da się wywnioskować/wyliczyć.

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

    Spróbowałem ten fragment
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
    przenieść z obsługi przerwania do pętli głównej. Oczywiście zmienną cnt zmieniłem z lokalnej na globalną volatile.
    Dioda migała, ale bardzo nieregularnie. Czasem kilka krótkich błysków, czasem dłuższe przerwy lub dłoższe świecenie.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 28 gru 2018, o 20:55 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 22 paź 2013
    Posty: 1968
    Lokalizacja: Lipsko
    Pomógł: 125

    Jeśli w pętli głównej używasz do timera 16-bitowej zmiennej, która jest odliczania w przerwaniach to ZAWSZE będzie problem z regularnym odliczaniem chyba, że... podczas tego odświeżania zostaną wyłączone przerwania (poczytaj atomic blok).

    _________________
    http://www.sylwekkuna.com



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 sty 2019, o 08:10 
    Offline
    Użytkownik

    Dołączył(a): 02 maja 2015
    Posty: 62
    Pomógł: 0

    SylwekK napisał(a):
    Jeśli w pętli głównej używasz do timera 16-bitowej zmiennej, która jest odliczania w przerwaniach to ZAWSZE będzie problem z regularnym odliczaniem chyba, że... podczas tego odświeżania zostaną wyłączone przerwania (poczytaj atomic blok).
    Poszedłem w innym kierunku - uruchomiłem drugi timer sprzętowy na 10Hz, do obsługi migania i odmierzania czasu świecenia lampy. To chyba prostsze rowiązanie? Chyba, że do odmierzania minut dla lampy dam osobny timer, 16-bitowy ;) Jakby nie było, tiny2313 ma dwa dwukanałowe timery :mrgreen:



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 sty 2019, o 12:12 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 22 paź 2013
    Posty: 1968
    Lokalizacja: Lipsko
    Pomógł: 125

    Można i tak, ale wystarczy dodatkowy timer programowy z dzielnikiem przez, np. 100 dodać.

    _________________
    http://www.sylwekkuna.com



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 sty 2019, o 14:19 
    Offline
    Użytkownik

    Dołączył(a): 02 maja 2015
    Posty: 62
    Pomógł: 0

    Praktycznie ukończyłem program. Jest wszystko co chciałem osiągnąć. Pewnie potrzebne będą jakieś korekty przy uruchamianiu sterownika - z tym poczekam do wiosny, nie chcę marznąć teraz w garażu :?
    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.

    Wielkie dzięki za pomoc :!:



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 sty 2019, o 16:09 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 22 paź 2013
    Posty: 1968
    Lokalizacja: Lipsko
    Pomógł: 125

    Najważniejsze żeby wszystko już na stole działało w 100% zgodnie z założeniami wtedy po zainstalowaniu na bramie będzie łatwiej uruchamiać :)

    _________________
    http://www.sylwekkuna.com



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 sty 2019, o 21:17 
    Offline
    Użytkownik

    Dołączył(a): 02 maja 2015
    Posty: 62
    Pomógł: 0

    SylwekK napisał(a):
    Najważniejsze żeby wszystko już na stole działało w 100% zgodnie z założeniami wtedy po zainstalowaniu na bramie będzie łatwiej uruchamiać :)

    Sam ATtiny działa w 100%, ale sterownik będzie zawierał jeszcze dwa komparatory na LM393 - jeden do czujnika zmierzchowego, drugi do zabezp. przeciążeniowego, współpracujący z modułem pomiaru prądu na ukłdzie ACS712. I tu mogą zdarzyć się niespodzianki, a niespodzianki mnie lubią, bez wzajemności :twisted:
    Może też się okazać konieczne zamienić miejscami jakieś piny, żeby uprościć ścieżki na płytce.
    Na razie dopracowuję schemat na papierze. Muszę to przespać, kilka razy przemyśleć, może nasunie się jakiś nowy pomysł. Został mi jeden wolny pin w mikrokontrolerze, więc kto wie? ;)
    Gdy to dopracuję, na pewno umieszczę całą konstrukcję w dziale DIY.



    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: 75 ]  Przejdź na stronę Poprzednia strona  1, 2, 3

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