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_...
Założenia Watchdoga są takie, że jeśli włączysz przerwanie od niego to za pierwszym okresem nie zresetuje procesora tylko wejdzie w obsługe przerwania, ale on w tym przerwaniu skasuje bit WDTIE i już za drugim okresem zrestartuje procesor. Żeby Watchdog stale miał włączone przerwanie to trzeba to w kółko ustawiać. Teoretycznie nie powinno się z powrotem...
Watchdog nie musi generować sygnału RESET. W AVRach sam wybierasz czy zgłoszenie od Watchdoga ma zresetować procka czy też tylko wywołać przerwanie od niego, bądź jedno i drugie w kolejności - przerwanie a przy wyjściu z niego reset. http://obrazki.elektroda.pl/1548346700_1...
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...
hmmm Przede wszystkim: Enable Interrupts On Timer0 Przerwanie Stop Watchdog Config Timer0 = Timer , Prescale = 1024 Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 256 'PWM=250Hz Load Timer0 = 195 To włączenie przerwania jest wstrętne w tym miejscu:P Co do wniosków... może spróbuj zwiększyć stos o...
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ę...
Wybudzaj przerwaniem watchdoga nie resetem. Ja bym to zrobił tak (w C, w bascomie pewnie też tak się da): W głównej pętli: - konfiguracja watchdoga z przerwaniem na jak najdłuższy czas- - wejście w power down - pętla nieskończona z ciągłym przechodzeniem do idle. W przerwaniu watchdoga: - wyzerowanie watchdoga - inkrementacja zmiennej odliczającej od...
Autor chce uzyskać SLEEP_MODE_PWR_DOWN, a z tego tryby wybudzi go jedynie watchdog lub przerwanie zewnętrzne (zależnie od uC).
http://obrazki.elektroda.pl/5397068700_1... Witam! W kolejnej odsłonie modułów do samochodu przedstawiam układ realizujący funkcję, tzw. Coming Home oraz Leaving Home znane przede wszystkich chyba z aut grupy VW. Funkcje te to zwyczajnie oświetlanie drogi do domu, gdy opuszczamy auto oraz z domu, gdy chcemy do niego wsiąść. Układ steruje...
Podejrzewam ze problem moze byc wynikiem uzycia zlego pliku startowego Sprobuj tego, tylko pamietaj ze przerwanie w C musi byc z __attribute__((interrupt)) PS. Ten startup ma domyslnie wylaczone przerwania w rejestrze CPSR, musisz je dodatkowo wlaczyc (czyszczac bit I w CPSR), mozesz to zmienic w startupie.
(at)tmf - dziękuję za miłe słowa :) Właśnie takie było założenie co do grupy "docelowej". Myślę, że jeszcze długo ATmegi i ATtiny będą punktem startowym dla hobbystów ze względu na nawał informacji w Internecie i mocno zakorzeniony pogląd jakoby wszystko inne było drogie/trudne itd. W sumie chciałem, żeby w poradniku było trochę więcej nawiązań do...
przeanalizuj sobie dobrze ten kdzik poniżej bo on jest dobrze napisany - naprawdę ;) ja wprawdzie kiedyś przy okazju swojej wytrawiarki też zrobiłem sterowanie w Bascomie 2 odbiorników przy 75 krokach ale dałoby radę więcej kroków i jeszcze kilka odbiorników. Z tym, że już nie pamiętam dokładnie zagadnienia więc trudno mi się teraz znowu w to wgryzać....
https://obrazki.elektroda.pl/4509007500_... Zapraszam na prezentację https://obrazki.elektroda.pl/1519670000_... Przygodę z APM32F003F6 pozwoli nam szybko rozpocząć płytka Mini Board. Oprócz głównego MCU z przydatnymi do uruchomienia elementami takimi jak rezonator kwarcowy, przycisk RESET oraz testowy, diody LED,...
http://obrazki.elektroda.pl/7831510000_1... Witam, w końcu i ja postanowiłem zaprezentować swoje dokonania na elektrodzie. To mój pierwszy post w DIY, proszę o wyrozumiałość. :-) 1.Pomysł Dla mnie, człowieka urodzonego pod koniec lat 70, zawsze wzorem zegara był zegar Teleexpressu. Te 60 diod sekundnika były dla mnie magnesem. Jednak...
dziękuję Dodano po 5 . ładny https://obrazki.elektroda.pl/7767676000_... QIO bit-banged do HLK-B30. log z D12 Dodano po 6 . Niestety, jeśli nacisnę restart lub reset zasilania na U, przyczyną restartu jest zawsze przerwanie pinu. naprawiłeś to? Zawsze mam Pwr lub Rbt
http://obrazki.elektroda.pl/2126980700_1... System monitorowania środowiska, oparty o interfejs LoRa IoT składa się z stacji bazowej zbudowanej z wykorzystaniem modułu Arduino Mega z bramką LoRa oraz zdalnych stacji opartych na Arduino Feather, które łączą się z stacją bazową poprzez radiowy interfejs LoRa. System pozwala na monitorowanie...
http://obrazki.elektroda.pl/7758360200_1... Energooszczędny błyskacz LED ze średnim poborem prądu poniżej 5uA? Tak, z XMEGA32E5 udało mi się tego dokonać. 5 lat błyskania LEDem na zasilaniu z 2 paluszków alkalicznych? Czas pokaże. Ponad 10 lat przy baterii litowej CR123A? Z pewnością możliwe, gdyby nie drobne przeszkody techniczne....
http://obrazki.elektroda.pl/5959558100_1... Witam :) Razem z kolegą chcielibyśmy się pochwalić naszą maszyną :) Jest to ramie robota oparte na serwomechanizmach modelarskich. Ja zająłem się sterowaniem i elektroniką, a kolega robił projekt 3D w SketchUp i konstrukcje http://obrazki.elektroda.pl/9008440700_1... Początkowo...
http://obrazki.elektroda.pl/3207877000_1... http://obrazki.elektroda.pl/9634776400_1... http://obrazki.elektroda.pl/8673988800_1... http://obrazki.elektroda.pl/3005768300_1... Termometr z funkcją pamiętania maksimum i minimum (zapisane w rejestrach, tracone przy braku zasilania). Program...
https://obrazki.elektroda.pl/9520538200_... Jest to raczej sprzęt dla fanów atmegi ;) Z punktu widzenia ekonomii nie ma wielkiego sensu. Stosując elementy smd oraz inny mikrokontroler można zrobić sprzęt i lepszy i tańszy. A części użyłem jakie miałem na stanie. Właściwości : - 1,2,4 kanały analogowe min (max 100,50,20 ksps) pasmo...
Kod miał być tak prosty jak opisywałeś w pierwszym poście i mu odpowiada. Jeśli chcesz mogę dodać Powerdown z którego wybudzi uC przerwanie od PCINT1. Watchdog to już chyba przerost formy nad treścią ahahahaha :D
To może mozesz sobie pozwolić na przerwanie raz na 8 sekund - watchdog interrupt. Przerwanie w AVR - ach jest b szybkie 4 takty zegara na jmp - jezeli napiszesz sobie zwiekszanie jakiegos 8 bitowego progrmaowego timerka to tez raptem pare cykli dodasz. Cięzko mi wyobrazic sobie tak krytyczną procedure aby nie mogła sobie pozwolić na powiedzmy 20 taktów...
Witam wszystkich. Zaprojektowałem i uruchomiłem zegarek z wyświetlaczami LED(SA10-21GWA) i układem PCF8583 współpracującym z mikroprocesorem Atmega8 oraz układami PCF8574AP na szynie TWI(i2c). http://obrazki.elektroda.net/21_12497604... http://obrazki.elektroda.net/58_12497606... http://obrazki.elektroda.net/95_12497605...
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...
Z tego co wiem to najpierw watchdog powinien poczekać 2 sekundy, potem obsłużyć przerwanie i zacząć liczyć od nowa ( podczas gdy MCU będzie czekać 2000ms) i migać dalej. Dopiero po kolejnym odliczeniu 2 sekund przez watchdoga system powinien się zresetować.
...w takiej sytuacji będę musiał pomyśleć nad innym sposobie monitorowania napięcia. Może użyj funkcji analog watchdog, opisanej w p. 11.3.7 Reference Manual? Analog watchdog wystawia przerwanie gdy poziom napięcia będzie wyższy od progu HTR lub niższy od progu LTR. Ja natomiast potrzebuje sytuacji odwrotnej, czyli gdy wartość napięcia znajduje się...
Witam, Potrzebuje opisu układów zabezpieczeń alarmowych w mikrokontrolerach.W jaki sposób steruje sie układem watchdog, oraz prostego schematu układu RESET, wraz z opisem zastosowania tego sygnału w mikrokontrolerze i typowymi jego źródłami...
Może żeby od razu rozwiać pytania malkontentów dlaczego procesor, a nie jakiś gotowy przerzutnik zmieniający stan po kliku (np. D albo coś podobnego) Może by tak od razu zrobić układ na lampach? :) A może by tak wyrzucić z głowy tego typu myśli. Nie jesteś za duży żeby dorosłych pytać o pozwolenie? https://brandnewtube.com/watch/stop-aski...
Cześć, Mam problem z restartem procka Atmega 328P jak użyje timera Watch doga, wchodzenie w Power Down i wysyłkę na UART. W załączniku na maksa okrojony moj program. Generlnie korzystam z timera Watch doga i wybudzam procka co 0.5s żeby w przerywaniu wyslac jedna krótka linie po UART. Program dziala jesli nie usypiam procka po przerywaniu ale jak tylko...
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...
A gdy przerwanie załóżmy wystąpi po uruchomieniu watchdoga, ale przed instrukcją cli(). Wtedy w przerwaniu zostanie wyłączony watchdog i cały program zatrzyma się na while(1)? To w takim razie można używać przerwań do wyłączania watchdoga?
Nie chcesz auto łączenia z WiFi to masz funkcję WiFi.setAutoConnect(false); W narzędziach arduino pod pozycją Erase Flash możesz wybrać by za każdym wgraniem szkicu kasowało cały flash (jak wyżej). Jak masz długie pętle z dużą ilością instrukcji użyj w każdej iteracji yield(); lub delay(0); unikniesz tym wyzwolenia watchdoga. Zawsze można wyłączyć watchdoga...
Czesc, Co to znaczy timer? Co to ma byc? Powiedz dokladnie co potrzebujesz i do czego tego czegos chcesz uzyc. (pytajac co to jest timier mialem na mysli jaka czestotliwosc zegara, ile bitow na liczniki, czy to ma byc watchdog timer wysylajacy przerwanie czy tylko wacek zliczajacy tiki zegara? sa rozne timery... ) Pozdrawiam, tony_tg
Z ciekawości możesz ustawić wszystkie nieużywane porty i te do których nie masz nic aktualnie podłączone jako wyjścia . To co opisujesz wygląda tak jak by "wiszący pin" będący wejściem generował przerwanie .
Co rozumiesz przez: ... wejdzie w pętlę nieskończoną. Zadam inaczej pytanie, czy jeśli watchdog się przepełni i zgłosi przerwanie to zacznie liczyć od nowa, czy też licznik pozostanie przepełniony i będzie wymagał natychmiastowego wyzerowania? Właśnie próbuje uruchomić taki układzik i coś mi nie gra. Niby wszystko jest ok a układ mi się zwiesza po...
po zakończeniu obsługi przerwania procesor przeskakiwał do konkretnego miejsca w kodzie? W ilu miejscach tego kodu musiałbyś wstawić te "przeskakiwanie"? ;) Nie będziesz w stanie z góry stwierdzić, w którym miejscu to przerwanie wystąpi. Ale gdybym wstawił jakiś znacznik na początku loop() to wracałby na początek kodu po każdym przerwaniu. Niby taka...
"...\avr-objcopy.exe" -O ihex -R .eeprom... Zrobiłem to w automacie, ale spotkało mnie coś o czym wspomniał bart-projects tzn: Hex na PC`cie zajmuje mniej miejsca niż Bin bo w Bin albo cały obraz pamięci no i gdy nie miałem parametrów z "-R" to mój wsad dla małego procesora miał...
Na początek użyj znaczników syntax i pozmieniaj magiczne numerki na nazwy bitów. Np.: avr/wdt.h
W chwili gdy obsługuje 1-Wire, Bascom ZAWSZE nawet na czas generowania resetu, co trawa ok 500us, później presence, co daje razem ok 800us, zawiesza przerwania. To samo w czasie transmisji danych, transmisja bajtu to ponad 500us zawieszone przerwania. W tym czasie nie wykona się przerwanie od timera, od i cała tajemnica. Ale zabobony. Każdy może otworzyć...
Problem w pewien sposob rozwiazany, moze komus sie przyda Dodano linie: $initmicro ........ _init_micro: Config Watchdog = 1024 Start Watchdog Return W tej postaci watchdog poprawnie resetuje uP: $crystal = 7372800 $regfile = "m168def.dat" $initmicro Config Aci = Off Config Lcd = 40 * 2 Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3...
Z opisu wynika, że masz coś nie tak w programie, niestety bez wnikliwego przejrzenia całości nie ma szans, aby ci pomóc. W pewnych sytuacjach różnice w szybkości wykonywania programu pomiędzy -O0, a -O2 mogą przekraczać 50%. Jeśli tak napisany kod migający LEDem w pętli głównej, ma różnice w czasach wykonania 11-20s, to masz powaźnie skaszaniony kod....
Ok sprawa się nieco wyjaśniła. Mikroklocek nie idzie spać po użyciu WFE ale za to robi to po wywołaniu WFI. Ostatecznie mój kod, który wprowadza rdzeń w uśpienie wygląda tak jak poniżej i w tej formie to działa [syntax=c] /** * Entering STOP2 power save mode. In this mode all clocks except LSI and LSE are disabled. StaticRAM content * is preserved,...
Witam Wyświetlacze ze wspólną katodą są coraz trudniej dostępne w sklepach. Układ ULN idealnie nadaje się (bez żadnych dodatkowych elementów poza oczywiście rezystorami) do sterowania wyświetlaczami ze wspólną anodą. Można go podłączyć bezpośrednio pod port - wszystkie osiem wzmacniaczy prądowych czyli sterować także kropką w wyświetlaczu albo też podłączyć...
Próbowałem ustawić wyzwalanie zboczem FALLING instrukcjami Bascoma, oraz wprost w rejestrach. Nie dawało to nic. Nie wiem, czy dalej wyzwalało się poziomem, czy przyczyna była inna. Poniżej fragmenty programu, które według mnie są istotne. Może ma tu jakieś znaczenie fakt, że pin INT1 jest w trakcie przerwania zmieniany na wyjście i z powrotem na wejście....
3. Jak dobrze widzę w dokumentacji to stan rejestrów przy power-down jest zachowany, więc można to zrobić bez użycia eepromu. Owszem, ale... Power-down Mode (...) In this mode, the Oscillator is stopped, while the external interrupts, and the Watchdog continue operating (if enabled). Only an External Reset, a Watchdog Reset, a Brown-out Reset, an external...
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...
Gdybym robił zwarcie na zasilaniu to zadziałaby układ BOD i uC by się zresetował i ponownie wyświetliłby się napis "start" przed main, a tak się nie dzieje. Procesor zostaje w tym przerwaniu bo jest tam while(1). Próbowałem rezystor 100 R i nic. To jest jakaś chora anomalia, której nie umiem wyjaśnić. Tak samo tego, że watchdog nie działa gdy korzystam...
sprawdź czy masz skonfigurowany może watchdog okienkowy w STMie, jeśli go nie odświeżysz w odpowiednim przedziale który sobie skonfigurowałeś, a w kodzie gdzieś przytrzymasz proca w while'u albo wpadnie Ci w jakieś przerwanie to proc będzie się resetował
(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...
Skoro tak to pokaż w kodzie gdzie ten WD jest ustawiany i przerwanie od niego, bo ja nie znalazłem. Odnoszę się do kodu ze strony https://github.com/feilipu/Arduino_FreeR... [syntax=c] BaseType_t xPortStartScheduler( void ) { /* Setup the relevant timer hardware to generate the tick. */ prvSetupTimerInterrupt(); /* Restore the context of the...
Witam, Chciałbym skonfigurować przerwanie od Timer 2/3, aby było wywoływane co 125ns (8 MHz). Pracuję na wewnętrznym oscylatorze z włączona pętlą PLL -> częstoliwość 32MHz. Gdy do rejestrów PR3 i PR2 wpiszę 16 000 000 (do PR3 starszą część, do PR2 młodszą) to dioda pulsuje z częstotliwością 2Hz (1s świeci i 1s nie świeci). Gdy wpiszę do tych rejestrów...
Rozumiem doskonale ale zrobiłem coś innego, mianowicie przy resecie watchdoga zmienne sie resetują ale można zdefiniować zmienna w ten sposób : [syntax=c] uint8_t cycle __attribute__ ((section (".noinit"))); [/syntax] Stan zmiennej jest zapamiętywany nawet po resecie watchdoga. Dlatego można zliczac cykre uruchomienia resetu. [syntax=c] int main(void)...
atmega watchdog przerwanie bascom przerwanie watchdog przerwanie watchdog bascom
casio instrukcja obsługi piekarnik samsung czujnik temperatura pralka kupić indesit
Itron Noritake FG169G2 VFD Display Datasheet Access Rolka gumowa do kamery Sony DCR-HC14E - wymiana i naprawa