Hej. Znów nie mogę dojść do porządku, i mam wrażenie że tym razem sprawa nie będzie prosta.
Korzystam z bibliotek z GB dot USART i komend AT. Używam Atmegi 328P taktowanej kwarcem 16MHz
Kiedy wpiszę z terminala polecenie AT+RST w odpowiedzi mam na terminalu " za 1.5s - restart", po czym procesor resetuje się w kółko z częstotliwością 5 razy na sekundę. Bez przerwy w kółko.
Po podaniu zera na pin RESET procesor przez czas występowania tego zera nie działa (tak ma być), jednak zaraz po zdjęciu zera znów wstaje i się resetuje dalej tak samo. Skuteczne jest tylko odcięcie napięcia i ponowne jego podłączenie.
Próbowałem zakładać pułapki z diodą LED, w następujący sposób:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
w tej sytuacji dioda LED miga z częstotliwością ok 5 Hz. czyli program dochodzi do jej zapalenia po czym procesor jest resetowany i tak w kółko.
Kiedy natomiast na samym początku funkcji main dam wait_ms (1000);, program nie dochodzi nawet do zapalenia tych diod a i tak procesor się resetuje. Wychodzi zatem na to, że dzieje się to jakoś automatycznie bez względu na program. Próbowałem także na początku maina wpisać wdt_disable();, bezskutecznie.
W sieci znalazłem tylko podobny problem:
https://www.elektroda.pl/rtvforum/topic1013453.html ktoś go rozwiązał - jak pisze - wyłączając watch-doga w sekcji Init (ostatni post)
Czy wie ktoś o jaką sekcję init chodzi temu autorowi? (temat na elektrodzie jest zamknięty ) Czy chodzi tu o własną funkcję autora?
I finalne pytanie - czy wie ktoś jak wyłączyć to ciągłe resetowanie się procesora.