A czy to też nie działa : Config Watchdog = 16 Start Watchdog Disable Interrupts być może Bascom odblokowuje przerwania w starcie watchdoga?
Zbudowałem ostatnio kilka urządzeń z wykorzystaniem pinu WR wyświetlacza. Ta biblioteka nie jest szczęśliwa. Jest dużo nowsza i w dodatku z możliwością użycia dowolnych pinów biblioteka. Jest włączana automatycznie jeśli jako ostatni parametr/pin napiszesz WR = PIND.3 (przykład) Użyta zostanie biblioteka "lcd4busy_anypin" Przykład z moich kodów: Zapomniałem...
Bierzesz najprostszy i najtańszy mikrokontroler, który ma watchdog oraz timer umożliwiający odliczenie czasu, który oczkujesz i wykonujesz watchdog we własnym zakresie i dowolną funkcjonalnością. Watchdog w tym mikrokontrolerze także jest potrzebny, by Twój watchdog był odporny na problemy. :)
Tak. Tyle że ustawiana jest jeszcze flaga która pozwala potem zobaczyć że to WatchDog spowodował reset.
wymyśliłem z konieczności drugi układ na ARDUINO który będzie kontrolował jedną nóżkę ARDUINO ze Sterownika i jak przestanie podawać impulsy to znaczy że się zawiesiło i wtedy ten układ dodatkowy przerwie napięcie zasilania na kilka sekund i zresetuje cały układ. Myślę że to rozwiązanie choć nie profesjonalne to spełni swoją rolę bo niema nigdy pewności...
Watchdog?
Jaka jest przyczyna, że nie można bezpośrednio korzystać z wbudowanego w AVR PWM-a ? Można w tym celu dać np ATtiny10 do samego PWM. Na zwiechy jest watchdog, na spadek napięcia - BOD... Co do transoptorów do MOSFET - TLP250
Można coś kombinować, ale nigdy nie będzie to watchdog o 100% pewności. Niestety nawet AT89S53 z włączanym w 2 instrukcji po resecie watchdogiem potrafi się zawiesić :!:. Jedyny pewny sposób to zewnętrzny watchdog lub procesor z watchdogiem uruchomionym na stałe (np. ATMEGA...)
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...
A watchdog masz wyłączony?
oraz "the frequency depends on supply voltage, temperature and batch variations" WD nie służy do precyzyjnego odmierzania czasu. Zobacz w nocie jak zależy od podanych parametrów, a okaże się, że to raczej nie ma większego znaczenia. Zewnętrzny WD często oferuje znacznie szerszy zakres wartości limitów czasu. Ma to znaczenie w szczególności w aplikacjach...
Po co ta kombinacja z INT0? Skoro watchdog wybudza Ci procesor?
Po kolejnych oględzinach sprawdziłem, że ów "IS" znajduje się na przednim panelu i prawdopodobnie jest to jakiś watchdog na ATmega. Jakby ktoś kiedyś potrzebował, to dołączam instrukcję serwisową.
podciagnoles cos do pinu reset?
A jest 1.11.9.3 Dla attiny na pewno lepsza. Może dla atmega też.
W wielu nowszych AVRach jeśli watchdog był źródłem resetu to zostaje włączony automatycznie, bo bit WDE jest ustawiany tak jak WDF z rejestru MCUSR. Pozostałe bity rejestru WDTCSR są wyzerowane, a to oznacza, że ustawiony jest minimalny czas. Wyłączenie watchdoga należy wykonać przed funkcją main. Służą do tego sekcje .initx. Ponieważ będzie to funkcja...
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...
Watchdog.
Wykorzystuję plik avr/wdt.h do obsługi watchdoga w ATmega. Jednak zdefiniowane stałe są za krótke ponieważ łączę się poprzez HTTP z bazą MySQL. A odpowiedź może potrwać nawet minutę. Czy jest jakiś łatwy sposób na wybranie dłuższego czasu reakcji watchdoga?
A po co chcesz zbudować takie dziwactwo? Ptrzecież w Arduino siedzi ATMega, która posiada już watchdoga. Dodawanie takiego ukłądu zewnętrznego kompletnie nie ma sensu.
Witam! Nie działa mi taki kod: [syntax=c]#include <avr/sleep.h> #include <avr/power.h> #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #include <avr/wdt.h> int watchdog_counter=0; void watchdog_init() { cli(); wdt_reset(); WDTCSR |= (1<<WDCE) | (1<<WDE); WDTCSR |= (1<<WDIE)...
(at)arkady25 A nie masz czasem włączonego watchdoga w fuse bitach? (WDTON)
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ć...
Musisz zrobić bilans patrząc na to ile prądu pobiera timer2 w trybie asynchronicznym, a ile watchdog, ze wszystkimi aspektami w tym przywrócenia stanu po resecie watchdog. Jaki to mikrokontroler?
Cześć !!! "Bajery" i pomiar temperatury to sporo ciekawych rzeczy jak dla maluszka. Sam kiedyś miałem to wiem. Ale rozumiem, że obrotomierza i LCD nie dawałeś :):) Jak spróbujesz się podłączyć pod instalacje zapłonową to zobaczysz jaka jest radocha z zabezpieczeń :) Atmega to dobry procesor i jak stosujesz WatchDoga to właściwie zawieszeń nie uświadczysz...
Dla tych co mają problem z pf_mount (raz działa, jak się zrestartuje proc to już nie, itp.) proponuję PRZED użyciem tej funckcji wpisać takie coś: #include <avr/wdt.h> wdt_enable(WDTO_2S); res=disk_initialize(); wdt_disable(); To ta funkcja (disk_initialize) sprawia że pf_mount się zawiesza (disk_initialize siedzi w pf_mount). Więc wyołujemy ją...
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...
Chcę wykorzystać w programie informację o przyczynie resetu procesora. Odczyt rejestru MCUSR realizuję zgodnie z dokumentacją, wiadomo: char MCUSR_string jest o wiele za krótka, mimo, że najdłuższy string ma teoretycznie 22 znaki łącznie z nullem. Wyświetlany napis jest ucięty. Jeśli wydłużę łańcuch do np 40 znaków, to napis pojawia się w całości. Czy...
Rozumiem że program ustawia cały port B na wyjścia i ustawia na logiczną jedynkę PB1,PB4,PB6? A w programie nie powinno być jakiejś pętli nieskończonej? Wiem że w C (AVR-GCC) to aż tak bardzo nie boli bo program i tak po wyjściu z maina w nią trafi, ale w asm nigdy nie pisałem całego programu. Pozdrawiam Dodano po 6 a WDT to watchdog, jak go nie masz...
- Każdy Ds na 3 przewodach, rezystor podciągający 4k7 przy każdym DS-sie czyli daleko od procka - Napięcie powrotne z DS na pinie Data to 4,95V - Zasilanie przetwornica step- down 24VDC-5VDC - stabilne dobrze odfiltrowane. - Reset sterowany z zewnętrznego Watchdoga Atmega się nie resetuje bo komunikacja po Modbusie TCP chodzi non stop, mam odczyt który...
No to jest to czego szukałem. Tylko teraz pytanie: Dlaczego zawartość rejestru R0 to zawiera,a nie można odczytać z MCUCSR jak jest opisane w DSie?? edit Aaa już wiem gdzie robiłem błąd. Można odczytać WDRF moim sposobem tylko przed Config Watchdog, bo ta instrukcja czyści rejestr MCU(C)SR. Wszystko pięknie jest wyjaśnione w Helpie od wersji 2.0.1.0...
(at)tmf - podejrzewam, że pobór jest całego układu w tym podświetlenia LCD więc może pobierać 0.2A; Hero - czy procek się grzeje? Czy masz watchdog timer wykorzystywany? Czy masz BOD?
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...
XMEGA zasadniczo nie da się zablokować - nie mamy tu uciążliwych fusebitów od kwarcu tak jak w ATMega. Ehe. Zmieniłem coś w WatchDog i do widzenia. Xmega32 w zdechła.
W ATmega... jedyne sensowny reset jest przez watchdoga poniweaż sam skok pod adres 0x0000 jest błędny gdyż te procki mają różne adresy RESET zależne od ustawienia fusesbit.
Wykorzystany LCD to nie jest wyświetlacz na sterowniku HD44780, tylko sama matryca (jak lcd z zegarka). Sterowany jest przez driver lcd zaimplementowany uC. Pozdrawiam
Problem masz gdzieś indziej. W kompilatorze Codevision funkcja systemowa delay ma wewnątrz kasowanie watchdoga. Spróbuj zamienić ją na pętlę while(1); a powineś zuważyć efekt zadziałania watchdoga.
ATMEGA8 nie posiada WDT_vect, takie przerwanie wystepuje natomiast w ATMEGA 88 .
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.
W przypadku klasycznego kodu w C (bez przerwań) czuję, że wystarczą ze dwie pętle Ja czuję, że to kierunek prowadzący w buraki. Tutaj prosi się o automat skończony. Wtedy program wygląda mniej więcej tak: Dodano po 5 ADC zmierzy napięcie z dzielnika Żeby to miało mieć ręce i nogi trzeba by skorzystać z komparatora. Ciągłe testowanie przez ADC jest...
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...
Jeśli piszesz w WinAVR i otworzysz plik w asemblerze to zobaczysz, że każde nie używane przerwanie prowadzi do resetu. Nieużywane tzn. nie posiada funkcji obsługi przerwania. Przerwanie takie od np. przepełnienia timera może nastąpić jeśli zostanie odblokowane, ale jak mówisz w tym przypadku to nie to. Możesz po prostu wyłączyć watchdoga i upewnić się...
zastosuj atmega 88PA Faktycznie jest to dobre rozwiązanie. Bez zewnętrznych elementów, można wykorzystać watchdog timera. Dzięki.
#define WDP_16K 0 // ~16ms #define WDP_32K (1<<WDP0) // ~32ms #define WDP_64K (1<<WDP1) // ~64ms #define WDP_128K ((1<<WDP1)|(1<&... // ~0,13s #define WDP_256K(1<<WDP2) // ~0,26s #define WDP_512K((1<<WDP2)| (1<<WDP0)) // ~0,5s #define...
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....
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.
Czy zdarzają się tego typu uszkodzenia atmegi? Biorąc pod uwagę info z tego forum, tak co druga atmega wychodzi z fabryki uszkodzona. Rzeczy z tymi procesorami dzieją się niesamowite a ludzie pracujący w Atmelu powinni zająć się czymś innym. Masz wyłączonego watchdoga fusami? Druga sprawa to przycisk masz na PD0 a sprawdzasz stan na PD3. Chcesz sprawdzić...
Trochę bez sensu, kontroler ma watchdoga, a jak się uszkodzi to nie ma co go budzić ;-)
Do ATmega nie potrzeba dodatkowych układów resetu, gdyż jest wyposażony zarówno w Watchdog-a, jak i Brown-Out Detector... Czytajcie ludzie dokumentację...
I jeszcze jedno - WŁĄCZ watchdoga !!!!! Jak nie zatrybi na początku to sie procek sam zresetuje i wystartuje raz jeszcze. Ustaw maksymalny czas w preskalerze watchdoga tak aby wystartował jak najpóźniej.
Witam, jaki problem chcesz rozwiązać? Pokaż treść zadania. Temat podobny do poprzedniego, w którym też brakuje pytania. Pozdrawiam.
Czy ATmega8535 ma tylko mierzsyć napięcie i wysyłać? Jeśli tak to po co taki duży uK do tego? :) Program może wyglądać tak: $regfile = "m8535.dat" $crystal = 16000000 $hwstack = 32 $swstack = 10 $framesize = 40 Dim W As Word Config Watchdog = 2048 Start Watchdog Reset Watchdog Config Adc = Single , Prescaler = Auto , Reference = Internal Start...
Osobiście wyznaję zasadę, im trudniej, tym ciekawiej i można się więcej nauczyć... Jeśli chodzi o zasilanie awaryjne to ATmega wcale dużo pradu nie pobiera w odpowiednim trybie uśpienia. Można ją wybudzać przerwaniem z licznika, może to byc reset z watchdoga (Źródło resetu jest rozpoznawalne w MCUCSR), obsłużyć co trzeba i znowu uśpić - przeliczanie...
mc1525tt, no load current typical 86uA. Byc może to pobór prądu bez obciązenia stabilizatora mc1525tt. Jesli atmega da sie wyjąc (na podstawce?) to mozna by wtedy sprawdzić. Dodano po 3 Chyba nie doczytałem opisu. Sorry. Dodano po 56 Ale tak czy inaczej jeśli nie mamy pomysłu to trzeba chyba odłączać po kawałku podejrzane rzeczy. Dodano po 2 Zacząłbym...
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...
A może jednak masz watchdog włączony? Na jakiej optymalizacji kodu pracujesz? Return 0; jest zbędne.
Ale teraz jak mam funkcje do migania diodą co sekundę to znowu miga jak powalona :/ jak sobie tą funkcje umieszcze w while i tam mam ze ma zmieniac co sekunde stan. No to porównaj, to co dołożyłem, z tym co było i dorzuć w swoim programie tak samo odpowiedni plik nagłówkowy na początku oraz <wdt_reset();> na początku pętli głównej, albo wyłącz...
Swoją drogą, jak wygląda kwestia niezawodności procesorów z tego okresu? Mam tutaj na myśli nie tylko 6502, ale także m.in. 8080, 8085 czy Z80. Obecnie każda Atmega posiada watchdoga, który w przypadku zawieszenia wykonywania programu automatycznie zresetuje MCU. Nie pamiętam, czy kiedykolwiek ta funkcjonalność przydawała mi się po etapie debugowania....
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...
Wyłączyłem watchdoga i sterownik przestał się zawieszać. Dlaczego ? Płytka przeprojektowana. wieczorem podeślę schemat.
Witam, skompilowałem AES bootloader (pod gcc). W zasadzie wszystko działa jak powinno poza jednym wyjątkiem. Jeśli zostanie wywołany reset z watchdoga procesor się zawiesza, nie pomaga sprzętowy reset, pozostaje odłączenie zasilania. Fusebity HIGH mam ustawione na D8. Początek bootloadera mam ustawiony na .text=0x1E000. Jeśli ustawię fusebity HIGH na...
Nie wiem jakiego kompilatora asm używasz, to co przedstawiam, używam na AVRasm2, który obsługuje preprocesor C oraz mam wygenerowane pliki nagłówkowe C Atmela narzędziem xmlconvert.exe[syntax=c]#ifdef WDP3 #define WDP_2K 0 // ~16ms #define WDP_4K (1<<WDP0)// ~32ms #define WDP_8K (1<<WDP1) // ~64ms #define WDP_16K ((1<<WDP1)|(1<<WDP0))//...
Skoro program utyka w jakimś miejscu to znaczy że czekasz w pollingu na stan, który się nie pojawia. Po pierwsze dodałbym time out, który przerwie pętlę oczekiwania zanim układ zostanie zresetowany przez watchdog. Dodatkowo w przypadku wystąpienia takiego timeoutu trzeba by obsłużyć jakoś błąd magistrali: http://obrazki.elektroda.pl/2162467700_1...
Cześć!!! Driver RS-232 <-> USB, który daje wirtualny port COM i co dalej :)... Zabawa na terminalu, test komunikacji, może programowanie procka ADuC bo się da przez Com, może programtor pamięci, czasem reaktywacja jakiego "gotowego" rozwiązania działającego dotąd doskonale na RS-232 i właściwie koniec zastosowań. Potrzebne tylko w szczególnym,...
wlasnie o pujscie w maliny mi chodzi - inny program po jakims czasie dziwnie mi sie wiesz - czas jest uaktualniany a temperatura nie. chce wylapac moment ze temperatura stoi - czujnik nie reaguje i wowczas wykonac reset procka. Mozesz krotki przyklad na obsluge dac? Cos prostego byle zawieralo kompletna obsluge watchdoga - uaktywnienie, reset itd. Pozniej...
Dzień dobry, witam wszystkich. Mam problem z wstawką asemblerową do języka C. Programuję procesor atmega2560. Nie rozumiem dlaczego nie działa funkcja "asm volatile ("mov r21,MCUSR");". Chcę dzięki niej przenieść wartość rejestru mcusr do rejestru r21. Lista błędów w załączniku. Wiem, że one wprost mogą nie wskazywać na to, że ich źródłem jest ta linijka...
Hmm, może warto całkiem zmienić koncepcję i wykonywać reset procesora... programowo. Można to zrobić na 2 sposoby, albo skokiem pod adres wektora resetu (czyli bootloadera), albo wykorzystując watchdog'a.
sorry za taki kod ale naprawdę nie mam pomysłu jak to zrobić czy atmega sie obudzi jak podam na int0 ? czy można zrobić to tak config int0=low level on int0 pdown pdown: enable interups incr flaga if flaga=2 then start watchdog else powerdown end if
witam. od kilku dni probuje rozwiazac pewien problem. mianowicie ucze sie programowac avr'y i postanowilem zrobic budzik. jednak problem zaczal sie gdy zaczalem dzialac na przerwaniach. na wejscie int2 podany mam sygnal o czestotliwosci 1Hz. ma on co sekunde powodowac przerwanie w ktorym jest odczyt zegara oraz wyswietlenie go na wyswietlaczu 2x20 znakow....
Watchdoga ustawiam na początku w configu tylko, prawda? Atmega 32 więc w fusebitach nigdzie nie znajdę tej funkcji. Czy się mylę? Czemu poległem już na początku? To jak powinno być. Wotchodoga pierwszy raz używam i dlatego nic o nim nie wiem :/
Atmega8L możesz spokojnie zasilać bezpośrednio z baterii 3V, do tego tryby głębokiego uśpienia i po kłopocie. Jeśli mnie pamięć nie myli, to uzyskałem w jednym projekcie 20uA. Programowy watchdog, licznik wybudzeń i masz urządzenie, które teoretycznie podziała kilka lat na jednej dobrej baterii.
Witam, czy ktoś może spotkał się (i znalazł rozwiązanie) z problemem zawieszania ATmega32 (lub podobnego układu) przy czym ze stanu zawieszenia nie można wyjść nawet poprzez ręczne zwarcie wejścia RESET do masy. Oczywiście na wejściu reset jest rezystor 4,7k + kondensator 10n, na zasilaniu procesora i większości układów kondensatory 100n, zasilanie...
Ustawiłem bit WDIE oraz WDP1 i WDP2 ( ustawiają sekundę jak było napisane w nocie katalogowej), lecz jak śledzę to debuggerem to widzę że system dalej się resetuje. Dziwna sprawa dioda świeci się (około 1 sekunda) i gaśnie (na około 1 sekundę), chociaż nie ma delyów ani operacji xor. Wydaje mi się że ten program powinien zapalić diodę po upływie 1 sekundy...
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ć...
Możesz dać taką linijkę asm("jmp 0xFF00"); Oczywiście wartość musi być tak dobrana żeby nie trafić w jakąś instrukcję bo będą jaja;) Oczywiście rozwiązanie jest jak najbardziej głupie, ale spełnia Twoje założenia;) Polecam jednak myk z watchdogiem.
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.
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...
skok do właściwego programu? - użyj watchdoga i masz przejście do programu głównego w wersji "miodzio"
...no tak czytam pdf'a atmegi i faktycznie ten watchdog jest taktowany z własnego zegara...jedyne co mu może przeszkodzić to problemy z zasilaniem...ale na szczęście atmega ma też BOD'a :)... jeszcze pytanie z innej beczki...mam zewnętrzengo EEPROM'a, w którym zapisuje raz na miesiąc jakieś ważne dane...z racji tego, że muszę czasem coś zapisać nie...
... fajne :) , Ja u siebie w Fiaciku kiedyś też taki układ zrobiłem po swojemu . Był podobny do tego , również na kontraktach z tym ze ja zrobiłem dodatkową opcje która wyróżniała mój projekt . Mianowicie , jeśli wróciłem do samochodu przed upływem 30 minuty od zamknięcia centralnego a tym samym szyb , to po otwarciu zamków szyby opuszczały sie do takiego...
Nie niszczy wgrywanie przez bootloader, tylko ponowne użycie programatora. Zresztą nie powinno tak być używając Arduino IDE, generując kod z Arduino do hexa powinien wgrać ponownie z bootloaderem, ale nie wiem czemu tak się nie dzieje gdy używam programatora USBASP. Najlepiej po użyciu programatora ponownie wgrać bootloader. Używając bootloader możesz...
Witam Mam kilka pytań odnośnie projektowanego przezemnie urządzenia: 1. Schemat 1.Potrzebuję zasilić układ 5V,zewnętrzne źródło napięciowe to 12V, układ ma mieć zabezpieczenie odwrócenia polaryzacji ( ma działać przy dowolnym włożeniu masy i zasilania )- stąd mostek Gretza. Układ musi mieć zabezpieczenie przeciwprądowe (bezpiecznik na wejściu). Czy...
Te 0,5F myślę że z powodzeniem nie pozwoli na skok napięcia o takim czasie narastania ażeby aż procek poszedł w maliny. Ja miałem układ w którym pracował obok procka moduł GSM. Potrafił on łyknąć chwilowo 2A prądu. Tam to dopiero były szpilki na zasilaniu. Co prawda przetwornica była na 3A ale jej czas reakcji był troszkę za mały. Procek się nie resetował...
Nigdy nie używałem, w tym przypadku też, szczerze mówiąc przypomniałeś mi o jego istnieniu ale znam go tylko z teorii, tzn wiem co to i do czego służy :) i teraz zastanawiam się nad wykorzystaniem go, w szczególności widzę jego zastosowanie podczas obsługi karty SD. Przy okazji, gdzie mogę znaleźć informacje na temat WatchDog'a? Bo rozumiem ze ATMega32...
To zależy co ten sterownik ma robić. 51 jest łatwiejsza do opanowania, bo mammniejsze możliwości w przypadku AVR (AT90S8515 raczej nie polecam bo są powoli zastępowane przez nowsze serii ATMega) jest dużo więcej sprzętu w środku. EEPROM, przetworniki A/C watchdog, bardziej elastyczne tajmery, szybsze... Tak by można jesze długo wymieniać. 51 z takim...
Atmega 88 to niezbyt udany mikrokontroler , problemy z uartem , problemy z wdt .Proponuję dobrze poczytać dokumentację (pdf) choć i ta zawiera błędy np w obsłudze uarta ...
Cięzko cokolwiek sugerować - konstrukcja jak konstrukcja. Ważne że działa... Jedyne co można zasugerować na przyszłość, to nauczyć się C ;] Czy w procku chodzi watchdog? Imho powinien, skoro jest to sterownik, i jego nieprawidłowe działanie może pociągnąć za sobą jakieśtam niekorzystne następstwa...
Ja wykorzystuje zewnętrznego Watchdoga. Gdy napiecie spadnie poniżej pewnego poziomu, wykorzystując naładowanego kondziora zapisuje szybko najważniejsze rzeczy. Mnie się nawet udaje zapisać prawie 2Kb danych ale mam małe obciażenia na zasilaczu i napięcie spada w miarę "wolno" :)
Chodzi o to, że po włączeniu sterownika do prądu (resecie mikrokontrolera) pompa od razu jest włączana nawet bez procesora. Wyłączona zostaje dopiero po pierwszym odczycie temperatury. Uchroni cię to przed nie pożądanym wyłączeniem pompy gdy np. ulegnie uszkodzeniu czujnik temperatury. Po każdym odczycie zeruj licznik watchdog. Wówczas nawet gdy odetniesz...
Zrobiłem i dalej lecą same 0 :(( oto kod w 2 Atmega 128 (ten co ma mierzyć): $regfile = "m128def.dat" $crystal = 16000000 $baud = 9600 $hwstack = 32 $swstack = 10 $framesize = 40 Dim W As Integer Dim L As Integer Config Watchdog = 2048 Start Watchdog Reset Watchdog Config Adc = Single , Prescaler = Auto , Reference = Internal Start Adc L =...
Chyba się poddaję (póki co) a urządzenie wyraźnie oznakuję jako niezgodne z ATMEGA32A (zgodne wyłącznie w ATMEGA32). Lub też zgodne z ATMEGA32A pod warunkiem zastosowania przekaźników RM85. Powiedziałbym, że takie postępowanie byłoby niegodne tytułu inżyniera. Cały czas brak jest podstawowych informacji o układzie i programie: - jaki kwarc i kondensatory...
Mam poważne wątpliwości czy kombinacja softwareowego USB i synchronicznego (busy waits!) TWI ma szansę zadziałać. Chyba faktycznie te synchroniczne i2c nie działa, bo mi się rozłącza z usb. już się bawię z isr: nwm o co chodzi z tym attiny ale mi hardware nie działał choćbym się zesrał, ostatecznie na scl dałem mniej więcej taki https://obrazki.elektroda.pl/1633124600_...
Rzeczywiście :D Ale to pokręcone. edit: Wydaje mi się że podaję poprawnie tablicę z moim znakiem do funkcji GLCD_DefineCharacter. Ale nie wiem jak wywołać na lcd mój znak. Czy może problemem jest typ zmiennej jaki użyłem? Problem z pikselami rozwiązałem. Okazało się że zbyt szybko pisałem do LCD przez skrócenie czasu funkcji _delay. Petit-ka zdecydowałem...
Sprawdź WatchDog'a i podciągnij Reset do VCC.
masz na myśli wdt_enable(WDTO_2S); //Włączenie Watchdog'a z czasem opóżnienia 2s a potem w pętli głównej programu wdt_reset(); natomiast nie resetował mi sie watchdog podczas gdy byłem w menu. Temat zamykam. Dzięki za pomoc.
Zrobiłem szybki test, aplikacja która wywoływała bootloader poprzez wdt_enable(WDTO_15MS); zamieniłem na wdt_enable(WDTO_250MS); bo ewidentnie po tym procesor ciągle był resetowany przez WDT, ustawiony bit WDRF mimo że bootloader jako trzecia z instrukcji w main ma wdt_disable(); Dodałem więc: [syntax=c]static void __init3( void ) __attribute__ (( section(...
O kurka, przepraszam, nie zauwazyłem ze to watchdog. ;) Poprawka, wewnetrzny oscylator, dla 8MHz. http://obrazki.elektroda.net/70_12329129...
$regfile = "m32def.dat" $crystal = 1000000 Config Timer0 = Timer , Prescale = 1024 On Timer0 Tim0_wakeup Enable Timer0 Enable Interrupts Do 'Jakiś program . . . Do Start Timer0 Idle Tim0_wakeup: Stop Timer0 Timer0 = 0 Incr Pamiec Loop Until Pamiec = 5 ' Ma się usypiać 5 razy 'Dalsza część programu wykonywana po przebudzeniu . . Loop Niestety...
Więc tak. Pierwsza ciekawostka która wyszła, to jakiś kłopot z układem watchdog, więc go wyłączyłem aby sprawdzić czy to jedyny błąd. Wszystko działa elegancko do momentu gdy program zaczyna generować instrukcje dla odbiornika - w tym miejscu nagle uaktywnia się przerwanie 'STOP' (co pokrywa się z zachowaniem całości w praktyce), a uK utyka w martwej...
Ok... w takim razie nie mam innych pomysłów, co w programie mogłoby powodować ten problem. Program jest rozległy, ale jednocześnie jest to po prostu długachny ciąg warunków, bez szczególnie dużych rozgałęzień, w nim nigdzie nie ma żadnej możliwości na "zamrożenie" urządzenia, a przynajmniej ja takiej możliwości nie widzę (tak, wiem, to "ja" może być...
watchdog atmega atmega reset watchdog atmega watchdog przerwanie
wartość skuteczna napięcia tętnień taśma sygnałowy router talktalk
papieros elektroniczny naprawa lampy nixie
Głowica ubijaka Zelmer, Bosch, Kenwood – montaż, użytkowanie, bezpieczeństwo Sharp LC-46LE730E Firmware Download, USB Update, SPI Dump, Faults