Witam serdecznie.
Zazwyczaj większość problemów udaje mi się rozwiązać bez pisania na forum, jednak ten doprowadza mnie już do szewskiej pasji.
Chcę zrobić zegarek na Atmega8A taktowanym wewnętrznym oscylatorem, z podłączonym kwarcem zegarkowym do wejść TOSC1/TOSC2 -bez powodzenia.
Zawsze program staje na pętli
Dotknięcie nóżki kwarcu powoduje wyjście z pętli, jednak timer dalej nie działa.
Aktualny kod testowy:
Fusy:
Low: 0xE4
High: 0xD9
Dioda na PB4 świeci się ciągle, upewniałem się na wiele sposobów, że program nie wychodzi z pętli w RTCInit();
Trzy razy zmieniałem układy (raz nawet na Atmegę88p, oczywiście dostosowując kod), testowałem na 5 kwarcach w dwóch rodzajach (jedne zwyczajne 3x8mm, drugie mniejsze) od dwóch różnych dostawców - zawsze w tym samym miejscu program się zatrzymuje.
Schemat płytki oraz jej layout:
Na layoucie jest oznaczona niepołączona masa, jednak w zmontowanej płytce masa jest połączona obudową portu microusb.
Testowa płytka obejmuje przylutowane przewody do pinów ISP kontrolera, wlutowane kondensatory filtrujące oraz kondensatory przy kwarcu 33pF (próbowałem bez kondensatorów i z kondensatorami od 18pF do 100pF).
Przylutowanie kwarcu bezpośrednio do pinów mikrokontrolera niczego nie zmienia.
Program pisany w Eclipse pod Windows 7, kompilowany za pomocą WinAVR-20100110, inne programy działają, tylko ten sprawia problemu.
Nie wiem gdzie mogłem popełnić błąd i czego mam się chwycić... Może czas się wybrać do egzorcysty?
Nie mam niestety dostępu do oscyloskopu.
Bardzo proszę o pomoc w rozwiązaniu tej zagadki.
Zazwyczaj większość problemów udaje mi się rozwiązać bez pisania na forum, jednak ten doprowadza mnie już do szewskiej pasji.
Chcę zrobić zegarek na Atmega8A taktowanym wewnętrznym oscylatorem, z podłączonym kwarcem zegarkowym do wejść TOSC1/TOSC2 -bez powodzenia.
Zawsze program staje na pętli
Kod: C / C++
Dotknięcie nóżki kwarcu powoduje wyjście z pętli, jednak timer dalej nie działa.
Aktualny kod testowy:
Kod: C / C++
Fusy:
Low: 0xE4
High: 0xD9
Dioda na PB4 świeci się ciągle, upewniałem się na wiele sposobów, że program nie wychodzi z pętli w RTCInit();
Trzy razy zmieniałem układy (raz nawet na Atmegę88p, oczywiście dostosowując kod), testowałem na 5 kwarcach w dwóch rodzajach (jedne zwyczajne 3x8mm, drugie mniejsze) od dwóch różnych dostawców - zawsze w tym samym miejscu program się zatrzymuje.
Schemat płytki oraz jej layout:
Na layoucie jest oznaczona niepołączona masa, jednak w zmontowanej płytce masa jest połączona obudową portu microusb.
Testowa płytka obejmuje przylutowane przewody do pinów ISP kontrolera, wlutowane kondensatory filtrujące oraz kondensatory przy kwarcu 33pF (próbowałem bez kondensatorów i z kondensatorami od 18pF do 100pF).
Przylutowanie kwarcu bezpośrednio do pinów mikrokontrolera niczego nie zmienia.
Program pisany w Eclipse pod Windows 7, kompilowany za pomocą WinAVR-20100110, inne programy działają, tylko ten sprawia problemu.
Nie wiem gdzie mogłem popełnić błąd i czego mam się chwycić... Może czas się wybrać do egzorcysty?
Nie mam niestety dostępu do oscyloskopu.
Bardzo proszę o pomoc w rozwiązaniu tej zagadki.
