Ja rozumię jak działa watchdog. Hmm. Konstruktorzy wychodząc naprzeciw najnowszym trendom w konstruowaniu mikrokontrolerów, wbudowali do procesorów AVR układ Watchdog. Jest to specjalny licznik, zliczający impulsy zegarowe 1MHz. Gdy nastąpi przepełnienie tego licznika, generowany jest sygnał RESET by wyzerować procesor. Do programisty zatem należy...
Dotychczas nie zależało mi, żeby jakiś układ zabezpieczać watchdog'iem, ale w miarę rozwoju mojego projektu zaistniała taka potrzeba. Przeczytałem tutorial na "wkrętaku" i wszystko niby jasne, proste a jednak musi być jakieś ale... W moim programie jest funkcja while(1) gdzie mógłbym wstawić _WDR(); ale jest tez funkcja programowania, gdzie na bardzo...
W programie chciałbym umieścić funkcję powrotu do bootloadera. Robię to w ten sposób: void reset() { cli();wdt_enable(WDTO_15MS... } Słyszałem, że watchdog działa tak, jak fizyczne zwarcie linii RESET do masy. Jednak po wywołaniu reset() program wraca do swojego początku, zamiast w pełni resetować urządzenie....
master_pablo ---> gaaaat demit ;) ale odstawiłeś teraz bajerek ;) no coś pięknego !!! - i to makefile - EXTRA! Ciesze sie, ze Ci sie podoba :). .... odnośnie tego if( uart_waitchar(500) < 1 ) goto CallApp; to ma to oczywiście za zadanie oczekiwać na dane z PCta ale max przez okres 500ms, jeśli nie nadlecą to bootloader się wyłącza....
zastąp signal i stary vektor INTERRUPT0 SIGNAL (SIG_INTERRUPT0) { x++; } na nowsze ISR i INT0_vect ISR (INT0_vect) { x++; } tu masz wszystkie przerwania http://www.nongnu.org/avr-libc/user-manu... a co do watchdoga hmm... żeby użyć #include <util/delay.h> musisz dać wcześciej #define...
Jak myślisz o jakimś pojedynczym regulatorze z wyświetlaczem, to proponuję cyfrowe czujniki temperatury Dallas. ATmega32, wyświetlacz LCD, klawiatura (4x4), 1wire (dla czujników), klucze rezystorów w termo-zaworach na tranzystorach Mos-fet, zegar/pamięć RTC z podtrzymaniem bateryjnym (czas i nastawy temperatur). Program powinien zawierać funkcję watchdog,...
Należy resetować watchdoga w takich miejscach w programie gdzie wykonywanie programu zajmuje więcej czasu. Nie ma tu znaczenia czy są to pętle,sub-y itd. Po prostu watchdoga należy resetować tak często aby się nie przepełnił i nie dokonał restartu.
Jeżeli chcesz wykorzystać Watchdog jako rodzaj timera, to w rejestrze WDTCR powinno się ustawić bit WDTIE. Ponadto za pomocą bitów WDP3...WDP0 należy ustawić prescaler Watchdog'a. Z tego wynika co jaki czas będzie przerwanie. Jeżeli np. potrzeba 8 s, to ustawić należy WDP3 i WDP0, czyli powinno być: https://obrazki.elektroda.pl/1370064900_...
Zapytam po raz drugi: co to jest procedura obsługi Watchdoga?? To jest "Watch" ale bez "dog"... ;) Może być ewentualnie obsługa inicjalizacji watchdoga w tych procesorach, w których jest on konfigurowalny. A dla potomności : watchdog to licznik resetujący układ po upłynięciu odliczanego czasu. W celu zapobieżeniu resetowi układu program wykonujący...
trak jak w temacie POZDRAWIAM
Witam Mam problem z uruchomieniem watchdog'a w atmedze324. Procesor nie uruchamia resetu. Ten program powinien wypisywać cyfry przez około 2 sekundy potem powinien się zresetować. Proszę o pomoc. [syntax=jezyk_programowania] #include <mega324.h> #include <stdio.h> #include <delay.h> #include <stdlib.h> #include <string.h>...
Witam! chciałbym użyć watchdoga w mojej aplikacji. Program działa tak, że jest sobie pętla główna programu i wykonywane są w niej pewne rzeczy a pozostała część działa na przerwaniach. Watchdoga chciałbym resetować w pętli głównej tak aby zawieszenie programu w procedurach obsługi przerwań również powodowało resetowanie procesora. Problem jaki napotkałem...
Włączył Ci się "hardware watchdog". Zrób "mass erase" a następnie albo wyłącz "hardware watchdog", albo skasuj też obszar "option bytes" (lub przywróć tam wartości domyślne).
Jest kilka możliwości. Tak samo w Bascomie jak i w każdym innym języku/kompilatorze. Można uruchomić WATCHDOGa i odczekać w pustej pętli aż zresetuje, można połączyć dowolne wyjście mikrokontrolera z wejściem resetu i zresetować, gdy potrzeba. Np tak: CONFIG WATCHDOG = 16 start watchdog do:loop A dlaczego chcesz resetować? Nie lepiej napisać program...
telekomuna - zajmuje sie mikrokontrolerami wiem jak działa watchdog :) chodziło mi o to że program nie resetuje (zeruje) rejestru watchdoga przez co on sie przepełnia i generuje reset, jak napewno wiesz, watchdog jest licznikiem zliczajacym cały czas impulsy (jakie zalezy od ustawien rejestrów preskalera) programista powinien systematycznie w programie...
Witam! Przepraszam, że tak późno ale sesja... Problem okazał się być banalny -wystarczyło wyłączyć watchdoga na FS i wszystko pięknie chodzi. Dzięki wszystkim za pomoc i uważam temat za zamknięty.
w programie mam config watchdog=32 , resetuję go w przerwaiu co około 2ms i w zasadzie jest ok , ale czasami program się zwiesi (nie reaguje na przyciski) a watchdog nie resetuje procesora , czy to możliwe żeby program wisiał a przerwania działały ? w programie mam kilka pętli DO...LOOP , czy zrezygnować z resetowania watchdoga w przerwaniu i zrobić...
Bascom sam się nie zajmie resetowaniem Watchdog'a, jak słusznie zauważył Holy . Żeby z niego skorzystać najpierw trzeba go skonfigurować (ustawić stopień podziału - od tego zależy czas potrzebny na przepełnienie jego licznika) poleceniem CONFIG WATCHDOG = czas , później uruchomić: Start Watchdog . Teraz w newralgicznych punktach programu musi zostać...
Witam. Koledzy jak ogarnąć watchdog-a sprzętowego w ESP8266? Szukałem czytałem że esp ma watchdog-a programowego i sprzętowego ale nie ogarniam tego. Chciałbym to zrobić tak jak w Bascomie, ustawiam watchdog-a sprzętowego na jakiś czas a później w programie go resetuję jak program stanie to watchdog załatwi resztę. A może ktoś podlinkuje jakiś zrozumiały...
WDTON Fuse Unprogrammed: In this mode, the Watchdog Timer is initially disabled, but can be enabled by writing the WDE bit to 1 without any restriction. A timed sequence is needed when changing the Watchdog Time-out period or disabling an enabled Watchdog Timer . WDTON Fuse Programmed: In this mode, the Watchdog Timer is always enabled , and the WDE...
No ja walczyłem z nano v3.0 i taki sam efekt miałem nie wyłącza WDT po resecie... WDTON Fuse Unprogrammed: In this mode, the Watchdog Timer is initially disabled, but can be enabled by writing the WDE bit to 1 without any restriction. A timed sequence is needed when changing the Watchdog Time-out period or disabling an enabled Watchdog Timer . WDTON...
możesz skorzystać z programu typu "watchdog" np. [url=http://www.kiwimonitor.com/kiwi_app... lub w batchu jak wpiszesz START /WAIT "sciezkado.exe" to interpreter czeka na zakończenie programu. [url=http://ss64.com/nt/start.html]Link
AVE... Watchdog timer to specjalny zegar w mikrokontrolerze, który resetuje układ, jeśli ten się zawiesi. Brown-out reset to z kolei układ, który resetuje i wyłącza mikrokontroler, jeśli napięcie zasilania spadnie poniżej poziomu, przy którym układ pracuje stabilnie... Na moje oko odczytało Ci program poprawnie. Podłącz nowy mikrokontroler do programatora,...
Jeśli WD ma być "tylko" do budzenia to się zgodzę. Przyzwyczaiłem się WD zostawiać sobie też dla bezpieczeństwa aplikacji. If WDE is set, the Watchdog Timer is in Interrupt and System Reset Mode. The first time-out in the Watchdog Timer will set WDIF. Executing the corresponding interrupt vector will clear WDIE and WDIF automatically by hardware (the...
Co do książki : to czy przeoczyłem czy nie ma w niej wzmianki o Watchdog-u ? Jest ale tylko bardzo króciutka i teoretyczna wzmianka, na stronie 53. Jest to dość prosty moduł mikrokontrolera - taki jakby timer, który jak wystartuje i doliczy do końca to BUM czyli reset procka. A jak nie chcemy resetu to wciąż musimy w programie resetować ten timer żeby...
A watchdog masz wyłączony?
Program piszę w kompilatorze BASCOM_AVR
zalezy od tego z jakiego powodu chcesz go resetowac - moze to byc watchdog, który pilnuje czy np. program sie nie zapętla, czy np. brown-out który pilnuje i resetuje uC przy spadkach zasilania.
No ale Panowie jeśli Watchdog daje radę podnieść procesor po zawieszeniu to po co mam szukać buga w programie? Czy nie jest tak że po zawieszeniu się programu watchdog resetuje procesor i ma być on znów włączony od początku poprawnie? Jeśli tak i jeśli mam nawet buga w programie to mimo wszystko sterownik nie powinien umierać jak ma to miejsce u mnie....
Domyślnie jeśli Watchdog jest włączony cały czas to po resecie ma domyślnie ustawiony czas 16ms (bity WDP2..0 w rejestrze WDTCR są zerami) Zatem układ wciąż ci się resetuje po pierwszym przebiegu. Żeby się tego pozbyć wklej sobie przed funkcją main() coś takiego static void __init3( void ) __attribute__ (( section( ".init3"...
Jeśli resetował by prawidłowo to program wgrany do Uc powinien startować od początku. Dzieje się tak tylko kiedy zostanie naciśnięty reset PIN. Gdy układ zresetuje WATCHDOG to program nie startuje od początku, tylko widać przypadkowe znaki na wyświetlaczu. Dopiero po resecie z pinu wszystko wraca do normy.
u mnie nie ma tego problemu z przekaźnikiem, program wczesniej działal na atmega8 i bylo ok
A jeśli "pętla główna" jest właśnie w przerwaniu a w mainie program nie robi nic ( while(1){} zaraz po inicjacji peryferiów ) albo nie robi nic ważnego? A gdzie ląduje program po skończonym przerwaniu? Gdzieś ten reset wachdoga trzeba dać. mianowicie watchdog nie resetuje urządzenia. Jakie mogą być tego przyczyny? Ewentualnie, czy ktoś ma jakąś wskazówkę,...
Wyłącz watchdog-a i bedzie dobrze.
Witam, można sprawdzić. Jak wynika z komunikatów wczytały się słowa konfiguracyjne. Normalnie jest to kombinacja znaczników, która człowiekowi niewiele mówi i należałoby to porównać z dokumentacją. Na szczęście MPLAB zamienia to na postać zrozumiałą dla człowieka. Trzeba wejść do menu konfiguracji procesora i obejrzeć ustawienia: typ oscylatora, watchdog,...
No tak ale reset to jest chyba reset i procesor się resetuje. Mam ustawioną opcję tylko resetu sprzętowego, ba ATtina ma możliwość jeszcze generowania przerwania. Bezpieczniki ustawione są jak załączniku. Nawet sprawdzam na początku programu czy reset pochodzi z watchdoga, ale tak nie jest. A co do resetowania watchdoga to wiem o tym po prostu tu watchdog...
Cena uwaga tylko czy przy takiej sekwencji watchdog nie jest nad wyrost ? On tylko resetuje procesor gdy program się zawiesi a tu wystarczy przycisk reset i operator sam zresetuje
Program się resetuje jak go jumpniesz w kosmos, symulator to potwierdza;)
Nie blokuje. To tylko nakazuje skok pod podany adres i jak wskażesz 0 to skoczy na początek flasha gdzie zaczyna się program. To jednak nie resetuje procesora całkowicie. Wszystkie zapisane rejestry zostaną nietknięte a to może nie być pożądaną opcją. Lepiej jest chyba ustawić Watchdog z najkrótszym czasem to zresetuje uC całkowicie i każe mu skoczyć...
miałem ewidentny błąd w programie: funkcja wykonywała się dłużej niż 2sek i avr resetował się..
Mozna spróbować uruchomić watchdog'a (glodny pies jezeli sie go nie dokarmia resetuje program i odpala go od początku :) ) Jeżeli cały program wykonuje sie w miarę szybko można raz go "dokarmiać" na samym początku jeżeli nie to trzeba to robić kilka razy.
dondu - totalnie mylisz pojęcia. BOD i WD to dwa zupełnie różne układy, wyzwalane zupełnie różnymi bodźcami. WD powinien być stosowany w każdej aplikacji, jako dodatkowe zabezpieczenie. I bynajmniej nie z powodów o których piszesz. Jeśli program może wchodzić w dziwne stany to jest po prostu źle napisany - rozwiązaniem jest napisanie go poprawnie. A...
Resetuj WDT tam, gdzie to potrzebne. Zamiast polegać tylko na loop(), warto "karmić" WDT strategicznie, czyli tam, gdzie może wystąpić problem. Warto też skonfigurować Interrupt Vector dla Watchdog Timer (WDT), co pozwala wykonać funkcję przed resetem układu. Funkcja taka może wykonać jakiś zapis stanu do EEPROM czy też wykonać sygnalizację resetu wskutek...
Potrzebny mi timer z wyzwalaczem i przerwaniem na ATmega. Takie rzeczy robi sie programowo, albo programowo wydłużając czas zliczania timera sprzętowego w mikrokontrolerze, można też z uzyciem przerwań. Dlaczego chesz to zrobić całkowicie sprzętowo, obawiasz się o to że program przestanie poprawnie pracować? czy nie wiesz jak to zrealizować w programie?...
Ten sterownik nie będzie już bardziej rozbudowywany, gdyż sercem układu jest ATTINY2313, który w zasadzie ma wykorzystaną całą pamięć, by troszkę przyoszczędzić miejsca po zakończonym przejeździe jedna z nóg mikrokontrolera resetuje go, zamiast wracać do początku programu. Podejrzewam że odpalenie watchdog'a wiele miejsca by nie zabrało a nóżka zawsze...
Nie rozumiem dlaczego nie możesz skorzystać z resetowania przez watchdoga. Potrzebujesz w pewnym wybranym momencie zresetować procek - tak piszesz, zatem w tym momencie zatrzymaj program aby watchdog zadziałął i po sprawie . Jeśli trzeba to wyłącz również w tym przypadku przerwania. Najlepiej zrobić to w niezależnej procedurze.
Witam, nie wiem czy to odpowiedni dział więc w razie czego proszę przenieść. Do rzeczy. Na rpi3 mam napisany przez siebie w Pythonie program. Używa on biblioteki pygame. Normalnie działa bez zarzutu ale co 2-4 dni wyrzuca błąd "Fatal Python error: (pygame parachute) Segmentation Fault" i wychodzi z programu. Wydaje mi się, że może za tym stać nieumiejętnie...
Boisz się zawieszenia sterownika, czy usterki wejść/wyjść? Bardziej obawiam się zawieszenia sterownika. Ale poruszyłeś bardzo ważną kwestię z tą usterką wejść/wyjść. Przy moich założeniach, jeśli uszkodzi się wyjście to watchdog będzie namiętnie resetował PLC. :-D Masz możliwość ingerencji w program? Tak. Co to za sterownik i jaka maszyna? Sterbox....
Robiłem z while i też nie działało. W moim projekcie ten plik main.c jest jedynym plikiem. I myslę, że tu może być problem. Dopiero teraz przeczytałem o plikach Cstartup, w których procek jest inicjalizowany. Czy to dlatego, że nie mam tych plików w projekcie, program może nie działać? PS. WDR? :) Chodzi o to, że jeśli mam funkcje while(1) to watchdog...
Mój ulubiony "kwiatek" :) Gosub Wybor Wybor: Potem mamy masę gosub'ów bez poprawnego wyjścia. Generalnie program źle napisany. Piszemy programy tak by subrtyny mogły się kończyć i nie zagnieżdżamy nadmiernie podprogramów. To nie watchdog tylko przepełnienie stosu. Chociaż i watchdog może w kilku przypadkach resetować, zwłaszcza tam gdzie jest WAIT...
Sprawdzałem na symulacji, program zawiesza się w znanym mi miejscu, z nie do końca znanego powodu, watchdog go resetuje i tak w kółko, jeszcze trochę przy nim posiedzę. Fuse bity prawidłowo ustawione.
Czyli wyłączenie WatchDoga jest na takim samym poziomie bezpieczeństwa jakie zapewnia sam WatchDog, bo zawsze można wyobrazić sobie takie działanie programu że WatchDoga jest kasowany a jednak program nie działa zgodnie z naszym zamiarem. Jak dla mnie prawdopodobieństwo tego, że program wpadnie w pętlę, w której będzie w sposób nieuprawniony resetował...
Zasilanie całości prawidłowe? Tzn pewnie i tak zasilasz z USB, ale możesz sprawdzić czy napięcia są prawidłowe za stabilizatorem etc. Exception swiadczy o problemie z wykonywaniem programu, jak powoduje to kod od WiFi to może spróbuj wyczyścić pamięć i wgrać nowy firmware. rst cause 2 to wygląda na wciśnięcie przycisku reset. Nie rób tyle delayów bo...
resetować watchdog watchdog bascom resetować programie victoria
karcher schemat elektryczny oporność głośnik ogrzewacze przepływowe
vaillant ustawienia pompa ciepla
Króciec ssący i podstawa filtra powietrza Stihl – nieszczelność po wymianie na używane części Sterownik do wózka inwalidzkiego Meyra 415 2013 w Polsce