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_...
Działaj w trybie system, a nie user, i po problemie. 4\/3!!
Wprowadziłem poprawkę dla jednego głównego źródła restartów (odczyt temperatury) [url=https://github.com/openshwprojects/... tutaj .
To działa: wdr Wdtcsr = &H1B Wdtcsr = &H0B O co w tym chodzi? Tak się robi to co Ty chcesz w asemblerze.
jeżeli w service menu sie resetuje to watchdog nie pomoże. Na początek zasilacz do przemierzenia.
Tylko najpierw sprawdź jaka jest maksymalna wartość rejestru IWDG->RLR (Reload register) i czy aby na pewno wartość 10000 się tam mieści.
Funkcje wait (waitms) w BASCOM nie blokują i nie resetują watchdoga. Wyłączanie watchdoga w czasie odczekania może prowadzić do sytuacji, gdy wchodzące w tym czasie zakłócenie zablokuje nam na stałe procesor. Dlatego lepiej wstawić pętelkę z resetowaniem watchdoga i zostawić watchdog włączony: for i=1 to 3 reset watdog wait 1 next
Domyślnie będą wyzerowane. Dodając $NORAMCLEAR wyzerowane nie będą. Wybieraj...
IWDG ma timeout dopiero po 1,6s, a jest resetowany w tasku FreeRTOSa, który pstryka co 1ms, oraz w innym, który pstryka co 1s lub częściej, jeśli ma coś w kolejce... Jeśli używasz w ten sposób watchdoga, to w sumie możesz go nie używać wcale. Nie zabezpieczy Cię to wcale przed tym, że zawiesi się jakikolwiek inny task, a nawet jeśli zawiesi się jeden...
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,...
Witam. Spróbuj wykorzystać watchdoga w trybie przerwania nie resetu. W Main'ie błyskasz diodą pierwszy raz, ustawiasz pieska w tryb przerwania, włączasz watchdoga na 1S i usypiasz procesor i następie pętla bez końca i z pustym ciałem. W przerwaniu mrugasz diodą, resetujesz watchdoga i idziesz dalej spać. Sumarycznie będziesz nawet pobierał mniejszy...
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...
lukasb9 watchdog wlasnie resetuje telefon (nie jest to jakis specjalny wymysl nokii w wiekszosci mikrokontrolerow taka jednostka sie znajduje, ale sluzy z reguly do zabezpieczenia uC przed zawieszeniem).
[syntax=c] for (struct do_fora brzydko = {.a = 0} ; brzydko.a <= 15; brzydko.a++){ wdt_reset(); // resetuj watchdog wr_byte(pgm_read_byte(&const_lcd[brz... brzydko.a++; brzydko.micro_buf = (pgm_read_byte(&const_lcd[brzydko.a]... for(uint8_t b = 0; b < brzydko.micro_buf; b++){ _delay_us(40); // <----- ten czas u ciebie jest za...
wygląda na to, że powodem jest resetowanie watchdoga --- dlaczego takie urządzenie miałoby się zawieszać wiele razy dziennie?
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ć...
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...
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.
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.
Pachnie jak kondensatory, szczególnie na zasilaniu scalaka od przetwornicy, zakładając że to fly-back. Lub przeciążenie (wewnętrzne). Ja bym zaczął od pomiaru kondków i jak się nie znajdzie to poodłączał co się da z obciążeń, ale nie wiem co ten model ma w środku. No i kolejna opcja jakiś watchdog w procesorze.
Ja miałem to samo ale okazało się ze atmega przez tranzystor sterowała mi cewka przekaźnika. Cewka przekaźnika nie była zabezpieczona dioda (dioda była uszkodzona) dopiero po wymianie diody wszystko wróciło do normy.
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...
Też podejrzewam takie przyczyny. Pytanie tylko - dlaczego watchdog nie działa?
Watchdoga musisz kasować co chwilę Nie musi. Po resecie program ma wstać a w tym przypadku kontroler się zawiesza.
Watchdog?
może to watchdog resetuje procka?
A resetujesz watchdoga?
Jaki to model procka, bo to że watchdog resetuje ram nie jest normalnym objawem w systemach mikroprocesorowych.
Ja myśle że musiałbyś zrobić coś takiego żeby wykrywać reset komputera i w momencie resetu blokować na czas nieokreślony watchdog. Po uruchomieniu komputeraz musiałbyś go np raz resetować co by spowodowało "normalną" prace watchdoga. PS do czego zamierzasz zastosować ten układ watchdoga? Jaki komp i jaki OS ? PS2 mam jeszcze jeden niezły pomysł, można...
Może to być Watchdog, który w PICach domyślnie jest włączony. Ty go nie resetujesz, za to on resetuje PICa. Wyłącz watchdog używając fusebitów.
Raz uruchomionego watchdoga nie da się zatrzymać :) Dla trybów uśpienia trzeba użyć WWDG i jest tam taka opcja jak wywołanie przerwania od WWDG na krótki czas przed resetem przez niego systemu. W przerwaniu resetujesz watchdoga i tyle.
No i dobrze - to wtedy watchdog zrestaruje procka. W czym problem. Jak zrestartuje to wiesz ze zdechlo. Trudno mi uwierzyć ze nie masz zadnego przerwania timera gdzie mógłbys wrzucic operacje ++ na jakims liczniku i resetowanie watchdoga.
Kod będzie dział inaczej niż z "for". Problemem jest, jak wyżej napisałem blokowanie mikrokontrolera na czas jazdy silnikiem i jego resetowanie watchdogiem. AccelStepper powinien działać. Możesz też przenieść obsługę silnika do przerwania timera.
Mam nadzieję, że resetowanie WD nie jest w jakimś przerwaniu? Dobrze napisany program powinien resetować WD tylko w pętli głównej programu. Czasochłonne operacje należy rozbić na mniejsze fragmenty i zbudować maszynę stanu. Oczywiście łatwiej powiedzieć niż zrobić. Ale im mniej instrukcji resetujących WD tym lepiej, bo łatwiej namierzyć problem. No...
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...
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).
A nie masz tam czasem włączonego jakiegoś Watchdoga czy czegoś takiego co Ci resetuje procka? :)
wdt_reset(); MCUSR &= ~_BV(WDRF); wdt_disable(); Wielkie dzięki, działa. wdt_reset(); na początku nie potrzebny , z resztą nota nie wspomina. Nie widzę zastosowania z resetowania licznika watchdog w tym miejscu. Dzięki za poradę odnośnie jak wykonać funkcje przed main. W tym przypadku jej nie użyłem, ale będę miał wiedzę na zaś.
Może musisz przenieść resetowanie watchdoga w inne miejsce. Może zawiesza Ci się w taki sposób że ta pętla jest dalej wykonywana.
Niestety ale nie pomogło poza tym watchdog resetował by go w równych odstępach czasu a nie przy wyjściu z funkcji.
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...
MCU w tym modelu to SOC SC92F8463BX, specyfikacja w załączeniu. Wynika z niej że MCU ma pin 6 RST i aż cztery tryby resetowania, PDF strona 31, włącznie z Watchdog (WDT) reset.
A nie lepiej jakiś router z linux-em na pokładzie gdzie watchdog resetuje router jak brak dostępu do neta ? Albo jakiś mikrotik.
1. TJA1040 sam nie może żadnych ramek wysłać, gdyby mógł, wysyłał by i w aucie, i na stole (dla ścisłości, nie "reset watchdoga" tylko zawieszenie MCU, wtedy watchdog resetuje MCU) 2. gdyby TJA1040 odbierał po sieci info nakazujące reset IPC, działo by się to na każdym podłączonym liczniku, nie tylko na tym jednym 3. TJA1040 jeżeli robi coś, czego konstruktor...
Jeszcze jedna kwestia, jeśli zamiast ustawiać WDE i WDIE ustawimy tylko WDIE, uC powinien według autora generować tylko przerwanie bez resetu. [syntax=c]WDTCSR = _BV(WDCE) | _BV(WDE); WDTCSR = _BV(WDIE); // tryb tylko przerwanie[/syntax] Podczas gdy dioda dalej miga co sekundę tak jakby uC był i tak resetowany.
Dla konfiguracji resetowania się watchDoga po 4 sekundach : Mcusr = &B00000000 'Zerowanie rejestru aby wyłączyć bit 3 czyli WDRF. 'Dokonywanie jakichkolwiek zmian w WatchDogu musi dokonywać się w ściśle określonej sekwencji wpisów do rejestru 'WDTCSR. Jako pierwszy krok trzeba zrobić wpisanie wartości 1 do bitu numer 4 nazywanego WDCE.Pozostałe bity...
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,...
Witam. Zadaniem urządzenia jest głównie odpowiadanie na słowa przychodzące na UART, co oznacza, że program większość czasu "wisi" na poleceniu input. Ponieważ urządzenie ma pracować 24h na dobę, i być maksymalnie niezawodne, oczywistym wydaje się użycie watchdoga. Czy w tej sytuacji (program "wiszący" na input, nie mający możliwości zresetowania watchdoga)...
Następne pytania: Bezpieczniki będą w oprawkach na obudowie czy wewnątrz? Przyciski można by było zgrupować razem ale w czasie programowania nie mógłbyś naciskać ESC bo to by zakłóciło programowanie, napisz jak chcesz? Układ watchdog jest w uP sprzętowy i po określonym czasie resetuje uP, nic nie trzeba robić na zewnątrz.
Witam, Oczywiście, że możesz wybudzać procesor z trybu Power-down bez resetowania procesora, Watchdog wywołuje przerwanie "od siebie" i procesor jest już aktywny. A to czy podczas przerwania od Watchdoga procesor jest resetowany czy też nie to muszisz ustawić w odpowiednim rejestrze z Watchdoga (WDTCR) tam też ustawisz czas po jakim będzie generowane...
Tak jest !!! tak jak napisałeś ! Z praktyki uzywałem tylko właczenia, ( nie wykorzystuję trybu idle , więc nie musiałęm wyłączyć ), A jeszcze jedno nie polecam resetować watchdoga w obsłudze przerwania timera -> program może być w " malinach" a przerwania będą się wykonywac i resetować watchdoga, ja umieszczam je patrząc jak wykonuje się prog. Jeśli...
Ten wynalazek robi dwie rzeczy: - monitoruje napięcie zasilające procesor, gdy spadnie poniżej określonej wartości - trzyma procesor w resecie. To gwarantuje prawidłowy PowerOnReset procesora. W przeciwieństwie do układów RC. Glitche na zasilaniu są także wykrywane i procesor nie zostaje po nich w stanie "jakimś nieprzewidzianym", tylko dostaje w łeb...
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,...
Szkoda że z takiego fajnego tematu zrobił się taki bełkot. Wyraziłem się jasno ja nie chcę ratować programu Watchdogiem nie chcę również oszczędzać przy jego pomocy na zabezpieczeniach samego procka itp. Pewnie się ze mną zgodzicie Watchdog służy do zabezpieczania procka przed błędami i wypadkami, których nie da wyeliminować na drodze programowej i...
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.
Poza tym sprzętowy I2C potrafi uwiesić procesor 'na amen':) tak że nawet watchdog nie potrafi zresetować procesora Możesz, proszę rozwinąć myśl, bo trudno mi sobie to wyobrazić. Zawsze myślałem, że watchdog resetuje rdzeń jak się przepełni i nie da się tak zawiesić STM32 żeby watchdog nie był w stanie zresetować procka, nawet, a zwłaszcza jak ten utknie...
Nie ufam zewnętrznym watchdog-om, które resetowane są przez pin mikrokontrolera, ale może to przesadne podejście do tematu :)
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.
... 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?
Witam, prawdopodobnie błąd jest w inicjalizacji watchdog. Wykorzystujesz do tego dwie funkcje, init_WDT() oraz init_watch_dog(). Pierwsza init_WDT: https://obrazki.elektroda.pl/2044113200_... ale już kolejna linijka [syntax=c]WDTCSR=_BV(WDIE);[/syntax] kolejne nadpisanie rejestru WDTCSR, w tym momencie ponieważ mieścisz się w czterech...
GDB mam wersję do Indigo (7.0.0.201109151620) - czytałem tego posta do którego link podałeś i mam wszystko tak samo ustawione. Mam standard zamiast DSF. Problem jest tego typu, że ja nic z debugiem zrobić nie mogę.. KURKA WODNA - WIEM ;) Toć ja miałem zabezpieczony układ przed odczytem.. Ściągnąłem zabezpieczenie przez RS'a i śmiga chyba wszystko prawidłowo.....
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...
Po prostu zostaw końcówkę RESET wiszącą (niepodłączoną, avr sam się poprawnie resetuje), ustaw zegar watchdog i nie zapomnij go kasować (wbrew pozorom ma wpływ), jak nie pomoże to zastosuj dodatkowe filtry zasilania: dodaj cewkę i porządny kondensator na wejściu, dodaj 100n przy przekaźnikach,
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....
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...
Możesz podłączyć obojętnie jaki zewnętrzny generator do XTAL1 (W nocie jest podany wymagany kształt przebiegu), teoretycznie o częstotliwości 0 - 24MHz. 0Hz sprawdziłem, jak zwierałem I2C, żeby sprawdzić procedury awaryjne, tylko mi się pomyliły strony :-) i zwierałem kwarc, procesor ładnie się zatrzymywał, a potem ruszał dalej jakby nigdy nic (jeżeli...
Żaden licznik nie zostanie przepełniony żeby wymagać wyzerowania, to nie tak ;) ... zerowanie Watchdoga robi się tylko po to aby nie dopuścić do jego przepełnienia i uruchomienia resetu lub przerwania, które właśnie się odbywa przy jego przepełnieniu. Więc pewnie pomyliła ci się funkcjonalność tego resetowania watchdoga. Dodano po 5 Zobacz sobie np...
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....
Moim zdaniem: 1. w ogóle nie potrzebujesz trybu CTC. Normal w zupełności wystarczy, ale to szczegół. 2. Watchdog resetuje Ci procka. Od momentu uruchomienia do 1 resetu masz "waitms" na co najmniej 1100ms a ustawiłeś go na 1024ms. Ale ja nie znam/nie używam BASCOMa więc moje uwagi sam zweryfikuj na poprawność.
Konfigurujesz WD na 256 i startujesz. Teraz jeśli chcesz by WD wybudził procesor, ale go nie zresetował to MUSISZ włączyć przerwanie od WD. W obsłudze przerwania nie musisz nic robić. Procek wroci w miejsce gdzie użyłeś SLEEP. Teraz jeśli możesz przez tę sekundę kiedy pracuje resetować WD co 200ms to nic nie trzeba robić, ale jesli coś tam dłuzej trwa...
No to już jest dziwne. Spróbuj wywalić te funkcję resetujące system (zakomentuj komendę Config Watchdog i wszystkie komendy Start Watchdog). Może system Ci się resetuje zamoczynnie po jakims czasie.
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...
WatchDog jest układem, który wykrywa "zawieszenie" się procesora i automatycznie go resetuje. Procesor musi podawać impulsy na układ WatchDog - kasować go. Jeśli procesor się "zawiesi" (bark impulsów) układ WatchDog zostanie przepełniony i zresetuje procesor.
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.
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.
A moze wiesza sie sama obsługa I2C lub jakes przerwanie, a WATCHDOG jest i tak resetowany w pętli głównej więc nie dochodzi do resetu procesora.
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...
Mam dziwny problem z debugowaniem programu (assembler) na PIC16F876A w srodowisku MPLab 7.60. Otoz program sie kompiluje prawidlowo, linker nie wyrzuca bledaw a co wiecej - generowany hex jest poprawny i dziala w rzeczywistym urzadzeniu poprawnie. Jednakze w symulacji MPLabowskiej program czesto wraca do adresu 0x0000, tak jakby byl resetowany. Watchdog...
Witam, posiadam DVR Hikvision DS-7216HQHI-F2/N/ na platformie K57. Mój rejestrator Hik ma tę samą platformę i hardware co niektóre modele, które dostały update software do DVR v4 (K57), ale Hikvision z jakiegoś powodu pozostawił model DS-7216HQHI-F2/N na DVR v3 ze starym interfejsem. Jak spróbuję zainstalować soft v4 z innego modelu o tej samej platformie...
wylacz watchdoga i naucz sie czytac dokumentacje. bascom tego za ciebie nie zrobi. 0x41 0x56 0x45!!
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?...
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...
To nie w bascomie tkwi problem, tylko w kompilatorze C, według symulatora na wyjściu powinien być stan wysoki, czyli 5V, wygląda to tak jakby port był w stanie wysokiej impedancji. Sprawdź częstotliwość na tym pinie, bo podejżewam że procesor nie wchodzi prawidłowo w pętle i się resetuje co chwile, najlepiej byłoby to zrobić na oscyloskopie, ale częstotliwościomierz...
reset powodowany jest blokada procesora "watchdog" resetuje procesor przy braku aktywnosci w zaleznosci jak szybko robi reset po starcie to powinienes przegrzac hotairem. jezeli od razu po nacisnieciu power_a ---> przegrzac czesc procesorowa jezeli po 2-3 sek ----> czesc radiowa najlepiej podlaczyc kabel com ( t28 serial ) i pod terminalem sprawdzic...
Kolego WatchDog resetuje uP i raczej nie policzysz 'resetów'. Jak już to w pętli oczekującej wstaw dodatkowy warunek po przekroczeniu, którego program 'pójdzie' dalej. Np: i = 0; while((i<1000) && (!dzwonek)) i++; //dalsza część np. if(i == 1000) { //nie było dzwonka - ale uwaga co w momencie gdy dzwonek...
Witam, z wlasnego doswiadczenia niestety musze Cie troche zalamac... Ta usterka pojawia sie w tych fonach z reguly po upadku... Na 5 sztuk, ktore mialem z tymi usterkami wszystkie 5 mialo uszkodzone mechanicznie plyty glowne... Brakuje jakiegos sygnalu i watchdog resetuje proca... Mam nadzieje, ze w Twoim przypadku cosik sie da jeszcze zrobic z fonem......
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...
To przy budzeniu przerwaniem przy pierwszym sygnale przerwaniu wykona się przerwanie i w nim kod? Tak. Warto zapoznać się z: https://www.nongnu.org/avr-libc/user-man... znacie jakieś sposoby na resetowanie mikrokontrolera oprócz wykorzystania sprzętowego. Skok pod adres 0 nie resetuje rejestrów procesora (np. DDRx) i trzeba to...
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,...
Witam Usypiam mikrokontroler w pewnym newralgicznym miejscu programu: Dodano po 2 Czyżby jedyną opcją było wybudzanie mikrokontrolera co np. mniej niż te 13 sekund i resetowanie watchdoga? Dodano po 1 Wygląda na to, że jedyny sposób to uruchomienie timera o nazwie LPTIM, który działa gdy procesor jest uśpiony. Więcej informacji o nim w nocie AN4865...
Cykliczne resetowanie to jakby jakiś watchdog był włączony, ale chyba nie włączałeś? A może masz tam gdzieś jakie magic numbers w konfiguracji rejestrów? Moja rada ostateczna - podmień pliki, które dałem w załączniki. Jest tam skrypt linkera, plik asemblerowy startup_stm32f410rbtx.s oraz jeden system_stm32f4xx.c. MAsz z pewnością u siebie pliki o podobnych...
Urządzenia tego typu ogólnie nazywają się watchdog. Jest tego mnóstwo. Na przykład: http://sprzet-sieciowy.pl/watchdog/7692-...
Zewnętrzny WD często oferuje znacznie szerszy zakres wartości limitów czasu. Ma to znaczenie w szczególności w aplikacjach zasilanych bateryjnie. Zewnętrzne WD mogą również resetować wybrane urządzenia peryferyjne, niekoniecznie zawsze MCU, w zależności od zaistniałych czynników zewnętrznych. Nie można założyć na 100%, że zegar wewnętrznego WD jest...
A watchdog masz wyłączony?
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ć...
W sumie powiem inaczej. Zostawmy to bo zmierzam do czego innego. Wysyłam do urządzenia nastawy dwiema żyłami dane i clk odbywa to się cyklicznie w odstępię ok 3 minut i watchdog miałby dodatkowe zadanie resetować encoder z chwilą zakończenia transmisji z komputera PC. Ale to już moja brocha jak ja to zrobię bo nie chcę mieszać Ci w głowie.
Bigfoot: tak jak napisał _Matik_ - watchdog resetuje transmicje w 'połowie'.. bezpośrednio po restarcie procka ten zaś zaczyna wysyłać dane.. w wysyłanych danych niema odstępu większego niż 11 bitów ciszy i komputer niemoże odnaleźć który bit jest bitem startu (to powoduje pojawianie sie różnych znaczków). jeśli dodasz 1ms na początku kodu, to po resecie...
resetu uC ? jest watchdog który swietnie się sprawdza gdy trzeba resetować procka.
watchdog bascom resetować resetować programie watchdog mikroprocesor watchdog
linux książek rozlacza internet delta6 radio
Pralka automatycznie przechodzi w tryb pauzy - przyczyny i rozwiązania Husqvarna 232R – wypinająca się linka gazu, przyczyny i naprawa manetki