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



Teraz jest 29 mar 2024, o 15:55


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
Autor Wiadomość
PostNapisane: 12 lip 2018, o 09:40 
Offline
Użytkownik

Dołączył(a): 01 sty 2013
Posty: 169
Pomógł: 0

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:
Składnia: [ Pobierz ] [ Ukryj ]
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.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lip 2018, o 10:19 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 lut 2014
Posty: 212
Lokalizacja: Poznań
Pomógł: 12

chyba chodzi o odwołanie się do funkcji void wdt_disable (void) która jest zawarta w bibliotece wdt.h
#include <avr/wdt.h> // obsługa układu Watchdog
o Watchdoga Mirek zrobił poradnik http://mirekk36.blogspot.com/2012/10/watchdog-avr-prostsze-niz-myslisz.html


Autor postu otrzymał pochwałę


Ostatnio edytowano 12 lip 2018, o 10:36 przez RYSZARD M, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lip 2018, o 10:35 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 cze 2014
Posty: 855
Lokalizacja: pod Warszawą
Pomógł: 58

Wstaw takie coś przed funkcją main zaraz po "includach"
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

P. Mirek pisze o tym na blogu gdy omawia bootloader
https://atnel.pl/mkbootloader.html
pozdrawiam


Autor postu otrzymał pochwałę

_________________
Pomóżcie mi stanąć na nogi



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lip 2018, o 16:02 
Offline
Użytkownik

Dołączył(a): 01 sty 2013
Posty: 169
Pomógł: 0

Wszystko działa już jak powinno. Trzeba tylko wiedzieć gdzie szukać. Bardzo dziękuję!!



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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