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



Teraz jest 10 sty 2025, o 13:42


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
Autor Wiadomość
PostNapisane: 6 sty 2017, o 01:16 
Offline
Nowy

Dołączył(a): 06 sty 2017
Posty: 2
Pomógł: 0

Witam Wszystkich
to mój pierwszy post na tym forum. Jestem początkujący. Problem jest być może banalny ale w żaden sposób nie mogę go rozwiązać.
Kupiłem Arduino UNO R3 z Atmega328P-PU. Napisałem program, który wykonuje pomiary temperatury co 10 min a w między czasie przechodzi w stan uśpienia. Czas uśpienia jest odmierzany za pomocą WatchDoga z czasem 8s czyli maksymalnie ile się da. Program zasypia na 8s budzi zwiększa zmienną itd aż dojdzie do czasu tuż przed upływem 10min. Po pewnym czasie postanowiłem spróbować podmienić atmegę z zestawu na nową. Kupiłem wgrałem bootloader za pomoca Arduino IDE (i USB asp) wsadziłem na płytkę Arduino UNO, wgrałem ten sam program i klapa.... Ten nowy układ źle odmierza ten czas. odmierzany czas jest ponad 10min i to o jakieś 20s. W moim programie jest tak że program się synchronizuje do pełnych minut i dziesiątek minut tj sekundy na zero a minuty na wielokrotność 10 (10,20,30 itd) konsekwencją jest to ze pomiar jest robiony co 11 minut zamiast 10.
Moją pierwszą myślą było że może fusy kwarcu są źle ustawione tj. inna niż 16MHz jak w arduino uno.
Kupiłem MkAVRCalculator i okazało się że wszystkie fusy są ustawione dokładnie tak jak w tej 'oryginalnej' Atmedze328P_PU. Według MkAVRCalculator te dwie atmegi wydaja się identyczne a jednak ten sam program na tej samej płytce arduino działa na nich inaczej... 4orginalan z płytyki atmega kończy odmierzanie mniej więcej po czasie 9:52 i czeka do pełnych 10 minut a ta nowa tamega kończy odmierzanie po jakiś 10:20. Czy ktoś mógłby doradzić o co tu może chodzić. Dodam że kupiłem 4 szt tych atmeg i próby przeprowadziłem na dwu z nich i efekty są takie same. Jakieś pomysły ?? rady? wskazówki :?:
ObrazekObrazekObrazek
Obrazek

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

Funkcja 'usypiają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: 6 sty 2017, o 02:57 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

Korzystasz z timera watchdoda, który nie jest zaprojektowany do precyzyjnego odmierzania czasu. Watchdog ma zabezpieczać układ przed zawieszeniem poprzez wykonanie awaryjnej procedury (typowo reset) i niewielkie różnice czasu nie mają tu znaczenia. U Ciebie różnica wynosi ok. 4.7% co według mnie jest akceptowalnym wynikiem jak dla timera watchgoda.
Możesz rozwiązać swój problem ustawiając dla każdego układu indywidualnie liczbę ticków timera watchdoga po jakim będziesz robił pomiar.

--
Pozdrawiam,
Robert



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 sty 2017, o 14:08 
Offline
Nowy

Dołączył(a): 06 sty 2017
Posty: 2
Pomógł: 0

Dziękuję Ci Robercie za odpowiedź.
Napotkałem jednak dodatkowy problem. Próbowałem oszacować ile zajmuje jeden cykl watchdoga w tych atmegach i ku mojemu zdziwieniu czas ten jest zmienny w ramach kości, tj przez 10min średnia wynosi około np 8.7s przez następne 10 min średnia wychodzi 9.1s albo nawet 10.4s, i ta zmienność jest chaotyczna tj raz 9.1 raz 8.7 raz 10.4 znowu 8.7 i tak losowo skacz pomiędzy różnymi wartościami. spodziewałbym się że w tych samych warunkach zasilania czy temperatury jeden tick tego watchdoga powinien wynosić w przybliżeni tyle samo. Czy mam rację?



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


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