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ć. 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): 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: |
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 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" 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 |
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ś: 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 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: 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: język c Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod. i później warunek 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/ |