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 26 lip 2025, o 12:36


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
    Autor Wiadomość
     Tytuł: DS3231
    PostNapisane: 12 paź 2020, o 10:51 
    Offline
    Nowy

    Dołączył(a): 24 sie 2020
    Posty: 8
    Pomógł: 0

    Witam,
    buduje prosty sterownik pieca gazowego (RTC; temperatura dzienna/nocna; godziny z temp nocną/dzienną);
    mam pytanie nr1 :
    Odczytuje czas i zamieniam je na duże "graficzne" liczby.
    Robię tak samo z datą.
    Liczby "graficzne" są umieszczone w osobnym pliku.
    No i właśnie pytanie jak i czy można to uprościć.

    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.


    i pytanie nr2
    do przełączania temperatury dziennej na nocną potrzebuje porównać godzinę zapisaną z aktualną.
    może mi ktoś powiedzieć jak to zrobić?

    kod zegara zaczerpnięty od @mirekk36 ( RTC DS3231 - najdokładniejszy zegarek na świecie? - Mirekk36)

    platforma to Atmega32; Wyświetlacz 240x64 na t6963c; 11.059MHz
    pozdrawiam
    cineks



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: DS3231
    PostNapisane: 12 paź 2020, o 11:09 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 29 sty 2015
    Posty: 191
    Pomógł: 11

    cineks napisał(a):
    pytanie nr2
    do przełączania temperatury dziennej na nocną potrzebuje porównać godzinę zapisaną z aktualną.
    może mi ktoś powiedzieć jak to zrobić?

    Porównać tzw. znaczniki czasu - timestampy.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: DS3231
    PostNapisane: 12 paź 2020, o 13:14 
    Offline
    Użytkownik

    Dołączył(a): 05 lut 2014
    Posty: 252
    Lokalizacja: obok Częstochowy
    Pomógł: 14

    Ja strukturę z czasem zapakowałem do int32 za pomocą unii i te liczby porównuję.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: DS3231
    PostNapisane: 12 paź 2020, o 17:06 
    Offline
    Użytkownik

    Dołączył(a): 07 cze 2016
    Posty: 563
    Pomógł: 143

    cineks napisał(a):
    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.

    No i właśnie pytanie jak i czy można to uprościć.


    Ja myślę, że to nawet trzeba uprościć. Fragment kodu, który przedstawiłeś, wyświetla tylko godziny od 0 do 4, a gdzie reszta? Co z minutami i sekundami? Jak długa byłaby funkcja napisana w ten sposób?
    Spróbuj może jakoś tak:
    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.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: DS3231
    PostNapisane: 12 paź 2020, o 19:23 
    Offline
    Nowy

    Dołączył(a): 24 sie 2020
    Posty: 8
    Pomógł: 0

    Dzięki za odpowiedź
    @andrews oczywiście przedstawiłem tylko kawałeczek, bo listing byłby b. długi.
    tak samo robię dla minut, i cała data, więc tego jest dużo, dlatego chce to jakoś uprościć.
    Graficzne liczby są w takiej postaci jak piszesz

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


    spróbuje Twoje rozwiązanie.

    @Rafał555 mógłbyś trochę więcej napisać, nie ukrywam, że Twoje rozwiązanie "brzmi" prościej, ale nie jestem biegły,
    dlatego proszę o większą pomoc.

    @Draxter32 timestamp jest mi znany, ale to ciężko wyłuskać godziny, przynajmniej dla mnie.

    Pozdrawiam
    cineks



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: DS3231
    PostNapisane: 12 paź 2020, o 20:00 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 29 sty 2015
    Posty: 191
    Pomógł: 11

    cineks napisał(a):
    @Draxter32 timestamp jest mi znany, ale to ciężko wyłuskać godziny, przynajmniej dla mnie.

    Funkcja mktime() konwertuje wspomnianą wcześniej strukturę do timestamp. Odwrtną funkcjonalność daje localtime(). Tutaj trochę więcej informacji: Link

    Tutaj przyotowałe krótki przykład: cpp.sh/5xmab
    Oczywiście trzeba dołączyć odpowiednie biblioteki dla mikrokontrolera.

    ------------------------ [ Dodano po: 54 minutyach ]

    Draxter32 napisał(a):
    cineks napisał(a):
    @Draxter32 timestamp jest mi znany, ale to ciężko wyłuskać godziny, przynajmniej dla mnie.

    Funkcja mktime() konwertuje wspomnianą wcześniej strukturę do timestamp. Odwrtną funkcjonalność daje localtime(). Tutaj trochę więcej informacji: Link

    Tutaj przyotowałem krótki przykład: cpp.sh/5xmab
    Oczywiście trzeba dołączyć odpowiednie biblioteki dla mikrokontrolera.


    ------------------------ [ Dodano po: 55 minutach ]




    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: DS3231
    PostNapisane: 13 paź 2020, o 20:59 
    Offline
    Użytkownik

    Dołączył(a): 05 lut 2014
    Posty: 252
    Lokalizacja: obok Częstochowy
    Pomógł: 14

    Pakuję cały ten czas do jednego "gara"

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


    A potem w programie tego uint32 porównuję sobie np. tak

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



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: DS3231
    PostNapisane: 15 paź 2020, o 09:48 
    Offline
    Nowy

    Dołączył(a): 24 sie 2020
    Posty: 8
    Pomógł: 0

    OO super , Dzięki
    spróbuje Twój kod.
    W miedzy czasie poszperałem na elektrodzie i znalazłem takie coś:

    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.


    działa, czy to jest dobrze, nie wiem, dlatego piszę, może poprawicie mnie.

    Potrzebuje z tej funkcji wykorzystać "komfort_l" i "komfort_h by" potem zmieniać zakres histerezy

    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.


    Założenie tej funkcja jest taka, że jak jest temperatura "dzienna" to termostat pracuje na "wyższych" temperaturach a jak jest temperatura nocna to na "niższych" i to niestety to nie działa.
    Chwilowo jest na sztywno ustawione wartości temp, ale docelowo będzie pobierana z funkcji

    void show_temperature(TTEMP * tmp) i też bym prosił o pomoc jak to ogarnąć, (Przypomnę, że działam na kodzie od @mirekk36.)

    pozdrawiam



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
     Tytuł: Re: DS3231
    PostNapisane: 15 paź 2020, o 10:42 
    Offline
    Moderator
    Avatar użytkownika

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

    cineks napisał(a):
    Przypomnę, że działam na kodzie od @mirekk36.

    A co to za różnica na jakim kodzie działasz ? co to kod tego gościa ;) można obsługiwać TYLKO w jakiś jeden sposób.

    Proponuję przede wszystkim częściej zaglądaj do Bluebooka i rób ćwiczenia .... bo kłaniają się tu takie podstawy właśnie z książki ...

    zamiast szukać po necie jakichś mega wymyślnych kodów zrób najpierw coś sam mega prostego np:

    masz gdzieś zmienne do trzymania czasu, same nazwy chyba mówią co w nich jest:

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


    i teraz jak porównywać różne czasy:

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


    i później warunek

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


    postaraj się zrozumieć jak to działa to sam jak poczytasz Bluebooka dojdziesz, że można to ładnie sobie upakować później do jakiejś struktury i nawet datę dodać do czasu.

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

    Strefa czasowa: UTC + 1


    Kto przegląda forum

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