Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 28 mar 2024, o 20:41


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 ]
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: 183
Pomógł: 10

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



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: 183
Pomógł: 10

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



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: 27212
Lokalizacja: Szczecin
Pomógł: 1041

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