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,...
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_...
Ponieważ nie pokazałeś programu na ATtiny i nie podajesz jak RPI resetuje timer watchdoga, stąd poniższe przypuszczenia. Zapewne RPI jednym z pinów jest połączony do ATtiny by resetować timer. Prawdopodobnie w programie ATtiny sprawdzasz stan tego pinu i odpowiednio reagujesz zerując timer watchdoga. Jeśli pin ten pozostawiasz jako wejście niepodłączony...
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ć...
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. 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...
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.
Watchdoga musisz kasować co chwilę Nie musi. Po resecie program ma wstać a w tym przypadku kontroler się zawiesza.
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).
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.
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...
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...
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...
A watchdog masz wyłączony?
Program piszę w kompilatorze BASCOM_AVR
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....
Co to ma niby znaczyć? Jak będzie sekwencja wyłączająca to chyba nic dziwnego że się wyłączy. No chyba że chodzi Ci o przypadkowe wykonanie tej sekwencji. Ale tak samo program może przypadkowo zawiesić się w pętli gdzie jest resetowany WatchDog i efekt będzie jeszcze gorszy. W pierwszym przypadku WatchDog zostanie po prostu wyłączony, ale program może...
Po prostu "kocham" taki zapis :| DDR &= 0b11111110; //1 przesunięte o 0 i zanegowane przesuwanie o 0 nie ma sensu, bo to nie jest przesuwanie, poza tym używanie przesuwania bitowego do ustawiania portów jest jednym z najbardziej nieczytelnych rozwiązań. W każdym razie: powinno działać. Co w takim razie może być źle: - wywołujesz przerwanie, które nigdzie...
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...
u mnie nie ma tego problemu z przekaźnikiem, program wczesniej działal na atmega8 i bylo ok
Powinieneś tak napisać program, aby taki reset nie był potrzebny a jeśli upierasz się przy tym to wykorzystaj WATCHDOGa. a jak wprowadzisz procek w tryb bootloadera (myślałem, że tego chce autor)? Jeśli chcesz resetować procka to faktycznie najłatwiej watchdogiem.
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ć...
Próbowałem na początku programu wstawić resetowanie watchdoga lub go wyłączać ale to nic nie daje. Czytałem że po restarcie watchdog w nowszych prockach nie jest wyłączany. Ale wyłączanie go nic nie daje. Program nie wstaje. No właśnie tylko jak ty go próbowałeś wyłączać ? ;) o to jest pytanie ... ;) Poczytaj sobie na dole tej strony LINK i zastosuj...
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.
Proponowałbym spróbować: #define F_CPU 12000000UL przesunąć przed #include <util/delay.h> , bo opóźnienia będą nieprawidłowe. Kompilator nie wyświetlał żadnych ostrzeżeń? Wyłączyć fusebit WDTON (hfuse=0xD9 zamiast 0xC9), bo on włącza watchdoga, a nigdzie go nie resetujesz. Przy ustawionych domyślnie bitach WDP2:WDP1:WDP0 na 0 mikrokontroler będzie...
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
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ę,...
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...
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?...
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
Może masz w konfiguracji uaktywnionego watchdog-a a nie pobudzasz go? Powodzenia
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.
Mam problem z zresetowaniem układu służącego do komunikacji radiowej -rfm12. W nocie katalogowej czytałem że da się to zrobić programowo poprzez wysłanie komendy FE00h. U mnie jednak to nie che działać. Potrzebuje tego do wybudzania układu po zadziałaniu w programie Watchdoga. Resetował ktoś może ten układ programowo?
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,...
Program się resetuje jak go jumpniesz w kosmos, symulator to potwierdza;)
Watch-doga włącza się po to aby urządzenie nie zwisło dokumentnie. W przerwaniu nie spełni on swojej funkcji zabezpieczenia. Przcież nie włączasz go tylko po to aby aby był włączony. W programie głównym mimo skomplikowania możesz wielokrotnie umieszczać resetowanie, w każdej pętli i po kłopocie. Wcale nie trzeba liczyć tych 16000 cykli. W ten sposób...
miałem ewidentny błąd w programie: funkcja wykonywała się dłużej niż 2sek i avr resetował się..
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...
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 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...
I nie wywołuj nigdzie maina. Jak zaczynałem programowanie to okazał się to "świetny" pomysł na "resetowanie" programu. Ale odkłada on sobie tego maina na stos wywołań i pewnym momencie stos ten może się skończyć wysypując program :) wtedy niestety już tylko ręczny reset pomaga. Jak już musisz (w co wątpię) resetować program, to użyj do tego watchdoga.
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...
WAIT 2. faktycznie - juz poprawione Mój ulubiony "kwiatek" :) Gosub Wybor Wybor: Potem mamy masę gosub'ów bez poprawnego wyjścia. gdybys konkretnie wyjasnil co jest nie tak. To nie watchdog tylko przepełnienie stosu. Chociaż i watchdog może w kilku przypadkach resetować, zwłaszcza tam gdzie jest Jak nie ma włączonego watchdoga program staje w miejscu...
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ć...
A odblokowałeś globalne przerwania, bo chyba coś takiego funkcjonuje w AVR. dopisane: Znalazłem: SEI Global Interrupt Enable dopisane: Przeoczyłem SEI jest w twoim programie. dopisane: Może masz WatchDoga włączonego i sie procek resetuje.
Chciałbym zrobić coś takiego: Odbieram przez USART odpowiedzi z telefonu i chcę wykryć np. brak lub wyłączony telefon. Sęk w tym, że w tym momencie korzystam z Watchdoga i kiedy jest brak odpowiedzi z telefonu to program zawisa na Input'cie i wtedy go watchdog resetuje. Chciałbym w jakiś sposób zliczać te resety by np. po dziesięciu próbować włączyć...
http://www.elektroda.pl/rtvforum/topic48... Cytat: Nie wiem czy to jeszcze aktualna uwaga, ale miałem ten sam problem, a po wczytaniu się w dokumentacje pisze tam że po włączeniu watchdoga i zresetowaniu układu - watchdog nie jest wyłączonay ( bit WDE w rejestrze WDTCSR nie jest zerowany ). Musisz jako pierwszą instrukcję w programie umieścić...
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,...
Da się watchdogiem zrestartować cały procesor. Inna opcja to tak napisany program, żeby się "zerował" w jakichś określonych warunkach.
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.
STM32L011D? Pamięć niestety niezgodna z Twoimi wymaganiami, bo aż 8KiB. Robiw lubi AVR. Praktycznie każdy nowy Tiny czy Mega nadaje się do tego co chce zrobić. Użycie watchdoga ma tą wadę, że resetuje uC. Jeśli jednak watchdog ma możliwość generowania przerwania, to problemu nie ma, trzeba w przerwaniu od watchdoga zresetować go i program będzie kontynuowany.
najprawdopodobniej problem pojawia się przy pętlach while. po prostu żądany stan nigdy nie występuje i dlatego program kręci się w tej pętli w nieskończoność. proponowałbym zrobić transmisję po i2c na przerwaniach. sam to przerabiałem więc wiem ile z tym babraniny ale opłaca się. przynajmniej masz zawsze pewność że program nie zwiśnie.. połowicznym...
xury - skoro już wykorzystujemy Bytematch=13 to nadal spokojnie można korzystać z Input tylko warto całość dobrze przemyśleć jak? polecam do przeanalizowania przykładowy kod pod koniec poniższego tematu http://www.elektroda.pl/rtvforum/topic14... tak jak tam widać - polecenie Input jest uruchamiane tylko wtedy gdy jesteśmy pewni dzięki Bytematch...
Niekontakty na szynach adresowej/danych dają podobny efekt jak uszkodzony wsad, a w takich sprzętach widywałem podobny problem. Uszkodzony ram też może dać ciekawy efekt. Możesz wyjąć eprom i zrobić serię kolejnych odczytów i zobaczyć czy się powtarzalnie czyta. Jeśli tak, to jesteś gdzie byłeś, jeśli nie to masz podejrzanego. Ram możesz sprawdzić epromiarką...
Fusebity rozumiem że zmieniłeś na zewnętrzny kwarc. Spróbuj jeszcze wyłączyć watchdoga w programie , może gdzieś się nie wyrabia program i się resetuje.
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.
To będziesz musiał się trochę napocić. Po pierwsze jak używasz watchdoga w programie, to musisz w jakiś sposób sprawdzić czy reset aby na pewno służył do upgrade'u. Możesz to zrobić np przez zapis do eepromu jakiejś wartości, odczyt i odczyt jej bootloaderze (pamiętaj żeby bootloader ją resetował). Dobry by był też mechanizm który by pozwolił na zrezygnowanie...
Moze ten Pies musi ugryzc procesor (zresetowac) jak zasnie (zawiesi sie) :-) ?? Właśnie o to chodzi, jak psu nie dasz co troche kiełbasy to zrobi reset procka (interpretacja panów Gałków). Cały trik polega na tym że instrukcje resetu watchdoga muszą być wykonywane co jakiś czas bo inaczej procek się będzie resetować. Jeśli procek będzie wykonywać z...
Z ciekawości, co się dzieje po takim skoku z rejestrem flag? Czy np. pozostawione tam z poprzedniego wykonania wartości nie wpłyną na dalsze działanie programu? Pytam, bo już na tym forum czytałem, że lepiej jest użyc watchdoga do resetowania, a konkretniej żeby go włączyć i czekać.
DZIĘKI BARDZO. W końcu działa :) Keil nie chciał wgrywać programu i debugować ponieważ pamięć była zabezpieczona, trzeba było ją odblokować i wszystko jest ok. Rzeczywiście uc resetował się przez układ watchdog. Najciekawsze jest to że był on od początku i nawet o tym nie wiedziałem. Jeszcze raz dziękuję bardzo ;) Pozdrawiam
Oj kontemplujecie ze wzmacniaczami operacyjnymi a to nie jest takie proste....Transmisja dzwieku przez swiatlowód jak i przez kabel coax w postaci cyfrowej ma dosyc pokombinowany skład. 1. Jesli karta nie odtwarza dzwieku, to przez łącze są "taktowane" same zera 2. Jesli karta gra to SIE układa sample jeden po drugim z ilustam kanalow i wysyla strumieniem....
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...
Jeżeli PIC resetuje się być może program nie pobudza na czas Watchdog-a. Jeśli chodzi o "krzaczki" na wyświetlaczu to czasami przyczyną mogą być zbyt długi e przewody pomiędzy wyświetlaczem a PIC-em. Pojemność kabelków powoduje, że krótkie impulsy nie zdążą uzyskać wymaganej wartości i są wyłączane przez procesor. Można skrócić kabelki albo wydłużyć...
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ł...
Wyobraźmy sobie sytuację, w której regulator pracuje w środowisku bogatym w promieniowanie elektromagnetyczne na częstotliwościach kilkaset MHz. Ten regulator to ma przy cyklotronie pracować czy jak? regulator sam jest źródłem zakłóceń i każde jego załączenie pompki powoduje też reset komputera. Nie czarujmy się. Gdyby każde załączenie pompki resetowało...
Kiedy chciałem przesunąć wskaźnik na adres obok poprzez dodanie do niego wartości 'i' to procesor resetuje się nie wchodząc nawet do tej pętli . Po włączeniu zasilania jest reset, reset, reset , reset........ Ja się tylko zastanawiam, jak to jest możliwe, że się resetuje przed wejściem do tej pętli skoro zakładamy, że błąd jest w pętli. Cztery pytania...
Domyślnie WGD jest wyłączony. Czy przypadkiem właśnie go nie włączasz? Wtedy , jeśli w kodzie jest nieobsługiwany, po resecie program działa najkrótszy możliwy czas (sprawdź w nocie jaki). Może to wyglądać, ze dioda szybko miga a tak naprawdę WDG resetuje uC. W debugerze widziałbyś czy nie jest wykonywany reset. W Arduino musisz ratować się półśrodkami,...
Reset podciągnąć do zasilania rezystorem 10kΩ i odsprzęgnąć zasilanie kondensatorami 100µF (elektrolit) i 100nF(zwykły, może być ceramiczny). Najprawdopodobnie układ się resetuje z jakiegoś powodu. Może Watchdog jest włączony (Zaprogramowany fusebit WDTON ) ?
(at)mzielin może i masz racje z tym watchdogiem (szczerze myślałem że się bez niego obejdzie :) ), jednak chyba nie umiem go prawidłowo zaprogramować, a mianowicie: void reset(void) { asm("cli"); //na wszelki wypadek asm("wdr"); //reset flagi WDRF w rejestrze MCUSR //nie ustawiam bitów WDP0..3, ponieważ...
Mam malutki problemik z jednym z moich układów otóż watchdog tak jakby nie zawsze resetował procka i pomimo że jest włączony, program się po prostu zatrzymuje. W jednym z tematów widziałem że komus pomogła "bezpośrednia" konfiguracja tj. ustawianie bitów. Chciałbym, wiedziec jak ustawic watchdoga na 2 s, uruchomic, zatrzymać i zresetować. Próbowałem...
Myślę, że błąd nie leży w programie tylko w schemacie elektrycznym i jego implementacji. Pokaż schemat otoczenia MCU i rysunek płytki. Myślę, że coś jest poważnie nie tak z zasilaniem.
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....
Nie mogę Musi być sprzętowo bo układ jest zbudowany z kilku procków które w czasie startu przekazują sobie dane i z tego powodu trzeba restartować wszystko jednocześnie. To czego szukasz to Zewnętrzny Watchdog. Pewno uda się go zrobić na 555, ale można też kupic gotową kostkę do tego przeznaczoną. Możesz użyć wewnętrznego WatchDoga, a na początku programu...
Sprawdziłem z kwarcami 4,6,20Mhz na każdym działa inaczej ale nie stabilnie. LVP Off. Może procek jest uszkodzony, nie mam drugiego żeby sprawdzić. Może i jest uszkodzony, ale ja bym obstawiał że to chyba szybciej wina błędnego montażu. Opukaj procesor, obstukaj, zrób program żeby dioda migała szybciej. Sprawdź reset, zasilanie, może BOD resetuje układ,...
Sprzwdz czy telefon wyłacza sie bez karty...WatchDog działa przy wlozonej karcieSIM, zazwyczaj telefon resetuje sie po 3,5 lub 15 min.Mozesz to sprawdzic programem MX-key przy odczycie info z telefonu pojawi Ci sie WD Enabled.
Może WatchDoG chodzi i go resetuje. A jeszcze pokaż program. Możesz mieć zwarcie od jednej z sąsiednich linii. Jak na nich jest przebieg o wypełnieniu powiedzmy 99% to woltomierz pokaże VCC, ale przez ten 1% będzie GND i to wystarczy do zresetowania procesora. Albo inaczej – przebiegu tam nie ma bo proces się resetuje. Tuż po uruchomieniu procesor...
1. czemu na czystym procku diody mialyby migac? 2. nie znam tego kompilatora, wiec nie wiem na pewno ale zazwyczaj pojedynczy pin portu w C sie deklaruje #define bluled P2^0, ale jak napisalem w tym akurat kompilatorze moze to byc inaczej. 3. Program teoretycznie powinien Ci od razu zapalic te diode bluled i tak juz by musialo zostac, jezeli miga to...
Takie zabezpiecznie programu nie daje wcale większej pewności, niż przmyślany, przesymulowany i dobrze napisany i przetestowany program w uC bez użycia watchdoga. Urządzenie bez watchdoga w umownych 99 przypadkach na 100 po zakłóceniu procesora już nie wróci do pracy. Urządzenie z watchdogiem w 99 przypadkach na 100 się zresetuje i przynajmniej spróbuje...
... Wpisałem bezpośrednio de rejestru WDTCR wartości bitów podane w dataschet a efektu brak, wpuszczam program w pustą pętlę i nie resetuje się procek... A "pochwalisz" się tymi wpisami ;)? Po czym rozpoznajesz że procesor się resetuje?
Ratujcie!!! Męczę się z AD7730 już od miesięcy, tak się uparłem, że nie robie nic innego tylko walczę z tym i nic, aż mi się odechciewa całej elektroniki. Wykonałem płytkę pod AD7730 i łącze go z AVR M8, program pisze w Bascom (bo jest prosty) i wygląda on tak: $regfile = "m8def.dat" $crystal = 8000000 Config Lcd = 20 * 4 Config Lcdpin = Pin , Db4 =...
W tym mikrokontrolerze (tak jak piszesz) możesz ustawić Watchdog tak, że nie resetuje mikrokontrolera, tylko zgłasza przerwanie, które budzi mikrokontroler. Tak ustawiony mikrokontroler po wykonaniu przerwania Watchdoga wraca do miejsca, w którym został uśpiony i wykonuje dalej program, czyli np. pętlę główną. Aby ponownie wszedł w Power Down musisz...
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...
Nie wiem jak to jest konkretnie w AT90xxx a zwłaszcza a Bascomie, ale mogę Ci powiedzieć na czym polega sama idea. Jeżeli to coś to ma być pilot to wystarczy, że od czasu do czasu sprawdzi stan przycisków i wyśle gdzieś jakiś rozkaz. Oznacza to, że w pozostałym czasie urządzenie jest bezrobotne i może iść spać. W większości nowoczesnych procków jest...
Dzieje się coś dziwnego z mikrokontrolerem i już sam nie wiem co ja z tego wnioskuję, na pewno wnioskuję, że nie działa tak jak powinien, prosty program, który ma inkrementować zmienną nie zlicza do końca, tylko wcześniej się resetuje, jak dodałem te kilka linijek z watchdogiem to problem się połowicznie rozwiązuje, ale nie uważam tego za rozwiązanie,...
Nieznam się na mikroprocesorach, ale one też robią błędy, wypadają z programów, zawieszają się... Wtedy trzeba reset :D Niektóre układy wyposażone są w tzw. Watchdog (jeśli coś nie popier...), który wykrywa zawieszenie się procka i sam (osobiście) go resetuje. Pozdrawiam.
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...
złamana ośka w silniczku . Otwierasz wymieniasz i działa dremel wiertełko i kawałek druty i 15 minut Może kolega ma powalającą wiedzę ale z myśleniem nie za bardzo. Jak mechaniczne uszkodzenie silnika może mieć wpływ na działanie drugiego silnika oraz wyświetlacza? Ta ysterka jest zawsze taka sama Życie było by zbyt proste gdyby to było prawdą. Na...
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...
Tak na szybko, bo wychodzę do pracy. Na przykładzie DS18B20. Zakładam, że komunikację z czujnikiem masz opanowaną, więc odczytałeś z czujnika dane i masz je w dziewięciobajtowej tablicy - u mnie to Sc(9). Do obliczania odebranej temperatury korzystam z funkcji, którą deklaruję tak: Declare Function Decigrades(byval Sc(9) As Byte) As...
Podoba mi się autonomiczność, jednak problem z zawieszaniem przy logowaniu faktycznie może irytować. A czy ESP nie ma watchdoga? Mógłbyś zrobić mniej więcej tak: 1. start urządzenia 2. uśpienie na 5 min. 3. wybudzenie i logowanie 4a. jeżeli logowanie się udało to aktualizujemy wyniki pomiarów na serwerze 4b. jeżeli logowanie nie powiodło się i program...
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...
Tak jak napisałeś powinno być dobrze. Jeszcze jedna uwaga. Poprzednio miałeś ustawione bity na Interrupt and System Reset Mode. To może obecnie skomplikować ci możliwość przestawienia nastaw WatchDoga.Jeśli po wpisaniu tych wartości do rejestru nadal działanie WatchDoga nie będzie zgodne z oczekiwaniami to dzieje się tak dlatego iż w sterowaniu WatchDogiem...
Teraz znowu natknąłem się na inny problem. Mianowicie procesor cały czas mi się jakby resetował. Watchdoga zeruję chodź to nie ma żadnego znaczenia, bo w programie nie ma pętli.[syntax=c] int send_zero(void){ ClrWdt(); LATA = 0x01; LATA = 0x00; } [/syntax] Program powinien się wykonać raz i tyle. On ustawi jedynke potem zero odczeka jakies 2us i znowu....
Skoro sam stworzyłeś takie urządzenie to jakąś tam wiedzę masz. Poczytaj jeszcze ogólnie o zasadach EMC, szczególnie w kontekście poprawnego rozmieszczania kondensatorów przy układach scalonych i prowadzenia ścieżek pod kątem unikania pętli. Przy uC nie ma kondensatora, co gorsze ścieżki zasilania nie idą obok siebie tylko w znacznej odległości. Testowane...
Tylko że timer zatnie sie razem z mikrokontrolerem. Na dobrą sprawę to mógłbym całkowicie wyłączać watchdoga przy transmisji przez Ethernet. Ale lepszym wyjściem jest już wejście w pętlę resetowania watchdoga i sprawdzania czy nadchodzi odpowiedź. Tylko że w takim wypadku program się zapętli gdy zostanie zerwane połączenie Ethernet. Trzeba by dodać...
Witam. W internecie w różnego rodzaju źródłach informacji na temat watchdoga popularny jest jeden z przykładów: [syntax=c] wdt_enable(WDTO_1S) //przykladowo resetowanie uC po 1 s. cli(); while(1); [/syntax] Moje pytanie: Po co wyłączać przerwania po uruchomieniu watchdoga? Nie rozumiem tego działania. Probowałem zastosować powyższy kod w swoim przykładowym...
Po zakomentowaniu funkcji ekrany() program zawsze działa dobrze. Dopisanie w głównej pętli wyświetlania jakiś kontrolnych znaków też jest ok. Błąd jest gdzieś w funkcji ekrany(), ale ja go nie widzę. Co ciekawe program wisi na tej funkcji w taki sposób że watchdog go nie resetuje?! Zdarzyło mi się kilka razy że po resecie bez wyłączenia zasilania program...
Juz wiem HURRAAAA!!!!, problem tkwil w watchdogu, byl wlączony i resetował mi procka co chwilę, stąd to mruganie, po wyłączeniu go wszystko zaczęło działać. :D
Fuses (hex): D8 23 Jeśli D8 to high fuse to masz RESET VECTOR ustawiony na inny obszar pamięci niż standardowy, a używany zwykle z bootloaderem. Tak ma być? Jeśli nie, to ustaw domyślne czyli D9 Niby BOD masz włączony... a działa chociaż? Atmega przy napięciu np 3V5 powinna być w stanie reset. Dla mnie ta atmega jest niepewna, bo masz watchdog który...
resetować watchdog watchdog bascom resetować programie victoria
mikropęknięcie płyta główny volvo silnika samsung st1000lm024 zasilanie
Sterowniki do Panasonic CF-54 mk2 - skąd pobrać? Pobieranie BIOS dla HP Pavilion 10-n140nw