ATNEL tech-forum
https://forum.atnel.pl/

DS3231
https://forum.atnel.pl/topic23387.html
Strona 1 z 1

Autor:  cineks [ 12 paź 2020, o 10:51 ]
Tytuł:  DS3231

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

Autor:  Draxter32 [ 12 paź 2020, o 11:09 ]
Tytuł:  Re: DS3231

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.

Autor:  Rafał555 [ 12 paź 2020, o 13:14 ]
Tytuł:  Re: DS3231

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

Autor:  andrews [ 12 paź 2020, o 17:06 ]
Tytuł:  Re: DS3231

cineks napisał(a):
Składnia: [ Pobierz ] [ Ukryj ]
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 ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Autor:  cineks [ 12 paź 2020, o 19:23 ]
Tytuł:  Re: DS3231

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

Autor:  Draxter32 [ 12 paź 2020, o 20:00 ]
Tytuł:  Re: DS3231

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 ]


Autor:  Rafał555 [ 13 paź 2020, o 20:59 ]
Tytuł:  Re: DS3231

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.

Autor:  cineks [ 15 paź 2020, o 09:48 ]
Tytuł:  Re: DS3231

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

Autor:  mirekk36 [ 15 paź 2020, o 10:42 ]
Tytuł:  Re: DS3231

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.

Strona 1 z 1 Strefa czasowa: UTC + 1
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/