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



Teraz jest 24 wrz 2026, o 15:13


Strefa czasowa: UTC + 1





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

Dołączył(a): 10 mar 2013
Posty: 739
Lokalizacja: Poznań
Pomógł: 84

Tu masz bardzo fajnie i rzeczowo wyjaśnione zagadnienia z synchronizacją
i "problemem" wiecznego kalendarza
http://www.mirekk36.blogspot.com/2015/05/rtc-synchronizacja-czasu-wieczny.html#more
obejrzyj cykl poradników a na pewno Ci pomogą w ogarnięciu tematu



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 cze 2015, o 05:55 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 450
Pomógł: 3

Dziękuję za sugestię, ale cały cykl obejrzałem i na podstawie poradników napisałem biblioteki PCF8583.c i PCF8583.h, które zastosowałem w "Dawcy czas" (działa i synchronizuje się z NTP). Teraz spróbuję więc podmienić funkcję pozyskującą czas.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 cze 2015, o 15:07 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 450
Pomógł: 3

Proszę o pomoc w następującej sprawie. Uruchomiłem zegar synchronizowany czasem GPS (UART_RX_STR_EVENT, RTC_EVENT). Problem mam z realizacją zdarzenia GetGPSTime_EVENT przez analogię do GetNTPTime z "Dawcy czasu". Obecnie pozyskiwanie danych oraz ich parsowanie odbywa się w ramach funkcji parcującej (parse_uart_data), a więc co 1s. Działa to dobrze, ale chciałbym rozdzielić pozyskiwanie danych od ich parsowania i wszystko to wykonywać na początek, na sztywno co 10s.
Kod funkcji parsującej (poglądowo, nieco skrócony). Jak przenieść PART1 do zdarzenia GetGPSTime?
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: 21 cze 2015, o 08:17 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 kwi 2015
Posty: 450
Pomógł: 3

Witam!
Zrealizowałem programowo wymuszanie synchronizacji z gps krótko po restarcie zegara lub włączeniu zasilania, tak aby nie trzeba było czekać do zaprogramowanej synchronizacji np. 1h. Wprowadziłem zmienną temp=5 tuż przed pętlą while, która jest sprawdzana w zdarzeniu GetGPSTime_EVENT i zmienna wartość zmiennej "co_ile_czasu" np. na 5. Za pomocą zmiennej "co_ile_czasu" ustawiamy czasokres synchronizacji.
"Wymuszenie" działa dobrze tzn. gdy wgrywam program do uC i nie odłączam zasilania:
sekwencja: odczyt czasu z RTC prawidłowy -> 5s -> prawidłowa korekta czasu -> 1min -> kolejna zaprogramowana synchronizacja prawidłowa.
Inaczej jest podczas tzw. zimnego startu, po włączeniu zasilania uC:
sekwencja: odczyt czasu z RTC prawidłowy -> 5s -> BŁĘDNY CZAS -> 1min -> kolejna zaprogramowana synchronizacja prawidłowa.
Gdy zakomentuję wymuszenie pierwszej synchronizacji po "starcie" zegara wszystko działa dobrze, tzn. obojętnie czy zegar był wyłączony czy wgrano wsad, pierwsza zapalanowana synchronizacja jest zawsze poprawna. Nie mają znaczenia czasy tzn. czy po 5s czy po dłuższym czasie.

Czym różni się wgranie wsadu do uC i start programu, od startu programu po włączeniu zasilania uC. Bardzo proszę o pomoc w wyjaśnieniu powyższego zjawiska i rozwiązaniu problemu.

Pozdrawiam



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

Dołączył(a): 10 mar 2013
Posty: 739
Lokalizacja: Poznań
Pomógł: 84

Tego nie wiem musiałby się ktoś bardziej doświadczony wypowiedzieć
może wstaw małe opóźnienie przed while ale to jest spekulacja z mojej strony :)



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

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

Pewnie GPS potrzebuje dłuższego czasu niż 5 sekund od momentu jego uruchomenia, by podawał prawidłowy czas. Gdy wgrywasz program do procka to GPS już podaje czas prawidłowo, bo przecież już dawno jest włączony.



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

Dołączył(a): 02 kwi 2015
Posty: 450
Pomógł: 3

anshar napisał(a):
Pewnie GPS potrzebuje dłuższego czasu niż 5 sekund od momentu jego uruchomenia, by podawał prawidłowy czas. Gdy wgrywasz program do procka to GPS już podaje czas prawidłowo, bo przecież już dawno jest włączony.


Problem wydaje się być rozwiązany. GPS potrzebuje na zimny start ok 60s. Po ustawieniu takiego okresu czasu do pierwszej synchronizacji wszystko działa ja należy. Dziękuję bardzo Koledze za sugestię.



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: 37 ]  Przejdź na stronę Poprzednia strona  1, 2

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Baidu [Spider] i 3 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