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



Teraz jest 29 mar 2024, o 09:10


Strefa czasowa: UTC + 1





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

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

Witam!
Bardzo dziękuję Mirku za cykl poradników o czasie. Całą noc spędziłem na konfiguracji modułu i mam problem z odczytem czasu na LCD. Moduł ATB-WiFi skonfigurowany jak w poradnikach (ale na pewno jest babol!). Widok poszczególnych zakładek na zdjęciach poniżej. Program pisany razem z Tobą w trakcie oglądania poradnika - w załączeniu (biblioteka MK_USART z GB). Moduł pięknie widzi stronę w przeglądarce jak i w telefonie, ale czasu odczytać na LCD nie chce. Proszę o pomoc - co pominąłem.

ObrazekObrazekObrazek
ObrazekObrazek

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


Pozdrawim

P.S. Moduł podłączony do pinów RX i TX (Listwa RS232) na płycie ATB Rev.1.03 (czy można podłączyć pod PD0 i PD1?. Atmega32). Dioda TX (czerwona) mruga co 10s. Dioda w pętli while(1) mruga co 250ms. Na LCD widnieje napis Start..



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

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

Na początek zajmij się sprawdzeniem czy działa ci wszystko w module po podłączeniu go do komputera przez RS232 (z jakąś przejściówką oczywiście USB/TTL), zamiast od razu męczyć się z kodem.

Widzę wprawdzie że w oknie terminala WIFI Config nie może odczytać GMT ale coś tam mi dziwnie robisz

Jak podłączysz się terminalem to weź najpierw puść polecenie AT+ żeby zobaczyć czy działa poprawnie tryb komend w ogóle

później

AT+NTPEN=on

i sprawdzaj czy są poprawne odpowiedzi

sockB masz niby ustawiony ale jak zadajesz takie pytanie to powinieneś ładnie wszystkie komendy ustawiające działanie NTP zrobić w TERMINALU najpierw to PODSTAWA i pokazać na zrzucie ekranu że działają

Jeśli zadziałają to zrób wtedy

AT+PING=atnel.pl

i sprawdź czy masz pinga ....

to PODSTAWA znowu ....

dopiero gdy pokażesz że działa PING i masz ustawiony SOCKB .... i nie pobierze czasu z NTP - to wtedy z kolei najpierw sprawdź czy twój dostawca internetu albo twój router nie blokuje pakietów NTP (bo o zgrozo niektórzy dostawcy tak robią - szaleństwo no ale robią co już wyszło w wielu takich przypadkach gdy ludziom rzekomo nie działał niby NTP przez nasz moduł. U innych po prostu router blokował bo tak mieli skonfigurowany)

więc NA POCZĄTEK to się doprowadza do takiego etapu

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

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

Bardzo dziękuję. Jak tylko wrócę z pracy zabieram się za testy. Miłego dnia.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 maja 2015, o 12:19 
Offline
Nowy

Dołączył(a): 29 lip 2013
Posty: 9
Lokalizacja: Łódź
Pomógł: 1

W zakładce STA na samym dole w DNS Server chyba brakuje ostatniej cyferki.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 maja 2015, o 12:23 
Offline
Moderator
Avatar użytkownika

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

kropek napisał(a):
zakładce STA na samym dole w DNS Server chyba brakuje ostatniej cyferki.

Rzeczywiście w polu GATEWAY także .... uzupełnij, a na przyszłość odznacz ptaszka "auto fill" jeśli ci przeszkadza w uzupełnianiu tych pól

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

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

Dziękuję Wszystkim za pomoc. Sukces jest, ale częściowy. Brak cyferek w ustawieniach bramy sieciowej i serwera DNS odpowiadał za brak połączenia z internetem. Za brak pozyskiwania czasu odpowiadał router dostawcy internetu. Po udostępnieniu w nim portu 123 bingo - instrukcja AT+GMT pokazuje datę i czas (połączenie kablem USB COM5). Niestety program przedstawiony w pierwszym poście, choć kompiluje się bez błędów nie daje spodziewanego efektu - na wyświetlaczu LCD widnieje napis Start.... Proszę o kolejne wskazówki gdzie szukać błędu.

ObrazekObrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 maja 2015, o 18:25 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 10 sty 2014
Posty: 446
Lokalizacja: DKL
Pomógł: 53

Ale, po tych próbach przełożyłeś już moduł Atnel-WiFi232T na dolne złącze ATB tak aby miał połączenie z Atmegą?


Autor postu otrzymał pochwałę

_________________
Migracja z punktu B do punktu C
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 maja 2015, o 18:37 
Offline
Użytkownik
Avatar użytkownika

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

matw napisał(a):
Ale, po tych próbach przełożyłeś już moduł Atnel-WiFi232T na dolne złącze ATB tak aby miał połączenie z Atmegą?


Bardzo dziękuję! Podpięcie modułu Atnel-WiFi232T do pinów Tx i Rx Atmegi32 dało natychmiastowy efekt - jest data i czas na ekranie LCD tak jak w poradniku Mirka. Rozumiem, że w takiej konfiguracji kabel USB służy tylko do zasilania i programowania mikrokontrolera, a moduł żyje własnym życiem?

Pozdrawiam



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

Dołączył(a): 10 sty 2014
Posty: 446
Lokalizacja: DKL
Pomógł: 53

Cytuj:
Rozumiem, że w takiej konfiguracji kabel USB służy tylko do zasilania i programowania mikrokontrolera, a moduł żyje własnym życiem?
Tak, zgadza się, pamiętaj żeby zworki przy przejściówce RS232 koniecznie rozłączyć. Więcej informacji tutaj: http://atnel.pl/atb-przejsciowka-usb-rs232.html

_________________
Migracja z punktu B do punktu C
Pozdrawiam



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

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

matw napisał(a):
pamiętaj żeby zworki przy przejściówce RS232 koniecznie rozłączyć. Więcej informacji tutaj: http://atnel.pl/atb-przejsciowka-usb-rs232.html

Rozłączyłem właśnie! Dzięki za zwrócenie uwagi. Na szczęście nic nie uległo uszkodzeniu.



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

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

Witam!
Nie chciałem zakładać nowego wątku bo nadal jestem w temacie pozyskiwania czasu z NTP. Napisałem "razem" z poradnikiem Mirka funkcję GetNtpTime. Zrozumiałem jak wykorzystać Timer2 programowy nie tylko do pobierania czasu w zadanych odstępach, ale także jak wykorzystać go dodatkowo do mrugania diodą. Utknąłem jednak na problemie zmiany częstość mrugania tej dodatkowej diody (w poradniku 100ms - Dawaca Czasu część 5). Rozumiem, że trzeba napisać warunek i funkcję callback wywoływać po innej zadanej liczbie tiknięć niż pobieranie czasu. Nie umiem jednak sobie z tym poradzić. Zapis jak w linii 35 generuje oczekiwane mruganie diody co 100ms. Oto kod funkcji GetNtpTime.

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


Próbuję wywołać funkcję callbackową przekazaną do funkcji zdarzeniowej co określony czas np. co 500ms. Napisałem kod, ale nie działa.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Proszę bardzo o pomoc.



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

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

a zwiększasz gdzieś co_ile_czasu_led_PC4_TOG ? czy liczysz na to że samo się będzie zwiększać ?

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

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

mirekk36 napisał(a):
a zwiększasz gdzieś co_ile_czasu_led_PC4_TOG ? czy liczysz na to że samo się będzie zwiększać ?


Uzupełniłem kod o zwiększanie zmiennej, ale nadal bez efektu - funkcja callback nie jest wywoływana
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


P.S. Poradziłem sobie. "Działania na diodzie" przeniosłem do ciała funkcji callback
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: 20 maja 2015, o 19:08 
Offline
Użytkownik

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

Witam
Może mi ktoś pomóc, chciałem ruszyć dalej ale nie widzę błędu dlaczego to nie działa, a mianowicie jest napis na wyświetlaczu a dioda na PC7 nie miga no za cholerę nie wiem gdzie jest błą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: 20 maja 2015, o 19:18 
Offline
Użytkownik
Avatar użytkownika

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

A wektor przerwania?
Nie widzę go w Twoim kodzie. :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: 20 maja 2015, o 19:31 
Offline
Użytkownik

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

no i jak by to Mirek powiedział face pal (chyba tak sie pisze:) dzięki



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 maja 2015, o 11:53 
Offline
Użytkownik
Avatar użytkownika

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

Witam!
Nie zakładam nowego wątku bo nadal pytanie ma związek z dawcą czasu i RTC. Przygotowałem bibliotekę do obsługi RTC wg poradników Mirka. Niestety nie działa. Na etapie wyszukiwania błędów okroiłem swój kod praktycznie do szkieletu aby zaobserwować działanie przerwania INT0. Okazało się, że jeżeli umieszczę diodę w ciele przerwania INT0 (1<<PC4) to mruga ona co 1s, ale umieszczenie jej w warunku sprawdzania i zerowania flagi (1<<PC3) daje dziwny objaw - dioda mruga w nieregularny i raczej przypadkowy sposób. Nie może więc działać cała biblioteka, która pobiera czas w rytm zmiany flagi przerwania INT0. Bardzo proszę o sprawdzenie i pokazanie błędu.

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


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


Pozdrawiam



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

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

Jakbyś stosował prawidłowe wcięcia w całym kodzie - to sam byś szybko uniknął kupy błędów, tymczasem pomyśl co jest wykonywane a co nie w tym niby warunku IF bez nawiasów klamrowych .... A kod i formatowanie tak rozstrzelone, że nie dziwota że sam nie widzisz ... więc może ten rysunek pomoże

Obrazek

a ty przy okazji zrozumiesz - dlaczego TYLE czasu w Bluebooku i wszędzie poświęcam tzw "dobremu stylowi programowania" do którego wcięcia się również zaliczają i to jest wręcz podstawa.

------------------------ [ Dodano po: 2 minutach ]

ale przynajmniej muszę teraz pochwalić że fajnie idziesz tropem DEBUGERA na jednej diodzie LED . I o to właśnie chodzi ...

_________________
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 13:30 
Offline
Użytkownik
Avatar użytkownika

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

Dziękuję. Brakowało nawiasu. Teraz diody migają co 1s. Ucieszony tym faktem postanowiłem rozszerzyć funkcję RTC_EVENT() o get_datetime(0 i spotkała mnie kolejna niespodzianaka. Dioda PC4 (w ciele przerwania INT0 mruga nadal co 1s, ale dioda PC3 w ciele RTC_EVENT świeci się przez cały czas nieco słabiej. Podpiąłem analizatorek stanów logicznych i okazało się, że PC3 działa jakby sterowana przez PWM. Spodziewałem się nadal 1Hz. Co w ten sposób "taktuje" diodę PC3?
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 maja 2015, o 13:44 
Offline
Użytkownik
Avatar użytkownika

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

Pewnie masz niewyłączony JTAG we fusebitach.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 maja 2015, o 13:49 
Offline
Użytkownik
Avatar użytkownika

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

Jest wyłączony.
Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 maja 2015, o 14:47 
Offline
Moderator
Avatar użytkownika

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

avrfun napisał(a):
Co w ten sposób "taktuje" diodę PC3?

Nie co tylko kto ? - a to właśnie ty nie kto inny - masz gdzieś jakiegoś pokracznego babola ....

Może próbujesz wyzwalać przerwanie poziomem a nie zboczem ? Zawsze mówię, jak ci coś nie wychodzi to najpierw kombinuj tak jak w poradniku czy książce gdzie masz wzór. A ty się uparłeś na wyzwalanie nie narastającym zboczem tylko opadającym. Wprawdzie to żadna różnica ale widząc twoje poczytania można się domyślać, że np się walnąłeś po zmianach w inicjalizacji przerwań ...

Może gdzieś w kodzie kilkakrotnie wywołujesz ten RTC_Event ? - nie wiem ..... popatrz sobie pod tym kątem - zamiast zastanawiać się "co wywołuje?" Bo to nie co ? tylko pytanie postaw sobie gdzie zrobiłem babola ? .... i skoro wiesz - masz ładnie migającą diodę w przerwaniu (BINGO że tak ładnie teraz sprawdzaj i analizujesz) .... to skoro ta z flagą w pętli głównej działa źle - to zadaję sobie pytania ....

hmmm a może zjadłem volatile ?
a może kilka razy wywołuję event ?
a może źle zainicjalizowałem przerwanie INT0 ?

co jest jeszcze z tym związane ? i co można jeszcze zminimalizować ? no co ? .... wywal np nawet funkcję odpytującą

get_datetime (&datetime);

tzn zakomentuj też ją - żeby mieć pewność że flaga ma TYLKO diodą migać bo np jeśli ta funkcja jest u ciebie skopana to może restartuje mi procka ?

widzisz jak się idzie ? jakim torem ?

_________________
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 16:26 
Offline
Użytkownik
Avatar użytkownika

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

Kolejne obserwacje. W chwili obecnej funkcja get_datatime jest wywoływana z poziomu RTC_Event , dioda PC3 mruga co 1s.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Zastosowałem badanie przebiegu funkcji get_datetime poprzez wyświetlenie na LCD liter. Funkcja get_datetime zatrzymuje na pętli for. Po jej zakomentowaniu przechodzi do końca.

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 18:15 
Offline
Moderator
Avatar użytkownika

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

avrfun napisał(a):
Funkcja get_datetime zatrzymuje na pętli for. Po jej zakomentowaniu przechodzi do końca.

No to chłopie masz rozwiązanie - nie jeden by chciał mieć taki trop, że program staje w jednym miejscu i nie rusza dalej, to już jest coś i TYM łatwiej już rozwiązać zagadkę....

Teraz sobie przypomnij PODSTAWY jak działa pętla for, i poszukaj co źle robisz bo przecież na 100% zrobiłeś coś nie tak jak w poradniku.

Mała podpowiedź, chociaż aż dziwię się że to piszę, no bo to oczywiste chyba, skoro pętla się nie kończy - czyli masz pętlę nieskończoną to teraz co ci przychodzi do głowy że możesz mieć skopane ? hmm ? Jak to sprawdzić hmmm ? Działaj dalej - sam to rozwiążesz to od razu nabierzesz dodatkowych 1000 punktów doświadczenia bo problem jest już trywialny.

_________________
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 18:54 
Offline
Użytkownik
Avatar użytkownika

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

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

Na LCD: 19:
Pozostały minuty i sekundy jeszcze.



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

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

avrfun napisał(a):
Napisałem tak:

to nie jest rozwiązanie - no coś ty! po pierwszym obiegu pętli przerywasz jej działanie - a gdzie jeszcze kolejne dwa obiegi ?

no dobra kolejna podpowiedź ale ostatnia - przyjrzyj że się jak działa pętla a dokładniej jej zmienna iteracyjna, (jaki jest TYP tej zmiennej - tu masz BABOLA)

_________________
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 19:28 
Offline
Użytkownik
Avatar użytkownika

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

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

Dziękuję!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 maja 2015, o 10:53 
Offline
Użytkownik
Avatar użytkownika

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

Witam!
Mam kolejny problem. Zastosowałem funkcję do zmiany czasu z letniego na zimowy i odwrotnie wg poradnika (RTC, cz. 9). Występuje u mnie problem tzw. "ręcznego sterowania" ;) tzn.:

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

następuje prawidłowa zmiana czasu z zimowego na letni: 2015-03-29 -> (1:59) -> 2:00->3:00, ale
dla dnia 2015-10-25 (zmina czasu letniego na zimowy) -> godzina się nie zmienia i z 2:00 (2:59) przechodzi na 3:00 zamiast na 2:00

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

Prawidłowa zmiana czasu następuje w październiku, a w marcu nie. W marcu wystepuje dziwne zachowanie się czasu - godzina 1:59 zamiast na 2:00 i następnie na 3:00 zmienia się na 0:59

Podobną nieprawidłowość zauważyłem w działaniu zegara z poradnika (cz.9) (wszystko na kilka sekund przed godz. 2:00), z tym, że ręczne ustawienie zmiennej nie pomogło.
Poradnik 21:20:
Obrazek
Poradnik 21:21:
Obrazek

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


Niepokoi mnie również zapis z poradnika podkreślony na czerwono (z nim pojawia się błąd, po zakomentowaniu błąd znika)

Obrazek

Nie mogę znaleźć babola. Proszę o pomoc.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 maja 2015, o 12:04 
Offline
Moderator
Avatar użytkownika

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

avrfun napisał(a):
uint8_t czas_letni_zimowy = _zimowy;


coś nie do końca oglądasz poradniki, bo zarówno wcześniej już w twoich pytaniach pojawiało się przerwanie INT0 z którego pokazałem jak zrezygnować w kodzie a ty zostawiłeś - po co ? to oczywiście nie jest błąd ale widać - no gdzieś tam jakby masz luki w oglądaniu. No i tak samo jest dokładnie z tą zmienną - której w ogóle na końcu nie używam bo została przeniesiona do struktury.

A odnośnie zakomentowanej linii - to w poradniku masz zakomentowaną ... to po co ją odkomentowujesz i dziwisz się że jest błąd ?

_________________
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: 25 maja 2015, o 13:14 
Offline
Użytkownik
Avatar użytkownika

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

Dziękuję. Obejrzałem poradnik do końca i spotkała mnie miła niespodzianka. Ustawienie czasu w krytycznych dniach na 5 sekund przed zmianą czasu skutkuje prawidłową zmianą godziny. Nie obserwuję efektu krytycznej godziny.
Pozdrawiam.



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: 77 ]  Przejdź na stronę 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 9 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