Jest jakiś powód dla którego używasz WWDG (okienkowego watchdoga) a nie IWDG? WWDG zresetuje układ jeśli wartość licznika spadnie poniżej 0x40 lub kiedy uaktualniasz licznik, ale jego wartość podczas aktualizacji jest większa niż to co zapisałeś do CFR. Do CFR zapisałeś 1. Więc masz "wieczny reset". Zainteresuj się IWDG lub zapisz do CFR jakąś sensowną...
Jakoś czarno to widzę- nawet jak jest $noinit to i tak kasuje watchdoga. W Bascomie. Może jakoś zrobić swoje $noinit_1 swoje. Ale jak- to nie wiem. Wystarczyło by usunąć polecenia kasowania watchdoga.
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.
Watchdoga musisz kasować co chwilę Nie musi. Po resecie program ma wstać a w tym przypadku kontroler się zawiesza.
nie wiem czy rozumiesz idee działania watchdoga. Program wyskoczy z pętli do loop i się zresetuje a nie pójdzie dalej. A jęsli chodzi o te procedury co opózniają ci watchdoga to zapewne jak byś zaglądnął do ich wnętrza to zobaczyłbyś zapewne kasowanie watchdoga.
0 : Hardware independent watchdog Czyli watchdog uruchamiany sprzętowo, nie musiałeś go uruchamiaś programowo żeby działał i resetował. Żeby to sprawdzić wystarczyło w pętli umieścić kasowanie watchdoga i byłbyś w domu.
No tak, bo ATmega8 nie ma portu A. w pliku delay.h w funkcji delaj_ms() jest odwołanie do portu A (zresztą jest w opisie tej funkcji informacja o kasowaniu watchdoga),poprostu te dwie linijki usuń, nie są Ci potrzebne.
Mozesz sprobowac za pomoca watchdog'a. Wada jest to ze reset nastapi dopiero po min. 16ms Config Watchdog = 16 Start Watchdog watims 20 'oczekiwanie na reset z watchdoga Masz do dyspozycji jeszcze polecenia: Stop watchdog - zatrzymanie Reset watchdog - kasowanie Zamiast 'waitms 20' mozesz tez dac jakies polecenie "usypiajace" procesor (IDLE, POWERDOWN)
Nie chodzi mi o assembler i język wysokiego poziomu. Chodzi mi o to że ktoś chce usunąć przydatny algorytm byłe tylko program był łatwy do zrozumienia (niezależnie czy będzie w assemblerze czy w wysokim poziomie). Chodzi mi o kasowanie WatchDoga w każdym możliwym momencie, najlepiej w co drugiej linijce programu. Przecież to najgłupsza rzecz jaką można...
Nie bardzo wiem jak mam temat rozwinąć - po prostu - mimo uruchomionego watchdoga procesor wiesza się i nie resetuje. Kasowanie watchdoga w petli głównej, czas przeładowania ok. 1 sek., czas 'obrotu' pętli głównej ok. 0.25 sek. Podczas transmisji - jeżeli wystąpi błąd - procesor wiesza się i nie resetuje i tyle(pętla główna programu nie wykonuje się)....
Jeżeli masz watchdog ustawiony na stałe a brak w programie jego kasowania to tu może być przyczyna. Pzdr. N.
Czyli wyłączenie WatchDoga jest na takim samym poziomie bezpieczeństwa jakie zapewnia sam WatchDog, bo zawsze można wyobrazić sobie takie działanie programu że WatchDoga jest kasowany a jednak program nie działa zgodnie z naszym zamiarem.
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ć...
Jeżeli masz kwarc 8MHz to potrzebujesz aby wszystkie układy MC68xx były wersjami 2MHZ (sygnał z generatora /4). Wersje 2MHZ to wersja z literą B w środku oznaczenia, czyli potrzebujesz procesor MC68B09 lub zamiennik EF68B09 port I/O MC68B21 lub zamiennik EF68B21 zegar MC68B40 lub zamiennik EF68B40 Układ Watchdoga jest kasowany poprzez procesor poprzez...
no wlasnie RAM jest kasowany!
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.
Mimo tego poszukam mostka, który posiada tą funkcje ponieważ tak _lazor_ napisał: Dokładnie chodzi o sterownik półmostka, czyli "half bridge driver", taki sterownik z natury rzeczy (taką ma wewnętrzną logikę) nie jest w stanie załączyć obu tranzystorów jednocześnie, ponadto podczas ich przełączania stosuje pewien "dead time", który zabezpiecza półmostek...
Witam; mam pewny dylemat. Zastosowałem watchdoga z największym preskalerem /1024. W Atmega644P licznik watchdoga jest taktowany z częstotliwością 128KHz. Czy zatem reset watchdoga nastąpi po 1024/128000 sek , czyli co 8ms? Czy nie da się ustawić go aby się kasował po kilku sekundach?
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...
Nie kojarzę jak to jest w STM ale w AVR po resecie zrealizowanym przez WD rejestry konfiguracyjne WD nie są kasowane - tj. watchdog od momentu startu kodu działa tak jak został zaprogramowany przed resetem i czeka na komendę WDR albo wyłączenie. Jeśli ktoś tego nie uwzględni w kodzie to po resecie od WD mikrokontroler potrafi wpaść w pętlę resetowania...
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...
Poprawiłem tytuł na bardziej oddający problem i zgodny z regulaminem p. 3.1.15. LordBlick Jestem początkującym w języku C i ogólnie w programowaniu procesorów.Dlatego prosze o wyrozumiałość. Chciałem zrobić timerek zasilany z baterii, który co 8sek ma zmienić stan portu. Przymierzam się do zastosowania trybu Powerdown, ale najpierw muszę poradzić sobie...
Po podłączeniu LCD4BUSY wydaje się działać troszkę lepiej. Zastanawia mnie tylko : Dlaczego na M8 działa bezproblemowo a na M168 nie? I dla czego jeśli Uc jest kasowany przez WATCHDOG to nie zawsze dobrze się uruchamia, jeśli natomiast skasuje resetem to odpala za każdym razem? Cały program do M168 zajmuje 71% przy kompilacji. Jeśli dołożę coś do kodu,...
jeśli chcesz sprawdzać program w wielu miejscach to zastosuje flagi ustawiane w punktach kontrolnych a ustawienie tych flag sprawdzaj w procedurze obsługi Watchdoga. Możesz wtedy sprawdzić obecność w wielu punktach i wyzerować (lub nie) timer, z wyzerować wszystkie fagi. Wtedy procedura nawet dobrze jak byłaby obsługiwana w przerwaniach zegarowych...
Przerwanie od WD TRZEBA włączać za każdym razem przed komendą SLEEP bo wejscie w przerwanie automatycznie kasuje bit który zezwala na przerwanie i następny okres WD po prostu bez tego zresetuje uC. Tak jest w trybie Interrupt+Reset, wtedy pierwsze przepełnienie odpala przerwanie a drugie i następne reset. W trybie Interrupt bit WDIE nie jest kasowany....
Ustal z czego się bierze wpis w tabeli watchdog i usuń przyczynę. Kasowanie takiej ilości rekordów poprzez delete to też średni pomysł, zabawa n tyle ciekawa że myadmin dostanie timeouta tak że przed tym pomysłem ostrzegam. Czyść watchdoga z Crona skryptem PHP. Jest jeszcze jeden porblem dla którego trzeba trzymać drupala za pysk przy tabeli Watchdog....
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...
Myślę że gdybyśmy niezbędną część instalacji zrobili w kablu, oparli to na standardowych, istniejących od lat rozwiązaniach (styczniki, jakaś PROSTA automatyka typu włącz/wyłącz), to nawet mało trafny wybór rozwiązania wireless nie przysporzy większych problemów w przyszłości z jego wymianą. Bo np przykład prostego oświetlenia. Zasilanie lampy przez...
Witam! chciałbym użyć watchdoga w mojej aplikacji. Program działa tak, że jest sobie pętla główna programu i wykonywane są w niej pewne rzeczy a pozostała część działa na przerwaniach. Watchdoga chciałbym resetować w pętli głównej tak aby zawieszenie programu w procedurach obsługi przerwań również powodowało resetowanie procesora. Problem jaki napotkałem...
jeśli byłby to bug programowy to po resecie uC powinno znów działać tak?:) Niekoniecznie, również zależy od kodu - pamięć RAM nie jest kasowana, co więcej bardzo prosto jest obsłużyć powrót z reset-u watchdoga niezauważalnie dla użytkownika.
Chciałem podziękować koledze Adamowi, ale program który podesłał nie do końca ruszył, jednak jego pomysł naprowadził mnie na rozwiązanie i bardzo mu dziękuję za pomoc, dokonałem tylko drobnej kosmetycznej zmiany w programie i ruszył, odczytuje kod i wystawia go na portb, i trzyma tak długo ustawiony dopóki nie przyjdzie kolejny, jeżeli chcemy go kasować,...
Watchdog to taki licznik który się inkrementuje i jak dojdzie do końca licznika to generuje reset mikrokontrolera. W swoim kodzie musisz umieścić procedurę kasowania licznika w czasie krótszym niż czas potrzebny na przepełnienie licznika Watchdog. Jak główny program z jakiegoś powodu nie zdąży skasować licznika (np. program się zawiesi) to całość się...
A nie jest tak, że watchdog Ci wywala program? Że masz gdzieś na granicy kasowanie go i dla jednej częstotliwości zdąży, a dla innej już nie?
Tak ale nie jestem pewny jak sam się odblokuje jak będzie już zablokowany wtedy żadna funkcja w Arduino nie działa i całe program jest nie aktywny. Nie wiem jak to by miało się odblokować chyba że to daje co jakiś czas impulsy Resetu w trakcie działania Arduino ale wtedy w moim przypadku by za często się testowały pompy i zawory bo przy każdym uruchomieniu...
Wszystko słusznie ale czemu tak przywiązałeś się do tego bitu WDCE który jest używany tylko jako zabezpieczenie przed przypadkową modyfikacją rejestru WDTCSR. Zwróć uwagę na WDE - jego opis oraz parametr "Initial value" w tabelce. Ten bit nie jest domyślnie kasowany przy resecie a to oznacza, że po resecie watchdog dalej działa ale już z czasem time-out...
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,
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ć...
Włączenie po padzie prądu to najmniejszy problem - pomoże kondensator podłączony równolegle do przycisku 'Power'. Jego pojemność musisz dobrać doświadczalnie - przy zbyt małej komputer się nie włączy, przy zbyt dużej włączy się i za chwile wyłączy. Szukaj w okolicach 22uF. Reset po zawieszeniu się to już trudniejsza sprawa. Do głowy przychodzi mi prosty...
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...
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...
Trochę dziwnie napisałeś ten program, pozwoliłem go sobie trochę przerobić. Sprawdź konfigurację portów żebyś nie uwalił sobie procka, i napisz czy poniższy program rozwiązał Twój problem. Kod: [syntax=basic4gl] 'Tester napiecia na AVR ' ' - zegar wewnetrzny 1 MHz ' - górny fuse bit D9 ' - dolny fuse bit E1 'procesor ATMEGA8 $regfile = "m8def.dat" $crystal...
Mirek nie zrozumiałeś mnie. Doskonale wiem jak działa watchdog. Problem dotyczy tylko sytuacji gdy wdr nie resetuje procka lecz wywołuje przerwanie. Pytałem, czy licznik watchdoga dolicza do maxa ,wywołuje przerwanie a potem liczy od zera, czy też licznik pozostaje przepełniony do czasu jego skasowania poprzez wdr ? Jeśli watchdog robi reset procka...
Jeśli WatchDog jest domyślnie wyłączony to ja go nie konfigurowałem. Także fusebit WDTON jest nie ustawiony. Z resztą: Pragnę zauważyć, że kasowanie bitów WDE i WDIE należy przeprowadzić operacją AND na zanegowanych bitach.
Według mnie sam nie powinien, choć aż tak dobrze BASCOMa nie znam. Intencją tworzenia watchdog'a było jego kasowanie wyłącznie przez użytkownika. :)
Ok. A czym w takim razie różnią się od siebie te dwa zapisy ? ADC1->SR &= ~(1<<0); ADC1->SR &= ~ADC_SR_AWD; gdzie ADC_SR_AWD jest równe 0x01 a zresztą nie działa mi kasowanie przerwania w żadnym z tych przypadków, dodając również opóźnienie czasowe o różnych wartościach aby dać mu czas na reakcję. Wchodzi mi w przerwanie nawet jeśli...
89s52 - 8kB flash (max 1000 cykli zapisu/kasowania), 256B RAM, max 33Mhz, Ic 25mA(at)12Mhz, programowanie ISP, 3 liczniki 16-bitowe, UART, Watchdog, 2 przerwania zewnętrzne. lpc1111 - 8kB flash (max 100000 cykli zapisu/kasowania), 4kB RAM, max 50MHz, Ic 3mA(at)12MHz, programowanie ISP i IAP (wbudowany bootloader), 2 liczniki 32-bitowe i 2 16-bitowe,...
AVE... Przyczyną błędów kompilatora jest to, iż on nie zna prawidłowych nazw rejestrów wewnętrznych mikrokontrolera. Ten fragment: Error [192] F:\USBtest\usb_device.c; 722.1 undefined identifier "PKTDIS" Error [192] F:\USBtest\usb_device.c; 902.5 undefined identifier "SE0" Error [192] F:\USBtest\usb_device.c;...
Witam próbuje napisac program w asemblerze, aby zaprogramowac PICa. Program, na poczatku ma rozpoznawac zrodlo resetu i w zwiazku z tym wykonac odpowiednie zadania( w zaleznosci od tego czy byl reset, wlaczenie zasilania, czy watchdog doliczyl do zera lub czy zostalo wlaczone ktores z wejsc, mikrokontroler ma pozostac w wiekszosci czasu w stanie sleep.)...
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>...
Się wgłębię, żeby nie było wątpliwości. Kod: CONFIG WATCHDOG = czas gdzie: czas czas w milisekundach po jakim układ WATCHDOG uaktywni sygnał reset procesora. Możliwe są wartości: 16 , 32, 64 , 128 , 256 , 512 , 1024 oraz 2048. Więc rzeczywiście mamy 2s. Jak teraz oszukamy procka i ustawimy wolniejszy kwarc to owszem, może i rzadziej się wybudzi, ale...
Watchdog nie zawsze zadziała tak jak powinien. Dlatego są do tego celu specjalne zewnętrzne układy jak DS1813 (odnośnie zasilania) . Proponuję w fusebitach włączyć układ Brown-out Detection i ustawić na 4V. Jeśli chodzi o lcd to może zawiesić się także sam wyświetlacz , dlatego u mnie mam możliwość odcięcia zasilania i ponownej inicjalizacji podczas...
Skoro musiałeś usunąć fragment plików startowych c, żeby dało się skompilować kod, to znaczy, że coś mocno jest nie tak. W dodatku usunąłeś fragment odpowiedzialny za inicjalizację zmiennych, więc raczej istotny. To mogłoby tłumaczyć problemy. Reset z WD jest tożsamy z resetem przez pin RESET, czy BOD, jedyna różnica to inne ustawienie bitów sygnalizujących...
poprowadzi mnie ktoś za rączke przy uruchomieniu psa w s52? (asembler) całkiem od podstaw, tzn poczytałem troszkę o zerowaniu licznika i wiem żeby nie umieszcać tego w prodedurze przerwań. Mam kilka pętli, główną i kilka "obok" w których ustawiane są parametry pracy, oraz wykrywanie błędów. W sumie jest ok 4 króciutkich pętli i można by było tam umieścić...
No wpuszcza bo ci się noty nie chce czytać. Po pierwsze jeśli WD resetuje procesor to należy zrestetować flagę WDRF, czego nie robisz. WD po resecie jest ciągle aktywny, z tym, że z minimalnym czasem do ponownego resetu. Stąd też kasowanie WDRF i konfiguracja WD musi się odbyć możliwie szybko, inaczej wpadasz w nieskończoną pętlę resetów, co zresztą...
movlw 0xC8 movwf option_reg W tym momencie podzielnik przypisałeś do watchdoga, nie do TMR0. (oczywiście kiedy trzeba kasujesz T0IF ?)
http://obrazki.elektroda.pl/9328566700_1... Dawno temu kolega namówił mnie do zrobienia komputerka. Nie jestem elektronikiem ale umiem pisać programy. Poczytałem trochę i zrobiłem prosty komputer wyświetlający podstawowe funkcje. Płytkę zrobiłem Positivem a soft napisałem w Bascomie. Potem była wersja kolejna, trochę rozbudowana na...
zamiast psuc ci komorke o adresie 0 psuje ci losowa komorke pamieci EEPROM. Male pocieszenie. Wydaje mi się, że w zamyśle projektantów było ulepszenie rdzenia AVR i dlatego po resecie wartość rejestru adresowego nie jest zerowana. Jest ona niezdefiniowana tylko po POR, natomiast kiedy watchdog resetuje rdzeń, to zarówno wartości w RAMie (sekcja .noinit)...
A ni jest tak, że włączenie silnika i wogóle pracujący silnik czasami resetuje ci procka? Daj długi delay na początku to szybko to zauważysz. Nie masz włączonego watchdoga którego nie kasujesz? Czy masz dobrze skonfigurowane rejestry od przerwań? Może włączyłeś jakieś przerwanie a nie zrobiłeś jego obsługi? Może nie masz podciągnięcia na wyjściu sterującym...
Witam Mam dziwny problem i nie wiem jak go rozwiązać. Nie wiem co źle robię. Ale do rzeczy. Mam programator Willem PRO 2 i programuje nim mikrokontroler pic16f84a. Zacząlem zabawę z pic od najprostrzego programu jaki może byc czyli od zapalenia diody Mój banalny programik :) #include <pic.h> void main() { TRISB=0; RB4=1; RB6=1; } Wszystko elegancko...
Witam. Napisałem następujące podprogramy: .EQU POCZATEK_PROGRAMU_H = 0x00 .EQU POCZATEK_PROGRAMU_L = 0x90 .EQUPROGRAM_WSK_H= $60 .EQUPROGRAM_WSK_L= $61 PROGRAMOWANIE_: CLI;blokada przerwania LDI R20, KOM_BRAK_ROZKAZU // kasowanie rozkazu LDS XH, PROGRAM_WSK_H ;pobranie aktualnego adresu wskaznika programu LDS XL, PROGRAM_WSK_L KOM_PROG_: WDR;zerowanie...
Witam cytat z noty : Note: If any other bit in this register apart from ADON is changed at the same time, then conversion is not triggered. This is to prevent triggering an erroneous conversion. Powinieneś bit ADON ustawiać na samym końcu, a ty jeszcze zmieniasz JEXTSEL potem i wyzwalanie ADC zostaje wyłączone, Pozdrawiam, Łukasz W nocie również napisano:...
Zasil układ z pominięciem transformatora ze stab. 5V. Jeżeli problem w wtedy nie występuje to coś masz nie tak w tym zasilaczu. Poza tym trochę duże te kondensatory, zmniejsz je daj np może ok. 220uF przed stab. i 47uF za stabilizatorem. Wtedy czas narastania napięcia powinien się poprawić. Sprawdź go na oscyloskopie i czy napięcie jest stabilne. Ogólnie...
(at)osctest1 Uprościłem to po swojemu, może trochę dziwnie ale działa. .xram [syntax=c] ## Intel Hex file production flags HEX_FLASH_FLAGS = -R .eeprom -R .fuse -R .lock -R .signature -R .xram [/syntax] Kompilator utworzył tablicę 13200 bajtów. Program dział i mam dostęp do zewnętrznej pamięci ram. [syntax=dos] .xram 0x00801100 0x3391 .xram 0x00801100...
W przypadku programów typu bare-metal istnieje gdzieś w kodzie nieuchronnie ogromna pętla while (1), która zawiera niemalże całą logikę całego projektu. Każda operacja w niej wywołuje jedną lub więcej funkcji opóźniających i są one wykonywane szeregowo, gdy CPU uruchamia funkcję opóźnienia, pozostałe operacje muszą czekać. W ten sposób większość czasu...
Tutaj tak było "od nowości", więc póki co zostawiłem ;) U siebie zwykle IWDG odświeżam w tasku, który m.in miga systemowym LEDem i generalnie ma on najniższy priorytet, więc jeśli coś go zagłodzi, czyli całość się nie wyrabia, to wtedy jest reset. Choć z tego co czytam, to takie podejście też im się nie podoba ;) No bo ono tak samo nie wykryje wielu...
Źle się wyraziłem. Nie wiedziałem jak watchdog zlicza te liczniki i czy można je od tak sobie odczytać, czy kasują się po resecie. Nadale nie bardzo wiem? Czy chodzi o licznik watchdoga czy o licznik zrobiony programowo w backupdomain?
Witam, Jako że tamat podobny, to się pod niego podepnę. Kilka lat temu zrobiłem podobne urządenie. Nie był to jednak piórnik, a zegarek na rękę z notatnikiem. To był rok 2000. Części wówczas jeszcze dość drogie nie pozwoliły uprościć urządzenia tak jakby sie chciało. Braki doświadczenia, wiedzy i warunków również dały znac o sobie;) Koszt elementów...
Witam. Napisałem program sterujący pracą silnika prądu stałego do którego podpięty jest enkoder inkrementalny (najważniejsze części programu poniżej). Mój problem polega na tym, że gdy mikrokontroler zaczyna wykonywać program ruch_osi_ ma 2 możliwości: czekać określony czas, jechać do określonej pozycji. Część programu odpowiedzialna za postój i przerwanie...
Więc jeśli mruga ciągle, to prawie pewne jest, że program nie zostaje w ostatniej pętli while(1). I dlatego podejrzewam watch_dog'a. Można spróbować to sprawdzić. W ostatniej pętli while(1) należy dodać instrukcję kasującą watch_dog. _asm wdr _endasm Nie wiem tylko, czy Twój kompilator rozpoznaje te dyrektywy. Jeśli działanie programu się zmieni, to...
Mam jeszcze jeden problem. Chciałem zaoszczędzić trochę energii i wykorzystać bibliotekę problem mam z odbiornikiem :cry: . Chciałem to ogarnąć poprzez wbudowany Watchdog ale chyba mnie to przerosło. Po starcie odbiornik usypia i budzi się jak trzeba do momentu wykrycia sygnału. Po wykryciu sygnału nie wiem jak go uśpić. Czy w odbiorniku dało by się...
Dzięki Rocket_93. Bardzo podobnie to sobie wyobrażałem. Z tego co rozumiem to już na attiny2313 zmieści się prosta obsł. usb i zostaje jeszcze coś na główny program? Do Twojego pomysłu dodałbym jedynie logowanie zdarzeń( resetów), udostępnianie i kasowanie logów. Tyle że tutaj czasomierz potrzebny. I wydaje się że już można zacząć diełać;) Oczywiście...
Na pewno da radę, po to są modułu Caputer/Compare. Nie bardzo rozumiem pytanie (...) W nocie katalogowej jest to tak narysowane, że trzy moduły Compare są takie same - zatem 3 wyjścia mogą niby pracować jako trzy niezależne generatory impulsów. Niestety przy rysunku opisującym tryby wyjściowe zawsze występuje wartość brana z TACCR0, która to jest tą...
http://obrazki.elektroda.pl/7154876600_1... Boberov Unbelievable Boot Loader V0.1 2013 Na wstępie skrócone informacje na temat projektu którego szerszy opis znajduje się w dalszej części tekstu. Program bootloadera przeznaczony jest dla ATMEGA8 (po minimalnych zmianach każdy AVR z wystarczającą ilością pamięci), umożliwia programowanie...
https://obrazki.elektroda.pl/7853440200_... *Icebox thermostat* jest termostatem do lodówki zawierającym mniej i bardziej wymyślne funkcjonalności, przy czym większości z nich z pewnością nie znajdziecie w pospolitych termostatach. Zostały uznane za całkowicie zbędne i pozbawione sensu ;) Konfiguracji termostatu dokonuje się bezprzewodowo...
Witam, Możecie spojrzeć na ten kod (poniżej?) Problem jest taki że co bym nie robił zdarza się w niektórych wsadach że jakaś strona pamięci zostaje zapisana samymi 0xFF. (wgrywam wsad potem sprawdzam programatorem poprawność). Procesor Atmega32; 4mhz (RC); UART 9600 ////////////////////////////////////////... /*...
(at)ElektrodaBot jak pobrać wsad mikrokontrolera ATtiny3224-SSF za pomocą HV UPDI Friend? Podaj oprogramowanie (preferowane darmowe) i procedurę działania. Bezpośrednia odpowiedź Aby odczytać zawartość pamięci Flash (i EEPROM) z ATtiny3224-SSF przy pomocy programatora Adafruit HV UPDI Friend: 1. Zainstaluj bezpłatne narzędzie AVRDUDE ≥ 7.1 (lub alternatywnie...
Witam noi po zainstalowaniu tego ,programator wogle przestal wspolpracowac musialem od nowa system instalować po zainstalowaniu wyskakuje taki sam komunikat jescze jedno pytanie w MkCalculator jako lock bits pokazuje mi 0x3F a w AVR dudes pokazuje external jako 0x05 czy lock bits nie powinien byc na 0x0F Dodano po 14 Widze ze odpowiedzi brak pewnie...
https://obrazki.elektroda.pl/4082468000_... Firma STMicro zaprezentowała nowy układ, korzystający z mało znanego rdzenia z rodziny ARM SecurCore. Dedukowany jest do kart inteligentnych i wbudowanych aplikacji zabezpieczających. ARM SecurCore SC000 (rodzina oparty na Cortex-M0) i ARM SecurCore SC300 (oparta na Cortex-M3) istnieją od...
Dzien dobry. Piszę bootloader do procesora atmega32. Bootloader ma dzialać w terminalu więc konwersja ascii -> hex jest przeprowadzana w mikrokontrolerze. Po uruchomieniu, program ładnie się przesyła, wszystko wydaje się być OK. Po resecie jednak nic się nie dzieje. Skopiowałem całą zawartość pamięci i zauważyłem, że drugi bajt jest nieprawidłowo...
https://obrazki.elektroda.pl/5544033600_... https://obrazki.elektroda.pl/2010211500_... https://obrazki.elektroda.pl/7671572300_... https://obrazki.elektroda.pl/6226525300_... Dzień Dobry Wieczór, Chciałbym kolegom zaprezentować mój projekt. Opis podzieliłem na kilka części, także...
Przerobiłem kod z linka i działa [syntax=c]/*****************************... * Fotorezystor - przeróbka z czujnika wilgotności z * http://100-x-arduino.blogspot.com/2016/0... * * !!!ta procedura nie zatrzymuje programu przy braku sieci wifi!!! ****************************************...
Zmodyfikowałem nieco swój program i dodałem komentarze (może okazać się, że jestem jakimś trollem mikrokontrolerowym więc dopisałem co chciałem zrobić, w której linii, żeby ułatwić ew. wyłapanie tych błędów. Teraz wszystko ładnie się wyświetla, ale ... nie tak jak powinno. Zamiast alfabetu widzę zera, strzałki i inne krzaczki. Proszę o pomoc ;] #include...
1.Przegląd Rodzina PIC18F97J60 ( https://obrazki.elektroda.pl/9267456000_... 2.Podstawowe funkcje 2.1 Opcje i funkcje oscylatora Wszystkie urządzenia z rodziny PIC18F97J60 oferują pięć różnych opcji oscylatora, zapewniając użytkownikom różnorodne możliwości rozwoju sprzętu aplikacyjnego: 1.Dwa tryby Crystal, odpowiednie dla kryształów...
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...
nie pamiętam bardzo testowałem to na konkretnej pompie dotąd aż za bardzo sie nie grzała a podawała prawidłowo paliwo podaje kod jakiś znalazłem z pierwszych prób może się ktoś pokusi o poprawki jeszcze kilku zapaleńców i można by wrócić do projektu chociaż czasu brak Dodano po 16 Jednak teraz bym pozmieniał elektronikę gdyż dużo zależny od tranzystorów...
Witam Kolegów Ostatnio zachciało mi się zmienić podejście do tworzenia menu. Do tej pory realizowałem je na konstrukcjach switch-case. Jednak ten sposób jest dość uciążliwy, jeżeli menu ma być mocno rozbudowane, ma posiadać submenu itp. Postanowiłem dokonać przesiadki na bardziej przyjazny sposób tworzenia menu. Odpowiedź była jasna: tablice, struktury...
z oryginalnym V(0.1.4) sflashowałem BK7231U do 0x11000 używając EF https://obrazki.elektroda.pl/2719566100_... OTA wydaje się nadal działać:
Witam, temat stary ale z uwagi na to iż sam miałem z nim do czynienia a co ważniejsze udało mi się jakoś go rozwiązać to żebym sam np. za rok nie musiał od nowa sobie przypominać jak to zrobiłem to napiszę tu :) 1. Wgrywamy do procka następujący program: cli ; istotne z uwagi na możliwe zezwolenie od watchdoga ldi temp, 0b10000000 ; zezwolenie na zmiane...
Witam, Bazuje na projekcie ze strony Freddie Chopin dla stma F4 z dodanymi bibliotekami STM32F4xx_StdPeriph_Driver. Zdefiniowałem sobie konfigurację timer'a w następujący sposób: [syntax=c]void Timers_Config(void){ RCC_APB2PeriphClockCmd(RCC_APB2Periph_TI... ENABLE); NVIC_InitTypeDef NVIC_InitStruct; NVIC_InitStruct.NVIC_IRQChannel = TIM1_CC_IRQn; NVIC_InitStruct.NVIC_IRQChannelPreemptio...
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...
Witam, Borykam się od pewnego czasu z problemem bliżej nieokreślonym. Oczekiwane działanie opisałem poniżej: Mikrokontroler (ATmega2560, umieszczona na płytce "chiński klon arduino") ma podłączony zestaw przycisków do wejść, oraz 8 diod led dla sygnalizowania statusu z drugiego mikrokontrolera. Ta płytka ma stanowić pilota, więc zmiany stanów na wejściach...
Jak kogos interesuje PLL na TSA5511 umieszczony jest jak projekt nr. 8 ("Generator VCO z pętlą PLL") http://www.elektroda.net/radio/piraci/pi... sam kontroler na atmelku mozna uzyc tez do projektu nr 1 ("Kompletny nadajnik 80W z pętlą PLL") - autorstwa Radio Slash zamiast epromu. Wymagany jest wtedy kwarc 3.2MHz przy petli PLL. Pomija sie wtedy...
Witam , mam nadzieję iż nie zanudziłem bez reszty.. W zestawieniu z moimi "dokonaniami asm." kolega michalko12, jest najbliższy temu co ja kiedyś robiłem . Oto wersja asm z przełącznikiem kompilacji aby kompilować jako samodzielny plik - kto chce ->ten może :D ( ta wersja to 16-timerów, 16-nasto bitowych, każdy cztery tryby konfiguracji, oczywiście...
Witam, Program ma na celu zmierzyć amplitude impulsu PWM, wypełnienie i częstotliwość. O ile z pomiarem wypełnienia i częstotliwośći nie mam problemu, to pomiar amplitudy nie do końca działa. Szczegóły: PWM 1 kHz. 5 < D < 95 % Na zboczu narastającym sygnału PWM uruchamiany jest TIM3 który trigeruje co 10 us pomiar ADC, które poprzez DMA zapisuje...
reset watchdoga watchdoga atmega wyłączenie watchdoga
ekran niebieska linia samsung obrazu głos poszukuje schemat wzmacniacza
sonatina schemat wymiana moduł
Iskrzenie w wkrętarce Makita - przyczyny i rozwiązania Migający czerwony LED w pompie C.O. Grundfos, Wilo, LFP – przyczyny i diagnostyka