Witam, mam problem z ustawieniem trybu asynchroniczego. Po wielu próbach kolegów na czacie m.in. SunRivera i Antystatycznego, w koncu załapałem o co chodzi w tym trybie. Rzeczywiście podłączanie kwarca do timera pod te same nózki co zwykłego kwarca dla uC było mylące.
Czytałem, w datasheet ze tryb asynchroniczny ustawia się w rejestrze ASSR. Mój kod wygląda tak:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Wynik jest taki ze w odbiorniku wyświetlana jest temperatura oraz zmienna kontrolna, ale tylko raz. Nie odświeża się (zmienna kontrolna ma ciągle wartość 1). Zakomentowane fragmenty to próba ustawienia zwykłego timera - na nim wszystko działa idealnie, zmienna wzrasta co 2s, temperatura się odświeża.
Nie mogę dojść do tego dlaczego w trybie asynchronicznym nie działa.
Co prawda nie mam kondensatorów przy kwarcu,ale gdzieś przeczytałem ze timer2 jest skalibrowany pod kwarc zegarkowy i kondensatory nie są wymagane.
Mam jeszcze problem z przeniesieniem tego z częstotliwosci 8Mhz na 1Mhz, neistety nie działa poprawnie przesył temperatury ale moze sie uda. Tryb asynchroniczny zaczał dizałac, dodałem poprostu jeszcze polecenie usypiania, w rzuciłem do procesora i działa. W trybie uśpionym pobiera 0.35mA a w trybie aktywnym 6mA. I już widze ze popełniłem błąd, bo odpiałem rfm73 i pobór prdu spadł z 0.35mA do.... 12uA.... eh nie zdawałem sobie sprawy ze ten moduł radiowy gdy nic nie robi az tyle zjada prądu - mogłem nózke VCC z modułu podpiac pod uC poprzez tranzystor i tak nim sterować.
W w nocie jak wół stoi:
Kod:
Standby-II current 330 uA
Trzeba obmyslec jak to ustrojstwo wyłączyć gdy jest niepotrzebne