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



Teraz jest 28 kwi 2024, o 04:50


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 71 ]  Przejdź na stronę Poprzednia strona  1, 2, 3
Autor Wiadomość
PostNapisane: 15 lis 2015, o 18:51 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

wachcio napisał(a):
Napiszę inaczej jeżeli się nie mylę Twój kalendarz nie uwzględnia wyjątku lat przestępnych np. 1900, 2100 przez co jest kalendarzem liczącym dobrze tylko w tych latach 1900-2100 a dokładnie 01.03.1900 - 28.02.2100 a mój od co najmniej 1601 (prawdopodobnie od 1582) do 9999.
Za Wikipedią "Obecnie powszechnie stosuje się rachubę zgodną z kalendarzem gregoriańskim, wprowadzonym w 1582 roku bullą papieża Grzegorza XIII ("Inter gravissimas"), w której rok przestępny (liczbowo) spełnia następujące warunki: jest podzielny przez 4, z wyjątkiem lat kończących się na "00", które nie są podzielne przez 400. Od czasu wprowadzenia kalendarza gregoriańskiego w 1582 trzy razy zaistniał ten wyjątek – w latach 1700, 1800 i 1900; rok 2000 był przestępny, bo podzielny przez 400; kolejny rok przestępny odpadnie w roku 2100. "



Kolego też nad tym walczyłem i się zastanawiałem .... ale czy ty sądzisz że twój układ będzie pracowałe do 2100 roku ....to jest aż 85 lat ... wiesz co się stanie w tym czasie ? albo po tym czasie :)

nie ma sensu zawracać sobie głowy :)

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 lis 2015, o 19:29 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

wachcio napisał(a):
majster oczywiście masz rację ale zawsze możesz próbować dodać funkcję odpytywania AVR-a przez np. RS232 o obliczenie dnia tygodnia danej daty - taki bonus dla użytkownika ;)

A ja oszczedzam procka i o date, czas, rok przestepny, dzien tygodnia, czas dst itp odpytuje swoj serwer :) a php generuje mi dane :) i problem z glowy :)

Ot taki bonus sobie zrobilem :)

Namazane ze smarta.

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 lis 2015, o 20:14 
Offline
Moderator
Avatar użytkownika

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

wachcio napisał(a):
"Funkcja zwraca indeks do tablicy "week". Parametr s oznacza styl

s==0 dla stylu juliańskiego
s!=0 dla stylu gregoriańskiego"

Masz całkowitą rację - ale jeszcze raz powtórzę - zresztą to samo co majster wyżej ;)

Po pierwsze nie przewiduję działania urządzenia dłużej niż 10 hmm no może 20 lat ale to już i tak za dużo ;)

Po drugie bajer z obliczaniem dnia tygodnia (taki gadżet jak mówisz) np w 3056 roku ... hmmm no ok jak ktoś lubi - czemu nie ;)

Ja jednak wolę mieć w tablicy dni od poniedziałku i zostanę przy tym sposobie jaki pokazałem.

Dzięki tobie jednak - osoby które będą chciały obliczać dni nawet roku 8922 mogą używać tego drugiego - co za problem ;)

fajnie że temat poruszyłeś - każdy sobie teraz coś wybierze

_________________
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  
PostNapisane: 29 lis 2015, o 22:32 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 lut 2013
Posty: 148
Lokalizacja: KTT
Pomógł: 1

Witam,

Świetny cykl poradników :)
Właśnie oglądam i klepie kod. Mam dziwny problem z ustawianiem godziny.
Jeśli użyję funkcji set_rtc_time() jest wszystko w porządku, ale jeśli użyję funkcji set_rtc_datetime() i wpiszę w czasie 0 sekund to po wgraniu do uC zegar startuje od sekundy 07 :o pewnie jakiś babol się wkradł...

miał ktoś może podobny problem?

_________________
Gordon



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 lis 2015, o 10:34 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

Nie miałem żadnych błędów.
Gdzieś coś robisz nie tak...

_________________
Jestem początkujący i moje porady mogą być błędne



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 gru 2015, o 23:50 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 lut 2013
Posty: 148
Lokalizacja: KTT
Pomógł: 1

mirekk36 napisał(a):
...nie przewiduję działania urządzenia dłużej niż 10 hmm no może 20 lat
mam nadzieję, że to nie dotyczy ATB bo chcę przekazać wnukom w spadku :lol: ;)

_________________
Gordon



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 gru 2015, o 21:39 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 lut 2013
Posty: 148
Lokalizacja: KTT
Pomógł: 1

Witam ponownie,

Odkryłem pewien błąd w procedurze dodawania/odejmowania godziny przy zmianie czasu lato->zima.
Otóż w pliku biblioteki rtc 'mk_pcf8583.c' linia 147
jest:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Zauważcie, że zmienna godziny jest typu uint8_t i w przypadku kiedy włączymy zegarek po zmianie czasu lato/zima o godzinie powiedzmy 00:xx:xx (powiedzmy był wyłączony, gdy nastąpiła zmiana czasu) to wtedy czas powinien się cofnąć do 23:xx:xx. Jednak zmienna godziny przyjmie wtedy wartość 255 co po działaniu %24 da nam 15 i taką godzinę wyświetli zegarek 15:xx:xx

moim zdaniem należy dokonać zmiany na coś takiego:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Tylko wtedy dochodzi jeszcze cofnięcie daty o 1 dzień... ale nad tym może już posiedzę kiedy indziej... :)

_________________
Gordon



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 gru 2015, o 22:47 
Offline
Moderator
Avatar użytkownika

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

Coś źle robisz po prostu ...

_________________
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  
PostNapisane: 11 gru 2015, o 20:59 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 lut 2013
Posty: 148
Lokalizacja: KTT
Pomógł: 1

Ok może słabo opisałem ten przypadek. Mniejsza z tym...

_________________
Gordon



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 mar 2016, o 19:35 
Offline
Użytkownik

Dołączył(a): 12 mar 2014
Posty: 266
Lokalizacja: Warszawa
Zbananowany użytkownik

Pomógł: 2

Znalazłem jeszcze jeden problem. W funkcji init_rtc z poradnika, jest zapis:

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


powoduje to że jeżeli zegarek jest w czasie letnim, to po każdym resecie procka, czas jest przestawiamy o godzinę do przodu. Natomiast jeżeli wpiszemy

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


powoduje to że jeżeli zegarek jest w czasie zimowym, to po każdym resecie procka, czas jest przestawiamy o godzinę do tyłu.

Wydaje mi się, że przy inicjacji powinien być odczytany aktualny czas z RTC i wyliczone czy jest to czas letni czy zimowy.

_________________
Wysłane z Nokii 3310



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 mar 2016, o 10:26 
Offline
Użytkownik

Dołączył(a): 12 mar 2014
Posty: 266
Lokalizacja: Warszawa
Zbananowany użytkownik

Pomógł: 2

Zmodyfikowałem kod według pomysłu powyżej i resetowanie przy dowolnym czasie nie powoduje zbędnej korekty czasu. Niestety pojawił się kolejny problem, tzn jeżeli zegarek będzie wyłączony w okresie zmiany czasu, to po włączeniu też korekta się nie dokona. Aby tego uniknąć chyba trzeba by zapisywać do pamięci czas letni/zimowy, więc ostatecznie wprowadziłem następujące zmiany.

w funkcji set_rtc_time dodałem

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


a w funkcji get_rtc_datetime

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 jest ok.

Tylko nie jestem pewien, czy to prawidłowa składania, chociaż działa prawidłowo.

_________________
Wysłane z Nokii 3310



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: 71 ]  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 0 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