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
W setup mam cos takiego:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Funkcja 'usypiająca':
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.