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 19 cze 2025, o 09:38


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 71 ]  Przejdź na stronę Poprzednia strona  1, 2, 3  Następna strona
    Autor Wiadomość
    PostNapisane: 21 maja 2015, o 22:17 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 08 gru 2013
    Posty: 366
    Lokalizacja: Wałbrzych
    Pomógł: 7

    Nom chyba że u nich autobusy posiadają zegarek atomowy i pług z przodu auta ze w razie korku rozepchną sobie innych uczestników ruchu na bok i śmigną by dojechać na czas.



    Fajny cykl poradników . Jak zwykle uzupełnia wiedzę nie tylko na temat związany ale też i na inne poboczne co jest super.

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 maja 2015, o 05:42 
    Offline
    Nowy

    Dołączył(a): 21 maja 2015
    Posty: 1
    Pomógł: 0

    Witam.

    Od nie dawna bawię się procesorami PIC. Spodobał mi się ten wątek na temat RTC. Chciałbym to przenieść do PIC. Więc mam małą prośbę. Czy można zamieścić cały kod programu z filmiku 09 Pana Mirka - może nie cały tylko dotyczący zmian czasowych (lato-zima),z poprawkami kol. "tec-dive". Pan Mirek tak świetnie prowadzi te poradniki i wspaniale bawi AVR , aż żałuję że bawię się PIC.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 maja 2015, o 06:09 
    Offline
    Moderator
    Avatar użytkownika

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

    siwo278 napisał(a):
    Pan Mirek tak świetnie prowadzi te poradniki i wspaniale bawi AVR , aż żałuję że bawię się PIC

    Ależ nie ma czego żałować. PIC'ki to równie fajne 8-bitowce i spokojnie zrobisz z nimi to samo co z AVR'ami. To o czym opowiadam w książkach czy poradnikach - jak sam widzisz - to jest Programowanie, techniki programowania - i można to wykorzystywać swobodnie na różnych rodzinach procków włączając w to nie tylko te 8-bitowe ale i 32-bitowe.

    siwo278 napisał(a):
    Czy można zamieścić cały kod programu z filmiku

    Całe kody będą (jak się wszystko uda) na płytach DVD dostępnych do kupienia w naszym sklepie wkrótce. Planujemy bowiem wypuszczenie takich płyt z nagranymi w postaci offline cyklami poradników o Magic LED, OLED, czy też WIFI albo tym RTC

    _________________
    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: 22 maja 2015, o 07:16 
    Offline
    Użytkownik

    Dołączył(a): 22 sty 2014
    Posty: 1806
    Zbananowany użytkownik

    Pomógł: 168

    siwo278 napisał(a):
    Pan Mirek tak świetnie prowadzi te poradniki i wspaniale bawi AVR , aż żałuję że bawię się PIC.



    Nie ma czego żałować. Jak piszesz w C to oprócz nazw rejestrów i spraw sprzętowych to kod będzie ten sam. Serio. Ja sam się teraz PIC'ami bawię i bez problemu kod z AVR'ów przenoszę ;) Jak już umiesz C i znasz fajne techniki programowania to jedyne co Ci zostaje to zapoznać się ze sprzętem na którym pracujesz, więc nosek w dokumentacje i heja ;)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 maja 2015, o 08:00 
    Offline
    Moderator
    Avatar użytkownika

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

    mokrowski napisał(a):
    Jestem ciekaw tylko czy obsługa NTP w interfejsach Atnel to uwzględnia.

    Oczywiście, że nie uwzględnia ;) .... co więcej - nawet nie uwzględnia czasu potrzebnego na sprowadzenie czasu z NTP i zapis do RTC więc z marszu możemy być kilka sekund w plecy. Mi wprawdzie kiedyś obiła się o uszy ta sekunda ale kompletnie zapomniałem ;) więc fajną ciekawostkę zapodałeś ....

    _________________
    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: 22 maja 2015, o 20:46 
    Offline
    Nowy

    Dołączył(a): 16 lut 2015
    Posty: 2
    Pomógł: 0

    To ja dodam jeszcze taki problem do rozważenia.

    Proszę zauważyć, że w ostatnią niedzielę października czas pomiędzy godziną 2 i 3 mija dwa razy, najpierw jako letni a potem po raz drugi już jako zimowy.
    Czyli przy ustawieniu np. 2:59:55 nie można jednoznacznie określić czy jest to jeszcze czas letni ( 1 dojście do godziny 3 ) czy może już zimowy ( 2 dojście do godziny 3).



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 maja 2015, o 20:57 
    Offline
    Moderator
    Avatar użytkownika

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

    anstan96 napisał(a):
    Czyli przy ustawieniu np. 2:59:55 nie można jednoznacznie określić czy jest to jeszcze czas letni ( 1 dojście do godziny 3 ) czy może już zimowy ( 2 dojście do godziny 3).

    I o tym właśnie rozważałem długo (będąc już zmęczonym, po prawie całym dniu kręcenia tego cyklu) ;) tłumacząc - że w tej godzinie będzie ciężko coś zrobić ;) Że to ta "dziura" i jak ktoś po pijaku ustawi sobie wtedy czas, a obudzi się rano to może się zdziwić ;) ... oczywiście jeśli nie ma ATNEL-WIFI232-T, bo jeśli posiada ten moduł - to wtedy już po godzinie trzeciej - czyli jeszcze w czasie snu - czas się naprawi dzięki NTP i ATNEL-WIFI. (to już w 10 - ostatnim odcinku cyku wyjaśniam)

    _________________
    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: 23 maja 2015, o 02:12 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 09 gru 2014
    Posty: 1540
    Pomógł: 269

    anstan96 napisał(a):
    To ja dodam jeszcze taki problem do rozważenia.

    Proszę zauważyć, że w ostatnią niedzielę października czas pomiędzy godziną 2 i 3 mija dwa razy, najpierw jako letni a potem po raz drugi już jako zimowy.
    Czyli przy ustawieniu np. 2:59:55 nie można jednoznacznie określić czy jest to jeszcze czas letni ( 1 dojście do godziny 3 ) czy może już zimowy ( 2 dojście do godziny 3).


    Proponuję rozwiązać to w sposób taki, a mianowicie w tym przedziale czasowym użytkownik nie będzie mógł w ogóle ustawić zegarka. Gdy akurat tak się przytrafi godzina i data zostaną ustawione na 12:00:00 i 1900-01-01, czyli będzie to oznaczało błąd. Teraz nawet "po pijaku" nie uda się ustawić nieprawidłowego czasu. :D

    Proponuję zamienić void oblicz_dst(); (oczywiście pamiętając również o zmianie w pliku mk_pcf8583.h) na:

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


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


    Dodam jeszcze jedną małą modyfikację w pliku mk_pcf8583.h tak aby było łatwiej ustawić strefę czasową (u mnie GMT=0) :D
    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  
    PostNapisane: 23 maja 2015, o 08:10 
    Offline
    Moderator
    Avatar użytkownika

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

    Kolega anshar jak zwykle od razu ma gotowy pomysł i kod ;) ale .....

    Ja tutaj tylko tak półżartem jednak bym zaprotestował przed tym, żeby zegarek ustawiał się na 12:00:00 i rok 1900 ;) ... łooo matko! gdybym to ja np po pijaku ustawiał jakiś zegarek i kliknął OK, a on by mi takie cyrki robił i to przez godzinę - to pewnie zaraz złapałbym za młotek i go ..#@%^@@##!!@@##..lił :lol:

    _________________
    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: 23 maja 2015, o 10:51 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 09 gru 2014
    Posty: 1540
    Pomógł: 269

    mirekk36 napisał(a):
    złapałbym za młotek i go ..#@%^@@##!!@@##..lił :lol:

    :D Dodam, że ja bym zrobił to samo ale z rana gdyby się okazało, że godzina jednak nie halo, a tyle z nią walczyłem przed snem!
    Na szczęście mamy "dawcę czasu", który nie tylko wstrzykuje prawidłowy czas, ale jeszcze zapobiega takim sytuacjom jak wyżej! :D



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 23 maja 2015, o 23:09 
    Offline
    Użytkownik

    Dołączył(a): 13 maja 2014
    Posty: 52
    Pomógł: 0

    Tak z innej beczki i oczywiście z ciekawości chciałbym zapytać dlaczego mi eclipse gadget pokazuje 3 282 flash i 241 ram a w poradniku 3 180 flash i 461 ram? W tym samym miejscu:)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 maja 2015, o 06:31 
    Offline
    Moderator
    Avatar użytkownika

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

    Tequs napisał(a):
    Tak z innej beczki i oczywiście z ciekawości chciałbym zapytać dlaczego mi eclipse gadget pokazuje 3 282 flash i 241 ram a w poradniku 3 180 flash i 461 ram? W tym samym miejscu:)

    Bo może używasz innego procka niż ja i już będzie nieco inny wynik, albo może nie masz ustawionej optymalizacji -Os tak jak ja ...

    ------------------------ [ Dodano po: 13 minutach ]

    aaaa jeszcze jedno ;) ja używam programu Eclipse GADGET a w nim opcji "BOOST FLASH ON" ;) a ty ?

    Obrazek

    _________________
    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: 24 maja 2015, o 11:31 
    Offline
    Użytkownik

    Dołączył(a): 13 maja 2014
    Posty: 52
    Pomógł: 0

    Procek ten sam, w eclips gadget mam tak samo, ale widzę, że ja mam wersję 29:)Być może nie mam tej optymalizacji os pewnie gdzieś w eclipsie się to robi?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 24 maja 2015, o 15:59 
    Offline
    Moderator
    Avatar użytkownika

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

    Tequs napisał(a):
    Być może nie mam tej optymalizacji os pewnie gdzieś w eclipsie się to robi?

    Obrazek

    ale powód może być jeszcze inny, być może nie zrobiłeś jednak czegoś w poradniku dokładnie tak jak ja - stąd różnica - więc nie przykładałbym do tego aż takiej wagi. No ale sprawdź sobie tę optymalizację - chociaż ona ustawia się domyślnie przy zakładaniu nowego projektu.

    _________________
    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: 24 maja 2015, o 17:37 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 09 gru 2014
    Posty: 1540
    Pomógł: 269

    anstan96 napisał(a):
    To ja dodam jeszcze taki problem do rozważenia.

    Proszę zauważyć, że w ostatnią niedzielę października czas pomiędzy godziną 2 i 3 mija dwa razy, najpierw jako letni a potem po raz drugi już jako zimowy.
    Czyli przy ustawieniu np. 2:59:55 nie można jednoznacznie określić czy jest to jeszcze czas letni ( 1 dojście do godziny 3 ) czy może już zimowy ( 2 dojście do godziny 3).


    mirekk36 napisał(a):
    Ja tutaj tylko tak półżartem jednak bym zaprotestował przed tym, żeby zegarek ustawiał się na 12:00:00 i rok 1900 ;) ... łooo matko! gdybym to ja np po pijaku ustawiał jakiś zegarek i kliknął OK, a on by mi takie cyrki robił i to przez godzinę - to pewnie zaraz złapałbym za młotek i go ..#@%^@@##!!@@##..lił :lol:


    Tym razem bez zbędnych komentarzy z mojej strony! Proszę Was bardzo o przetestowanie mojej modyfikacji.
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    Dokonać trzeba takich zmain w stosunku do oryginalnego kodu z part 09 lub part 10
    W pliku mk_pcf8583.c:
    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.


    Do funkcji void ger_rtc_datetime( TDATETIME * dt) trzeba dopisać:
    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.


    Dodać funkcję:
    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.


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


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


    Dodam jeszcze, że do testów można użyć takiej oto funkcji wyświetlania czasu na LCD:
    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.



    Ostatnio edytowano 1 cze 2015, o 00:24 przez anshar, łącznie edytowano 4 razy

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 31 maja 2015, o 01:32 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 09 gru 2014
    Posty: 1540
    Pomógł: 269

    Konieczne jeszcze było dokonanie małej modyfikacji w funkcji void ger_rtc_datetime( TDATETIME * dt), by wszystko działało jak należy po ponownym włączeniu zasilania lub resecie. Poprawki naniesione!



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 31 maja 2015, o 01:57 
    Offline
    Moderator
    Avatar użytkownika

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

    ale zapisujesz gdzie nie-gdzie coś do RAM układu RTC - za to nigdzie nie widzę żebyś dokonywał odczytu niektórych z tych wartości ?

    ------------------------ [ Dodano po: 3 minutach ]

    próbuję właśnie ale kicha jest z przestawieniem czasu z zimowego na letni 29 marca 2015 o godzinie 1:59:55 .... niestety przeskakuje na 2:00:00 - pokazuje się letni (ok) ale powinien przeskoczyć na godzinę 3:00:00

    ------------------------ [ Dodano po: 30 minutach ]

    jeszcze raz przetestowałem to co w poradniku robiłem i to działa dobrze - tak jak w poradniku - zarówno w marcu jak i w październiku

    jedyny problem to DZIURA czasowa pomiędzy godziną 2:00 a 3:00 w ostatnią niedzielę października. I w zasadzie to nie ma problemu bo - uwaga mogą zajść 3 sytuacje:

    1. zegarek rusza pierwszy raz i dst = 0 czyli ani zimowy ani letni
    2. zegarek nastawia ktoś w ten dzień na 2:30 a w zegarku jest czas letni
    3. zegarek nastawia ktoś w ten dzień na 2:30 a w zegarku jest czas zimowy

    więc będzie tak:

    ad.1 i ad.2 - o godzinie 2:30 ustawi się letni - więc ładnie o 3:00 zmieni się na 2:00 i czas zimowy
    chyba, że pijak ustawia 2:30 już wtedy gdy tak na prawdę na świecie czas został cofnięty - ale na to nie ma siły chyba aby na podstawie daty i czasu zegarek mógł sobie uświadomić, że już jest po zmianie czasu albo przed zmianą :( Więc rano pijak i tak będzie musiał od nowa nastawić godzinę ale wtedy już pójdzie to dobrze.

    ad.3 - o godzinie 2:30 nie zmieni się zimowy - więc o 3:00 czas się nie cofnie !
    w tym przypadku będzie ok

    _________________
    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: 31 maja 2015, o 16:18 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 09 gru 2014
    Posty: 1540
    Pomógł: 269

    Faktycznie p. Mirku pojawił się mały babol dla miesiąca marca.
    Poprawki naniesione! Można zobaczyć wyżej! Tym razem z małymi komentarzami. Bardzo bym prosił o sprawdzenie w miarę możliwości.
    ad.1, ad.2 i ad.3 Gdy użytkownik zegarka ustawi czas pomiędzy 2.00, a 3.00 w nocy w ostatnią niedzielę paździerika nastąpi wywołanie funkcji oblicz_dst(), która zwróci wartość równą 1. Będzie to oznaczało błąd, ponieważ nie jesteśmy w stanie jednozczanie określić czy ustawiamy tą godzinę w czasie jeszcze letnim czy już w czasie zimowym. Zmienna dst_error zostanie ustawiona na 1. Natomiast jeśli w funkcji get_rtc_time() sprawdzimy za pomocą warunku if( dt->dst_error ) to zmieniamy dst , godzinę co sekundę tak długo, aż użytkownik zegarka ustawi czas poza tym przedziałem czasowym. Dodam, że powołałem dodatkową zmienną hh_temp, którą zapisuję do RTC, po to aby po wyłączeniu zegarka lub resecie następowała automatyczna synchronizacja (aby niepotrzebnie nie nastąpijo kolejny raz dodanie lub odjęcie godziny).
    Tak więc do RTC zapisuję w sumie trzy zmienne. Pierwsza to dst->error (oznacza ona błąd dst dla nieokreślonego czasu), druga to hh_temp (do synchronizacji godziny z czasem letnim bądź zimowym), oraz trzecia dla dst(_letni, _zimowy).
    Odczytuję je z RTC natomiast w funkcji get_rtc_datetime().



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 31 maja 2015, o 20:37 
    Offline
    Moderator
    Avatar użytkownika

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

    właśnie sprawdziłem

    tzn tak - to miganie na LCD napisu letni i zimowy (ok można byłoby to ukryć) ale zmieniająca się godzina co sekundę przez całą godzinę ? - to wg mnie niezbyt dobry pomysł na UI (interfejs użytkownika) :( .... ale już pomijając to - gdy ustawię w październiku czas na 2:59:50 ... to po 10 sekundach migania na LCD czas ustawia się niestety o zgrozo na letni i pozostaje godzina 3:00....

    tylko nie zrozum mnie źle - nie piszę tego żeby ot tak skrytykować .... przede wszystkim to BARDZO ale to bardzo doceniam - za w ogóle taką siłę woli do poszukiwania jakiegoś rozwiązania na zautomatyzowanie tego problemu ;) Nie ważne, że się nie udaje - że są błędne próby - tak zwykle bywa przy testach - ale może kiedyś się uda coś wymyślić na tyle ciekawego co zaspokoi naszego przysłowiowego pijaka :lol: .... jak gdybym był na rauszu i w trakcie ustawiania zobaczyłbym takie miganie - to pewnie zaraz bym się dodatkowo przestraszył że za chwilę to pewnie jeszcze białe myszki zobaczę .... :lol: to tak pół żartem

    Na poważnie zaś - to na prawdę wydaje mi się, że problem ustawiania czasu akurat pomiędzy 2-3 w ostatnią niedzielę października po prostu można pominąć ;)

    Nie mniej jednak jak coś jeszcze wymyślisz - to z chęcią przetestuję

    PS - w marcu działa to oczywiście dobrze

    _________________
    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: 31 maja 2015, o 21:49 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 09 gru 2014
    Posty: 1540
    Pomógł: 269

    Dziękuję panie Mirku za sprawdzenie i poświęcony czas. :D

    Problem ustawiania czasu akurat pomiędzy 2-3 w nocy w ostatnią niedzielę października oczywiście można pominąc, ale nie trzeba. Faktycznie zmiana z godziny 2 na 3 co sekundę nie jest najlepszym rozwiązaniem (męczące), ale w ten sposób zegarek daje nam znać o tym, że ustawiamy czas właśnie w tej luce czasowej, co jest błędem, prawda? Nie możemy być pewni czy ustawiamy czas letni czy zimowy. W takim razie użytkownik może się domyślić, że trafił akurat w tą lukę czasową. Może posiedzieć na ratuszu :D do maksymalnie godziny i ustawić prawidłowy czas o 3 w nocy. Wtedy zegarek przestanie migać i będzie wyświetlany prawidłowy czas. :D

    W tym przypadku dodatkowo można dodać opcję wyboru czasu letniego lub zimowego. Wtedy wszystko będzie jak należy. (I to jest ten nowy pomysł :D )

    Jeśli jednak pomyśli, że skoro zegar "miga" i że za chwilę zobaczy białe myszki. Pewnie ucieknie do domu i pójdzie spać. :D Kiedy wstanie rano to zegar wciąż będzie migał, powiedzmy z 8 na 9. Teraz już na trzeźwo (no prawie) sprawdzi jaka właściwie jest godzina i ustawi prawidłowy czas. :D Takie właśnie było założenie.

    Nie wiem jak to jest, ale u mnie gdy ustawię 2:59:50 za pomocą set_rtc_datetime( &datetime, 2015, 10, 25, 2, 59, 50); to zegarek dalej zmienia czas z 2 na 3, jak również czas letni na czas zimowy. Dodam, że będzie tak sobie migał dopóki nie ustawimy prawidłowego czasu, poza tą luką czasową. Nie mam pojęcia czemu u pana jest inaczej. :( Testuję to na dwóch różnych zestawach. Sądzę, że zamieściłem wszystkie zmiany w kodzie powyżej. No trudno.

    Dodam jeszcze, że oczywiście to wyświetlanie zimowy/letni jak rówież wyświetlenie błędu w postaci 0 lub 1 to tylko i wyłącznie dla testów. :D



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 cze 2015, o 00:52 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 09 gru 2014
    Posty: 1540
    Pomógł: 269

    Jeszcze raz na spokojnie przeanalizowałem kod. Znalazłem dwa miejsca w których mogły pojawiać się błędy.
    Oczywiście poprawiony już kod można zobaczyć kilka postów wyżej. Jeśli ktoś ma jeszcze ochotę przetestować, podoba mu się mój pomysł i takie rozwiązanie to zapraszam.

    mirekk36 napisał(a):
    tylko nie zrozum mnie źle - nie piszę tego żeby ot tak skrytykować .... przede wszystkim to BARDZO ale to bardzo doceniam - za w ogóle taką siłę woli do poszukiwania jakiegoś rozwiązania na zautomatyzowanie tego problemu ;) Nie ważne, że się nie udaje - że są błędne próby - tak zwykle bywa przy testach - ale może kiedyś się uda coś wymyślić na tyle ciekawego co zaspokoi naszego przysłowiowego pijaka

    Panie Mirku ja się wcale nie obrażam, ani nie zniechęcam, a wręcz cieszę się, że znalazł pan dla mnie czas, wytknął błędy i wyraził swoje zdanie. Jeszcze raz za wszystko bardzo dziękuję. :D



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 1 cze 2015, o 08:31 
    Offline
    Moderator
    Avatar użytkownika

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

    Postaram się dzisiaj sprawdzić ;) ... dam znać

    _________________
    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: 12 cze 2015, o 21:08 
    Offline
    Użytkownik
    Avatar użytkownika

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

    A czy można gdzieś pobrać bibliotekę do RTC z tego poradnika?

    _________________
    Gordon



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 cze 2015, o 21:20 
    Offline
    Moderator
    Avatar użytkownika

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

    gordon10 napisał(a):
    A czy można gdzieś pobrać bibliotekę do RTC z tego poradnika?

    Tak z poradników wideo

    _________________
    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: 12 cze 2015, o 21:25 
    Offline
    Użytkownik
    Avatar użytkownika

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

    Ok, czyli trzeba wklepać:)

    _________________
    Gordon



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 12 cze 2015, o 22:13 
    Offline
    Moderator
    Avatar użytkownika

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

    A ... no na razie tak, za jakiś czas może się pojawią płyty DVD z poradnikami offline, wtedy na nich będą już gotowe kody w postaci bibliotek. Na razie trzeba z poradników wideo.

    _________________
    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: 14 wrz 2015, o 23:42 
    Offline
    Moderator
    Avatar użytkownika

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

    UWAGA!

    w moim poradniku, gdzie prezentuję funkcję na wieczny kalendarz (obliczanie dnia tygodnia) jest BABOL ;) sorki

    ale już podaję prawidłową wersję tej funkcji - można a nawet trzeba sobie ją poprawić w kodach

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


    Proszę potestować ew i sprawdzić ;)

    bo np stara funkcja źle pokazuje dni w 2016 roku (czyli niedługo) ale począwszy od 1 marca !!!

    ta nowa wersja już ma to poprawione. Błąd znalazł kolega Konradev2 w tym poście: post139851.html#p139851

    _________________
    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: 15 lis 2015, o 13:08 
    Offline
    Moderator
    Avatar użytkownika

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

    wachcio napisał(a):
    Według mnie Mirek popełnił błąd obliczając dni dla kalendarza Juliańskiego zamiast Gregoriańskiego.


    A kolega zadał sobie trud żeby sprawdzić ten sposób z wzorem który podałem w poście wyżej ? Wydaje mi się, że nie, więc przypomnę:

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


    ta funkcja działa bardzo dobrze i to z tablicą dni zaczynającą się od PONIEDZIAŁKU a kończącą się na NIEDZIELI

    ty zaś piszesz, że błąd nawet nie sprawdzając i podajesz nieco inny wzór - pokażę go troszkę inaczej:

    Cytuj:
    uint8_t oblicz_week_day(uint8_t dzien, uint8_t miesiac, uint16_t year) {

    int Y,C,M,N,D;
    M=1+(9+miesiac)%12;
    Y=year-(M>10);
    C=Y/100;
    D=Y%100;
    N=((13*M-1)/5+D+D/4+C/4+5*C+dzien)%7;

    return ((7+N)%7);
    }

    (na czerwono oznaczyłem miejsce w tym wzorze, które powoduje, że u ciebie działa to dla dni liczonych akurat od poniedziałku)

    którzy też działa dobrze ale dla tablicy dni rozpoczynającej się od NIEDZIELI a kończącej na PONIEDZIAŁKU. Ja jednak osobiście wolę mieć tablicę rozpoczynającą się od PONIEDZIAŁKU ;) ..... Bo inaczej to można by nieco jeszcze przerobić ten wzór i mieć np tablicę rozpoczynającą się od ŚRODY a kończącą się na CZWARTKU ale czy jest sens ? ;) Dla mnie i chyba dla każdego to poniedziałek jest pierwszym dniem tygodnia a niedziela od zawsze jest, była i będzie określana jaka siódmy dzień tygodnia ;)

    ------------------------ [ Dodano po: 4 minutach ]

    wachcio napisał(a):
    Poza tym jeśli by ktoś chciał synchronizować zegarek również (np. z powodu braku ATB-Wifi) przez RS232 z terminala lub wygodniej z programu Mirka ucSync dodałem trochę kodu w procedurze parse_rs232 w pliku main.c

    I bardzo fajnie - warto sobie wspomagać programowo życie na każdy sposób ;)

    _________________
    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: 15 lis 2015, o 16:11 
    Offline
    Moderator
    Avatar użytkownika

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

    wachcio napisał(a):
    Napiszę inaczej jeżeli się nie mylę Twój kalendarz

    Po pierwsze to nie mój kalendarz - bo ja sam tego wzoru nie opracowywałem tylko sięgnąłem do netu i jak widzę dokładnie do tego samego źródła co ty ;) ....

    https://pl.wikipedia.org/wiki/Kalendarz_wieczny

    wyciąłem tylko warunek żeby nie bawić się w dwa kalendarze i to mi wystarczy - nie do końca mnie interesują daty np powyżej 2100 ;) dobrze będzie jeśli urządzenia, które buduję przetrwają chociaż 50 lat ;)

    tak więc możesz mieć rację ... ale nie wiem i nawet już nie będę wnikał ;) jak ktoś chce mieć kalendarz do 9999 roku to powodzenia :)

    Tyle, że implementacja od poniedziałku do niedzieli w takiej formie jak podałem działa ładnie - chyba rzeczywiście nie sprawdzałem powyżej 2100 ...

    _________________
    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: 15 lis 2015, o 18:15 
    Offline
    Moderator
    Avatar użytkownika

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

    wachcio napisał(a):
    Chciałem tylko delikatnie Ci zaznaczyć, że wziąłeś nie ten warunek co trzeba... Mam nadzieję, że się nie gniewasz?

    Ale za co się gniewać ? ;) sam na szybko szukałem jak znalazłem w poprzednim swoim rozwiązaniu problem

    Jednak nie mogę się zgodzić, do końca, że w tym który wziąłem jest błąd dla tego podstawowego zakresu dat i tablicy od poniedziałku do niedzieli - bo sprawdzałem .... choć nie mówię na 100% że no dzień po dniu sprawdziłem ale wyrywkowo mnóstwo dat ....

    Więc nie do końca rozumiem gdzie widzisz błąd - dla jakiej np daty ?

    _________________
    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: 71 ]  Przejdź na stronę Poprzednia strona  1, 2, 3  Następna strona

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