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



Teraz jest 10 mar 2025, o 17:58


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
Autor Wiadomość
PostNapisane: 8 paź 2016, o 09:23 
Offline
Użytkownik

Dołączył(a): 28 lis 2014
Posty: 79
Pomógł: 0

Cześć, ostatnio bawiłem się trochę z wykorzystaniem watchdoga do wybudzania procka z trybu power-down. Z tym nie było większego problemu, ale rozważałem jak można używać watchdoga jednocześnie do wybudzania i kontrolowania czy procek się nie zawiesił.

Widzę dwie drogi, pierwsza naturalnie uruchomienie to trybu przerwań i resetu jednocześnie dla watchdoga, ale nie jestem w stanie pojąć tej funkcjonalności. U mnie to działało tak że podczas pierwszego przepełnienia watchdoga wykonywał przerwanie, a podczas drugiego reset, co mało mnie satysfakcjonuje, bo chciałbym aby reset włączał się przy faktycznym zawieszeniu się procka.
Da się jakoś inaczej używać tego trybu ?

Druga, to np. zrobić licznik na timerze, który jak zliczy do 0, umożliwia w kodzie głównym zmiany jakiejś zmiennej na wartość np 1, a potem sprawdzenie jej w przerwaniu watchdoga i jeśli jest ok to zeruje zmienną, a jeśli źle to resetuje procesor.
Tylko tutaj znowu mam wątpliwości co do niezawodności przerwania watchdog. O samym generowaniu resetu czytałem że, jest to moduł sprzętowy, można na nim polegać i jest niezawodny. Ale chyba (?) może się zdarzyć tak, że przy zawieszeniu się procesora, przerwania watchdog nie będą wykonywane. Bo jeśli może, to ten sposób jest średni i pozostaje pierwsza droga, ale nie wiem jak korzystać z tamtej funkcjonalności.

Ktoś byłby w stanie mi wyjaśnić niejasności ? :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 paź 2016, o 22:31 
Offline
Użytkownik

Dołączył(a): 28 lis 2014
Posty: 79
Pomógł: 0

W sumie to już sam się uporałem więc można temat usunąć, w datasheecie znalazłem informację który bit trzeba zerować aby wszystko było ok



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 paź 2016, o 10:58 
Offline
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 2595
Pomógł: 128

To opisz to - będzie dla potomnych.

Sent from my Mi-4c



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 paź 2016, o 16:37 
Offline
Użytkownik

Dołączył(a): 28 lis 2014
Posty: 79
Pomógł: 0

Ok, po prostu gdy korzystamy z trybu przerwania i resetu, musimy w każdym/po każdym przerwaniu ustawiać bit WDIE na 1, w rejestrze WDTCSR.
Gdy tego nie zrobimy, pierwsze przerwanie się wykona, a przy drugim przepełnieniu nastąpi reset.



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 2 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