heh, dziwne ze w ogole ci zadzialalo z takimi ustawieniami... 1. wylacz wszystkie code i write protection 2. primary oscilator source zgodnie z logika powinien byc ustawiony na FRC, a nie na External Clock. 3. jesli nie zamierzasz zmieniac zegarka (np PLLa ustawiac), to mozesz wylaczyc Clock Switching (Sw) i Clock Monitor (Mon). 4. POR Timer daj na...
W poście #1 napisałeś że nie możesz wejść w tryb bootloadera a w #5 że masz komunikację z Flipem. To jak jest ostatecznie? Tak procedura jest poprawna PSEN do masy + Reset. Z tego co pamiętam to w przypadku zabezpieczonego procesora FlashMagic zgłaszał to przy próbie odczytu. Musiałbym to jeszcze sprawdzić ale P89C51RC2 i AT89C51RB2 nie były bezpośrednio...
http://obrazki.elektroda.pl/9589280700_1... HPS 2014 Hybrydowy laboratoryjny zasilacz sieciowy. Parametry użytkowe zasilacza w skrócie: 1. Wykorzystanie tanich i łatwo dostępnych elementów. 2. Wydajność prądowa min 3A (dla niskich napięć może dochodzić do 5A). 3. Rozdzielczość DAC 12bit. (filtrowany PWM 4.9kHz) 4. Rozdzielczość ADC...
Jakie są przyczyny częstych restartów urządzenia? Mam urządzenie BL602. Po skonfigurowaniu Wi-Fi i informacji MQTT dla urządzenia, urządzenie działa normalnie. Po odłączeniu Internetu Wi-Fi (urządzenie pozostaje podłączone do sieci Wi-Fi) urządzenie często i automatycznie uruchamia się ponownie. Powodem wyświetlania błędu jest: BL-RST-SOFTWARE-WATCHDOG Ale...
Witam. Dziękuje za pomoc. Problem z watchdogiem spowodowany był tym że procesor programowałem poprzez bootloadera, który wyłączał watchodoga i nie było możliwości ponownego włączenia - rejestr jednokrotnego zapisu . Pozdrawiam i dziękuje za pomoc.
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...
telekomuna - zajmuje sie mikrokontrolerami wiem jak działa watchdog :) chodziło mi o to że program nie resetuje (zeruje) rejestru watchdoga przez co on sie przepełnia i generuje reset, jak napewno wiesz, watchdog jest licznikiem zliczajacym cały czas impulsy (jakie zalezy od ustawien rejestrów preskalera) programista powinien systematycznie w programie...
CPI r24, 4BRSH wylacz_usypianie...wylacz_usypianie:CLI.... Kod: avrasm ] CPI r24, 4BRSH wylacz_usypianie...wylacz_usypianie:CLI.... Powiem szczerze, że nie bardzo rozumiem. Obecny kod wygląda w ten sposób: [syntax=c]/* * main.c * * Created: 2/14/2022 1:11:10 PM * Author: Maciej */ #include <xc.h> #include <avr/wdt.h> #include <avr/interrupt.h>...
Zalaczenie watchdog'a to nie rozwiazanie. Watchdog jest ostatecznym kryterium (zabezpieczeniem) a nie nadzorem nad blednym softem. Nalezy najpierw znalezc przyczyne "zawieszania" - o ile beda to zaklucenia z sieci - mozna pokusic sie o watchdoga. Jednak lepszy bylby filtr. Oczywiscie jestem zwolennikiem i czesto wykorzystuje watchdog w swoich aplikacjach....
Cześć Przekopałem się jeszcze raz przez dokumentację i chyba znalazłem problem. AT91SAM7S ma domyślnie wyłączoną opcję "user reset" czyli reset z nóżki. "Software reset" z kolei wymaga zapisu do rejestru co jest możliwe tylko kiedy procesor jest zatrzymany. Jeżeli procesor nie jest zatrzymany tylko "power on reset " działa. Dodałem w swojej konfiguracji...
Witam Wszystkich! Chciałbym prosić Szanownych Forumowiczów o kilka słów wyjaśnienia na temat konfiguracji i "używania" watchdoga w prockach LPC2000 programowanych pakietem WinARM. Napisałem już pokaźny program na równolegle działające 20 ARMów, ale czasami zdarza się, że program tu i ówdzie zawiesi się niwecząc cały cykl obliczeniowy. Mam w związku...
Witam, A czego Pan, Panie Kolego nie rozumie? Kolumna Address, podaje adresy poszczególnych rejestrów tego sterownika. Rejestrów służących do skonfigurowania pracy tegoż urządzenia. I tak dla przykładu, tabela 12, ilustruje co kolejne bity w tych rejestrach oznaczają i do czegoż służą. Czyli np. rejestr: CRWD (00h) zawiera bity WDEN WDT[3:0]. Pierwszy...
Czy po wystąpieniu tego przerwania mogę zrobić jakiś zapis np w eepromie (aby później znać przyczynę resetu) ? Jeszcze w jednej kwestii się odezwę. Mianowicie większość AVRów ma rejestr MCUSR lub jego odpowiednik gdzie można sprawdzić co było przyczyną ostatniego resetu. Dla tiny2313 mamy na przykład flagi: WDRF - reset od watchdoga BORF - reset od...
A którą wersję Bascoma używasz? 1.11.9.0 Timer1_int: Counter1 = 54040 ' 10 razy na sekunde .... Return Nie wiem dokladnie ile cykli w bascom-avr jest zuzywane na odlozenie wartosc rejestrow na stos dlatego wybralem wartosc 54040 zamiast 54016 jako bardziej zblizone do 0.1s / stos + 0,09979167s / moze ktos wie ile dokladnie cykli jest tracone przed...
Szperajac po internecie tez znalazlem informacje ze niektorzy uzytkownicy spotkali sie z podobnym problemem. No coz zawierzylem najwidoczniej wlasnej propagandzie i stracilem dwa dni na szukanie bledu w programie a nie w sprzecie ;) Teraz tez sobie zrobilem makro ktore robi mi porzadek na samym poczatku programu. Jakby sie tak zastanowic to racja ze...
Jest rejestr WDTCR. Ustawienie bitu 3 włącza watchdoga. Bity 0..2 odpowiadają za częstotliwośc pracy. 0 0 0 16K (16,384) 17.1 ms 0 0 1 32K (32,768) 34.3 ms 0 1 0 64K (65,536) 68.5 ms 0 1 1 128K (131,072) 0.14 s 1 0 0 256K (262,144) 0.27 s 1 0 1 512K (524,288) 0.55 s 1 1 0 1,024K (1,048,576) 1.1...
Tak jak już pisałem na email, możesz sobie darować obsługę MMC, jeśli wystarczy Ci zapis tylko odczytów bez znaczników czasowych z dokładnością stałej czasowej rzędu 20% (bo przy takich różnicach temperatur mierzonych, na pewno temperatura samego procka też będzie mocno się wahać). Sprawa mocno się uprości, a wystarczy procek z 64kbajtami pamięci flash....
co robi pętla: stop: jmp stop wedłyg mnie tylko sapetla sie. a swoja droga to warto ustawic watchdoga Dodano po 1 oczywiscie zapętla się za blisko te klawisze:) Dodano po 5 A tak na marginesie z jaka dokladnoscie chcesz mierzyc?? Dodano po 11 a swoją drogą juz ktos mówił ze adres ma byc $0A a nie $0C Mysllałem ze tego ni emusze sprawdzac :D
Trochę więcej szacunku, kolego janbernat, dla własnego rozumu, he he... Ogólnie ten rejestr przechowuje flagi stanu jednostki centralnej procesora i teoretycznie można go odczytać celem sprawdzenia co było przyczyna resetu ale pod warunkiem że procesor daje znak życia a nie wisi. W nowszych AVR-ach te flagi używane są przez np. przerwania watchdoga...
No to może pokaże jak to wszystko teraz wygląda. Przede wszystkim po długich zabawach z programem i róznymi wersjami stwierdziłem, że ....nie ma sensu pakować się w różne cuda. Bawiłem się z kontaktronem i wyłączaniem "kluczem magnetycznym", ale porzuciłem temat. Powód prosty....w zasadzie wszystko co było mi potrzebne do zbudowania pierwszej wersji...
Blue Draco: 1. Debugger twierdzi, że jestem we flashu. Programu do RAM-u nie ładuję. Nie wiem dlaczego wyświetl mi w oknie OpenOCD adres z RAM-u. 2. Wpisywanie wartości domyślnych na pewno nie zaszkodzi. Widziałem już takie kwiatki, że rejestr jest po resecie inny niż deklarowany przez producenta (co prawda nieczęsto, ale nawyk mi pozostał). 3. memset...
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, mam sterownik który co kilka minut zapisuje w pamięci AT24c1024 jeden z 4 parametrów, są to 3 wartości typu Byte oraz jedna typu Word. Niestety raz na 1-2 dni występuje problem z zapisem, "zacina" się komunikacja i sterownik najczęściej zostaje zresetowany przez watchdog'a, jeśli wyłączę watchdoga sterownik przestaje reagować. Na magistrali jest...
Witam. Napisałem kod na procesor jak w temacie, zaprogramowałem go (z małymi problemami, ale po zwiększeniu w programie /Dybkowski/ wartości częstotliwości kwarcu udało się), podłączam LCD i nic. W ogóle nie dochodzi do inicjacji. Podejrzewam, że może coś skopałem przy odczycie z wewnętrznej EEPROM. Proszę o sprawdzenie i/lub ewentualne sugestie. Dziękuję...
Wrzucam cały kod programu. Może ktoś obeznany zerknie na to i coś podpowie bo dalej nie potrafie znaleźć błędu. .INCLUDE "m8def.inc" .def temp = r16 .def zero = r20 .def czekaj = r21 .def licznik = r22 .def DATA = r24 .def ustaw = r25 .def secure = r30 .def maska = r31 .equ SLA1_W=0x92 ;adres czujnika (VCC na ADR SEL) 1001001 oraz...
Program chyba ukończyłem: ;Program do "modyfikatora sygnału" ;Parametry techniczne dla taktowania 4MHz: ;- skrócenie czasu o wartość max ponad 2,5ms z krokiem co 10us ;- lub wydłużenie czasu o max stałą wartość ponad 20ms z krokiem co 80us ;- mnożenie czasu przez współczynnik około 1,00 do 2,55 ;- wejścia sygnałowe portB 0-3 ;- wyjścia...
Witam. Mam następujący problem z niedziałającym TWI. Mam kod na atmegę w C. /* Czujnik ultradzwiekowy sterowany z magistrali i2c C= 2010 Grzegorz Eliszewski grzegorz(at)eliszewski.pl esio.eu */ #define F_CPU 12000000UL // czestotliwosc kwarcu 12MHz #include <avr/io.h> #include <util/delay.h> // obsluga opoznien #include <compat/twi.h>...
Oczywiście chodzi o sam początek programu, użyłem skróty myślowego. Na samym początku programu niech będzie warunek który sprawdza czy był zresetowany przez watchdog (specjalna flaga w rejestrze MCUCSR), jeśli nie - czyli jak program uruchamia się pierwszy raz, to program leci dalej i robi co ma zrobić, potem w momencie kiedy chcesz uśpić procka uruchamiasz...
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...
Mozna spokojnie. U siebie (tez Tiny2313) zmieniam podczas pracy nawet taktowanie. Jeśli uC u mnie pracuje na 8MHz bo musi wygenerować rózne wysokie częstotliwości to podczas snu brał 2mA. Teraz przed uśpieniem dobieram się do rejestru CLKPR - Clock Prescale Register. Zasada przestawiania jest podobna jak w WD. Trzeba najpierw ustawić CLKPCE: Clock Prescaler...
NIestety poprzednicy mają rację 2313 ma trzy źródła sygnału zerującego: 1. Power on reset - gdy napięcie zasilania spadnie poniżej 1.0 - 1.4V dla zbocza narastającego (wł. zasilania) i 0,4 - 0,6 dla opadającego (wył. zasilania). 2. External reset - stan niski na wejściu RESET przez 50us 3. Watchdog - gdy jest uaktywniony Powyższe sygnały zerujące zerują...
Dzieje się coś dziwnego z mikrokontrolerem i już sam nie wiem co ja z tego wnioskuję, na pewno wnioskuję, że nie działa tak jak powinien, prosty program, #include "stm32f10.x" int test=0; int main(void) { while(1) { test++; } } Czyli według Ciebie kod powyżej jest kompletny i powoduje ustawienie flagi resetu od watchdoga? Nie inicjalizujesz nigdzie...
O ile mi wiadomo z własnych doświadczeń, to przejście w tryby oszczędnościowe nie powoduje zmian w rejestrach i w pamieci ram, wiec stan wyjsc pozostaje niezmieniony. Tylko reset powoduje ustawienie we/wy w stan highz, ale nie powoduje wyczyszczenia zawartosci pamieci,. Przydaje sie to np. przy wybudzaniu z trybu power down przy pomocy watchdoga.
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_...
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...
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 wrażenie, że kolega ma uraz do AVR... A producent idzie naprzód i procesorki z bugami są wycofywane z produkcji. Do kompletu wbudowano konfigurowalnego watchdoga, rejestr źródła resetowania, wszystko kwestia chęci, a złej baletnicy to i rąbek u spódnicy, taka to musi się dowartościować strojem za kilka kPLN... ;) -- Pozdrawiam, Daniel
No fakt... w tej nocie dość mocno była zakamuflowana informacja o RC, stąd jej nie widziałem. Jednakże.. kurcze nadal mi coś nie działa. Nie wiem czy dobreałem dobre parametry (wg noty dobre). Zastosowałem rezystor 10K oraz kondensator 22pF (próbowałem również 100uF). Nie wiem co może być jeszcze nie tak.. Oczywiście wyprowadzenie do RC podpiąłem pod...
jeśli nastąpi reset to i tak mam zresetowane wszystkie rejestry prócz licznika watchdoga więc to chyba nie problem, mój program po przejściu w tryb uśpienia nie musi pamiętać danych w RAMie. Przepisze program wg rad i wrzuce jutro na procka, zobaczymy co on na to :) Dziś zajmuję się innym projektem 9 a przynajmniej miałem takie nadzieje) Pozdrawiam...
"WDTO_500 to raczej zmienna niż funkcja" wiem, ale tak mi pisze kompilator, więc pytam co jest nie tak? Jaki rejestr przechowuje informacje o restarcie przez watchdoga?
Witam. Artykuł ten pisałem z myślą o wszystkich, którzy dopiero zaczynają swoja przygodę z magistralą TWI (czyli magistralą I2C) w procesorze Atmega8. Jest to program-szkielet, w który trzeba wpisać własne funkcje i procedury i wykorzystać gotowe procedury do komunikacji w magistrali TWI. A na praktyczne zastosowanie magistrali TWI zapraszam na: http://www.elektroda.pl/rtvforum/topic13...
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ć...
Domyślnie jeśli Watchdog jest włączony cały czas to po resecie ma domyślnie ustawiony czas 16ms (bity WDP2..0 w rejestrze WDTCR są zerami) Zatem układ wciąż ci się resetuje po pierwszym przebiegu. Żeby się tego pozbyć wklej sobie przed funkcją main() coś takiego static void __init3( void ) __attribute__ (( section( ".init3"...
Witajcie! Wpadłem na ten topic, bo interesuje mnie ten sam problem, co prawda na PIC10F206 i liczby od 0-256, ale zagadnienie jest podobne. PIC10F206 ma wewnętrzny oscylator RC 4MHz - myślałem o tym aby zastosować jakąś sieć połączeń (kombinacji) w zależności od jakiegoś jednego bitu. Tym bitem mógłby być LSB jakiegoś rejestru - w momencie zatrzymania...
https://obrazki.elektroda.pl/4201808000_... Omawiany projekt zaczął powstawać w pierwszej połowie 2022 roku, a dojrzałość osiągnął kilka miesięcy później, choć nie nazwę go jeszcze skończonym! Motywacją była chęć skutecznego zapamiętania przebytych tras w górach, a także zdobycie materiałów pozwalających wprowadzać poprawki i uzupełniać...
Witam wszystkich, proszę o pomoc w rozwiązaniu problemu w kodzie w języku C ale ze wstawką asemblerową. Poniżej zamieszczam kod. [syntax=c]/* * main.c * * Created: 2/14/2022 1:11:10 PM * Author: Maciej */ #include <xc.h> #include <avr/wdt.h> #include <avr/interrupt.h> #include <util/delay.h> #define WDT_ENABLE ISR(WDT_vect)//przerwanie...
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...
Czy używasz WatchDoga czy go przypadkiem nie włączyłeś na stałe (FuseBits)? Możesz odczytać stan rejestru MCUSR aby sprawdzić co było przyczyną resetu.
Witam, Opcje te można dodać podczas "linkowania" programu, czyli np: $(MF).elf: $(MF).o $(OBJECTS) $(CC) -Wl,-Ttext,0x1e00 -nostartfiles -nodefaultlibs -o $(MF).elf $(MF).o $(OBJECTS) . W większych AVRach możesz ustawić wektor resetu na bootloader, i wtedy musi być tam osobna inicjalizacja...
Program bez watchdoga zasadniczo zawieszac sie nie powinien - jezeli robi to regularnie albo bardzo czesto to znaczy, ze problem jest w Twoim sofcie albo w wadliwym ukladzie (zasilanie, prowadzenie masy, odsprzeganie zasilania - mikrokontroler natomiast na pewno jest w porzadku). Watchdog jest dodatkowym zabezpieczeniem w razie jakichs bardzo niezwyklych...
wyłączenie watchdoga układ watchdoga reset watchdoga
ochrona zakłócenia podstawa konstrukcja maszyna elektronika motocykla
Odtwarzanie filmów z pendrive przez USB w telewizorach – marki, formaty, obsługa plików Pierwsze ładowanie baterii Li-Ion – jak prawidłowo ładować nowe ogniwa