A czy to też nie działa : Config Watchdog = 16 Start Watchdog Disable Interrupts być może Bascom odblokowuje przerwania w starcie watchdoga?
A owszem, przyjmę wyzwanie ;D Obawiam się jednak czegoś odwrotnego. To tmf nie przyjmie wyzwania jej przyspieszenia. Ale żeby nie zaśmiecać forum to wysyłam ją na PW bo jest dość długa i skomplikowania. Chyba że wszyscy chcecie ją już teraz zobaczyć. To jak? bestmlody : a przeczytałeś w Datasheecie jaka jest sekwencja zmiany ustawień WatchDoga?
- 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...
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?
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...
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ą...
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 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...
A jest 1.11.9.3 Dla attiny na pewno lepsza. Może dla atmega też.
Watchdog?
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...
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.
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...
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
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.
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ą.
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.
Trochę bez sensu, kontroler ma watchdoga, a jak się uszkodzi to nie ma co go budzić ;-)
Zdaje mi się, że w przypadku a przerwania z watchdoga nie da się ustawić rzadziej niż 2s.
A watchdog masz wyłączony?
(at)arkady25 A nie masz czasem włączonego watchdoga w fuse bitach? (WDTON)
Watchdog nie jest programowy tylko sprzętowy Możesz mi powiedzieć co tu miałeś na myśli? Watchdog nie jest programowy? pierwsze słyszę. programowo: 1. ustawiam watchdoga na jak najkrótszy czas 2. wyłączam przerwania (na wszelki wypadek) 3. pętla nieskończona. i masz programowy PEŁNY reset i skok do adresu ustawionego za pomocą fusebitów. (to jest najpełniejszy...
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...)
Po co ta kombinacja z INT0? Skoro watchdog wybudza Ci procesor?
podciagnoles cos do pinu reset?
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ć...
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...
ATMEGA8 nie posiada WDT_vect, takie przerwanie wystepuje natomiast w ATMEGA 88 .
Wyłączyłem watchdoga i sterownik przestał się zawieszać. Dlaczego ? Płytka przeprojektowana. wieczorem podeślę schemat.
(at)piotrva To miganie diodami to był tylko taki przykład. Watchdoga chcę użyć tak jak ten timer asynchroniczny w power save.
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ć...
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 :/
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...
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...
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.
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....
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.
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...
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...
(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?
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ę...
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...
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...
jarek_lnx tak też myślałem aby zrobić. Dziękuje wszystkim za odpowiedzi. [edit] Ok, wszystko działa jak fabryczne. IRF1404 okazał się dobrym wyborem, radiator jest letni a to wszystko bez używania dodatkowego tranzystora na bramce mosfeta. Sygnał 5V z atmegi to wystarczająco. Nie obyło się także bez ww kondensatora 4700uF (oraz watchdoga na wszelki...
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...
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....
Witam, jaki problem chcesz rozwiązać? Pokaż treść zadania. Temat podobny do poprzedniego, w którym też brakuje pytania. Pozdrawiam.
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...
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.
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,...
A więc tak: Mój pomysł z wykorzystaniem $Noramclear działa, ale go nie chcę, bo nie jestem pewien czy nie wyczyszczona pamięć nie namiesza mi w programie. Konstrukcja If Mcucsr.wdrf = 1 Then Info = 1 End If nie działa. Nie wiem dlaczego po resecie ten bit nie jest ustawiany ?? A to by było rozwiązanie najlepsze. Co zaś do $Timeout, to owszem można by...
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.
Zanim zaczniesz używać asemblera wypadałoby poczytać trochę o tych komendach, co one oznaczają i jak ich używać. Jeżeli używasz assemblera jako wstawki w C, to mnemoniki typu MCUSR nic kompilatorowi nie mówią - musisz używać adresów. Z kolei komenda LDn ma z kilkanaście swoich wersji i powinieneś sprawdzić którą używasz i dlaczego. Jeśli już ładujesz...
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...
Witam ponownie wina leży mi się wydaje w przenoszonych zakłóceniach szczególnie od silnika zainstaluje jeszcze te kondensatory. Na stabilizatory też mam dać pomiędzy masę a zasilanie i masę i wyjście. Mogę jeszcze na wejściu zasilacza po stronie napięcia zasilania dać kondensator przeciwzakłóceniowy styrofleksowy. Watchdoga też chce zastosować ale na...
Roznica pomiedzy skokiem pod adres $0000 a reset przez watchdoga jest i to spora. Watchdog sprzetowo linie RESET na jakis czas aktywuje. Wtedy wewnetrznie wszystkie rejestry opisane w dokumentacji przyjmuja swoj stan poczatkowy. Przy skoku pod adres $0000 ciagle dzialaja przerwania, sa poustawiane rozne rejestry wczesniej zainicjalizowane wiec moga...
skok do właściwego programu? - użyj watchdoga i masz przejście do programu głównego w wersji "miodzio"
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...
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...
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ę...
A może jednak masz watchdog włączony? Na jakiej optymalizacji kodu pracujesz? Return 0; jest zbędne.
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...
... 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...
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...
zastosuj atmega 88PA Faktycznie jest to dobre rozwiązanie. Bez zewnętrznych elementów, można wykorzystać watchdog timera. Dzięki.
Kolego adambehnke typy zmiennych są w tych przykładach ok. Co do umieszczenia znaku na wyświetlaczu napisałem dwa posty temu i to z wyjaśnieniem skąd to się wszystko bierze i jak jest zorganizowane w kontrolerze. Co jest niejasne? Co do watchdoga to nie wiem co za atmegę masz i co tam atmel znów wykombinował, bo nie korzystam za bardzo z ich wyrobów...
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" :)
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ć...
Dobra nie będą Cię więcej męczył tylko powiem. To nie będzie reset. Podczas sprzętowego resetu są asynchronicznie resetowanie wszystkie rejestry specjalne. Czyli piny są ustawiane jako Hi-Z, Timery są zatrzymywane, ADC/I2C/SPI/UART zatrzymywane, przerwania wyłączane itd. itp. Skok pod adres 0 nie zrobi tego. K***a. Nic nie zrobi. Żeby to zrobić trzeba...
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ł...
Zrobiłem to tak: 'Odebranie jakiejkolwiek informacji z modułu GPS $regfile = "m16def.dat" $crystal = 8000000 $baud = 9600 Enable Interrupts Enable Urxc On Urxc Przerwanie_rx Config Lcd = 20 * 4 ' Wyswietlacz 20x4 Config Lcdpin = Pin , Rs = Porta.0 , E = Porta.1 , Db4 = Porta.2 , Db5 = Porta.3 , Db6 = Porta.4 , Db7 = Porta.5 Cls Dim Dana As...
ATmega644P jest dobrym wyborem. Ma te same końcówki co ATmega32. Jeśli używasz USART to będziesz musiał zmienić nazwy rejestrów, bo ATmega644P ma dwa USARTY a ATmega32 jeden. Innych kłopotów nie przewiduję. Używasz WatchDoga?
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(...
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...
https://obrazki.elektroda.pl/9342271000_... Dzień dobry, Urządzenie powstało w celu monitorowania poziomu wilgotności w pewnej zamkniętej przestrzeni. Przekroczenie zadanego poziomu jest sygnalizowane sygnałem dźwiękowym (buzzer) i świetlnym (LED). Wartości z ostatniego pomiaru można w każdej chwili odczytać, po naciśnięciu przycisku,...
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...
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...
$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...
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.
O kurka, przepraszam, nie zauwazyłem ze to watchdog. ;) Poprawka, wewnetrzny oscylator, dla 8MHz. http://obrazki.elektroda.net/70_12329129...
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.
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...
Cześć, mam pytanie odnośnie Timerów w uC ATmega. Potrzebuję następujących opcji: - zliczanie impulsów z dwóch enkoderów - generowanie dwóch przebiegów PWM - generowanie przerwania co kilka ms. W ATmedze 32 mam 2 timery 8-bitowe i 1 16-bitowy. Wymyśliłem tak, że za pomocą timerów 0 i 2, zliczam impulsy. I teraz pierwsze pytanie: czy da się zliczać impulsy...
U mnie w obu przypadkach też czas wyświetlania jest bardzo krótki 2-3 sek. Jeżeli układ był by źle zbudowany to albo wcale by się nie włączył albo był by włączony cały czas bo przecież to atmega zapewnia podtrzymanie zasilania utrzymując na PD6 stan wysoki. A jeżeli były by źle ustawione bity zegara to przecież wyszły by błędy przy pomiarze oporników....
Jeżeli chcesz resetować układ to podłącz przycisk. Jeżeli chcesz aby w wyniku zakłócenia (zawieszenia się) sam się zresetował użyj watchdog'a.
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...
...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...
Witam, prawdopodobnie błąd jest w inicjalizacji watchdog. Wykorzystujesz do tego dwie funkcje, init_WDT() oraz init_watch_dog(). jest dokładnie tak jak kolega rylu napisał, konflikt prescalera w podwójnej inicjacji WatchDoga, zastosowałem init_WDT() wraz z odpowiednią inicjacją prescalera i wszytko działa kolego rylu, jeszcze raz dzięki, gratuluję...
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...
Nie wiem czy to mi się uda (z tym toogle). U mnie w domu to się nigdy nie stało a tu bym mógł siedzieć i sprawdzać to nawet 24h natomiast w w.w. sklepie całego dnia nie mam możliwości spędzić. Tutaj problem raczej będę musiał rozwiązać metodą prób i błędów. Może poradzisz mi co warto zmienić ja wprowadzę parę zmian i po jakimś czasie zobaczymy czy się...
witam, napisałem dwa kody na obsługę i2c master(atmega644p): /* * main.c * * Created on: 16 lut 2018 * Author: Mirosław Kardaś * web: www.atnel.pl */ #include <avr/io.h> #include <avr/interrupt.h> #include <string.h> #include <util/delay.h> #include <avr/wdt.h> #include <avr/pgmspace.h> #include <avr/eeprom.h>...
Między płytkami idą jeszcze 2 przewody dzięki którym mogę generować przerwania między nimi. myślę że to właśnie jest twoim problemem. Skoro łączysz oba układy RSem to po co ci jeszcze jakieś przewody do wywoływania przerwań? Sam RS może przecież wytworzyc przerwanie , a wtedy w procedurze obsługi możesz zdekodować jaki znak nadszedł i robić sobie co...
Witam, Napisałem program, który wprowadza uC w stan uśpienia. Wszystko działa poprawnie, ale do tej operacji używam dwóch przycisków. Jeden służy mi do usypiania (PA1), a drugi, jako przerwanie do wybudzania uC (PD2-INT0). W jaki sposób mogę zrobić to na jednym przycisku podpiętym pod PD2? Poniżej kod. [syntax=c]#define F_CPU 8000000UL /*czestotliwosc...
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....
Prograsm mierzy czestotliwość zegara wewnętrznego i na tej podstawie wyświetla temperature wody. Mnie zawsze uczono że pomiar to porównanie wartości mierzonej ze wzrocową. A jak u ciebie to wyglada, co u Ciebie jest wzorcem? Wzorcem mósi być kwarc. CPU chodzi z kwarcu a licznik znlicza zegar z DCO. Nie wiem czy tak można w Atmega8 ale w MSP430 tak...
Szkoda, że koledzy zamiast wskazać sensowne rozwiązanie piszą "wybierz ARM i problemy magicznie znikną". Jeżeli dobrze rozumiem, to problem jest taki: Funkcja przesyłająca dane po SPI jest wywoływana z jakiegoś przerwania oraz z programu głównego. Jak to zrobić, aby blokować wywołania na czas transakcji? Dlaczego? Ponieważ do SPI są przypięte 2 porty...
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 ...
1. Na poczatku użyłeś obecnie obowiązująca formę w odniesieniu do przerwania INT1 : ISR(INT1_vect) a teraz starszą w odniesieniu do przerwania INT0 SIGNAL(SIG_INTERRUPT0) Czy zainstalowałeś starszą wersję WinAVR ? 2. O co chodzi z : asm volatile ("WDR"::); i jak to się ma do _delay_ms(); skoro w programie...
(at)R-MIK Znowu nie na temat. Wbudowany w niektóre ATMega termometr służy do tego, żeby był. Żadnych sensownych właściwości to on nie ma, przy niewielkiej różnicy w rozchodzeniu się dźwięku w zależności od temp. i potrzebie tylko zgrubnego określenia odległości w czujniku parkowania na niewiele się zda. Obecność debug Wire też na nic autorowi, skoro...
wyłączenie watchdoga układ watchdoga reset watchdoga
ploter wycinania zasilanie cursor livebox router bezprzewodowo
polecane wiertarko wkrętarki wiertarko wkrętarka
Jak zgasić lampki oświetlenia kabiny Ford Mondeo 2013? Jak zresetować pralkę Privileg 7245 - instrukcje krok po kroku