WAIT 2. faktycznie - juz poprawione Mój ulubiony "kwiatek" :) Gosub Wybor Wybor: Potem mamy masę gosub'ów bez poprawnego wyjścia. gdybys konkretnie wyjasnil co jest nie tak. To nie watchdog tylko przepełnienie stosu. Chociaż i watchdog może w kilku przypadkach resetować, zwłaszcza tam gdzie jest Jak nie ma włączonego watchdoga program staje w miejscu...
Wpisanie w watchdoga każdej innej liczby niż 2048 czyli 2 sekundy nie daje żadnego rezultatu. Takie kwiatki to tylko w sprytnej wiedzy użytkowników Bascom wyskakują... W rejestrze Watchdog-a, który jest 8-bitowy nie wpiszesz większej liczby niż 255. Można jedynie ustawić konkretne, zaprojektowane z góry przez twórców mikrokontrolera czasy licznika....
A czy to też nie działa : Config Watchdog = 16 Start Watchdog Disable Interrupts być może Bascom odblokowuje przerwania w starcie watchdoga?
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...
Bascom sam się nie zajmie resetowaniem Watchdog'a, jak słusznie zauważył Holy . Żeby z niego skorzystać najpierw trzeba go skonfigurować (ustawić stopień podziału - od tego zależy czas potrzebny na przepełnienie jego licznika) poleceniem CONFIG WATCHDOG = czas , później uruchomić: Start Watchdog . Teraz w newralgicznych punktach programu musi zostać...
Funkcje wait (waitms) w BASCOM nie blokują i nie resetują watchdoga. Wyłączanie watchdoga w czasie odczekania może prowadzić do sytuacji, gdy wchodzące w tym czasie zakłócenie zablokuje nam na stałe procesor. Dlatego lepiej wstawić pętelkę z resetowaniem watchdoga i zostawić watchdog włączony: for i=1 to 3 reset watdog wait 1 next
Program piszę w kompilatorze BASCOM_AVR
czy używasz A(akumulator) świadomie(świadczyło by o tym użycie komendy asemblera inc). Jeżeli robisz to przypadkowo to może tłumaczyć dlaczego ci się proc resetuje. Daj dłuższe nazwy(jak ala zamiast A). Może uC ma włączonego watchdog'a?
... Wpisałem bezpośrednio de rejestru WDTCR wartości bitów podane w dataschet a efektu brak, wpuszczam program w pustą pętlę i nie resetuje się procek... A "pochwalisz" się tymi wpisami ;)? Po czym rozpoznajesz że procesor się resetuje?
Powinieneś tak napisać program, aby taki reset nie był potrzebny a jeśli upierasz się przy tym to wykorzystaj WATCHDOGa. a jak wprowadzisz procek w tryb bootloadera (myślałem, że tego chce autor)? Jeśli chcesz resetować procka to faktycznie najłatwiej watchdogiem.
Witam. Zadaniem urządzenia jest głównie odpowiadanie na słowa przychodzące na UART, co oznacza, że program większość czasu "wisi" na poleceniu input. Ponieważ urządzenie ma pracować 24h na dobę, i być maksymalnie niezawodne, oczywistym wydaje się użycie watchdoga. Czy w tej sytuacji (program "wiszący" na input, nie mający możliwości zresetowania watchdoga)...
witam... moze mi kotos pomoc ustawic watchdog tak aby uP resetowal sie po 2sekundach... uzywam bascoma i procek resetuje mi sie po 16ms /przynajmn iej tak wynika z symulacji/ z pdf'a wyczytalem, ze mozna czas ustawic za pomoca s0,s1,s3 w WDTRST - Watchdog Reset Register (0A6h) moze mi ktos pomoc jak mam to zrobic, pewnie w asm, ale z tego to ja jestem...
Nie rozumiem dlaczego nie możesz skorzystać z resetowania przez watchdoga. Potrzebujesz w pewnym wybranym momencie zresetować procek - tak piszesz, zatem w tym momencie zatrzymaj program aby watchdog zadziałął i po sprawie . Jeśli trzeba to wyłącz również w tym przypadku przerwania. Najlepiej zrobić to w niezależnej procedurze.
Kolego WatchDog resetuje uP i raczej nie policzysz 'resetów'. Jak już to w pętli oczekującej wstaw dodatkowy warunek po przekroczeniu, którego program 'pójdzie' dalej. Np: i = 0; while((i<1000) && (!dzwonek)) i++; //dalsza część np. if(i == 1000) { //nie było dzwonka - ale uwaga co w momencie gdy dzwonek...
Tak na szybko, bo wychodzę do pracy. Na przykładzie DS18B20. Zakładam, że komunikację z czujnikiem masz opanowaną, więc odczytałeś z czujnika dane i masz je w dziewięciobajtowej tablicy - u mnie to Sc(9). Do obliczania odebranej temperatury korzystam z funkcji, którą deklaruję tak: Declare Function Decigrades(byval Sc(9) As Byte) As...
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,...
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ć...
...Urządzenie zawiera dwa MCU - każdy ma możliwość resetowania drugiego - innymi słowy - jeden nadzoruje drugi (komunikują się po RS232) i w razie jeśli któryś się by "powiesił" wtedy kolega go podnosi :) Właśnie do tego służy watchdog i nie trzeba zdublowanego systemu resetów, który moim skromnym jest konstrukcją błędną. Ale chyba się nie zrozumiemy....
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...
chciałem zrobić wstawkę asemblerową dla watchdoga ale to już nie istotne bo nauczyłem się ustawiać poszczególne bity w rejestrach i rozumiem że to wystarczy... ale problem istnieje przesiadłem się na atmega1284p tu jest watchdog do 8 s no i dla 8 nie działa 4,2 i 1s również nie działa, działa dla 0,5 i mniej - dlaczego??? dla 0,5 s wdr Wdtcsr = &B00011101...
rejestr: MCUCSR: Bit 3 - MCUCSR.3 - WDRF - Watchdog reset flag Bit 2 - MCUCSR.2 - BORF - Brown-out reset flag Bit 1 - MCUCSR.1 - EXTRF - External reset flag Bit 0 - MCUCSR.0 - PORF - Power-on reset flag Nie znam dokładnie architektury tych procesorów, ale z mojej znajomości mikroprocesorów, wnioskuje że te rejestry flagowe służą to rozpoznania co było...
Ratujcie!!! Męczę się z AD7730 już od miesięcy, tak się uparłem, że nie robie nic innego tylko walczę z tym i nic, aż mi się odechciewa całej elektroniki. Wykonałem płytkę pod AD7730 i łącze go z AVR M8, program pisze w Bascom (bo jest prosty) i wygląda on tak: $regfile = "m8def.dat" $crystal = 8000000 Config Lcd = 20 * 4 Config Lcdpin = Pin , Db4 =...
To nie tak. Faktycznie Bascom i AVR. Watchdog wyłączyłem. Normalnie soft pracował bez problemu. Po tym jak na początku użyłem rejestru do wyłączenia Rx i Tx zwarłem do masy pin Rx, włączyłem ładowanie, przywróciłem jedynki w rejestrze dla RxEN i TxEn, procek się resetował przy próbie wysłania dłuższego SMS'a. Ten restart następował po lub w trakcie...
P.S. Zapomniałem napisać że programuję w BASCOM AVR Mozna sie domyslic.. po tym: unikam jak ognia poleceń GOTO w polaczeniu z Używam mikrokontrolerów AT90S2313 i ATMEGA8 Ale do rzeczy. Licznik watchdoga musisz zerowac, jak juz wspomniano, w kazdym podprocesie, ktory wykonywalby sie w najmniej sprzyjajacych warunkach dluzej niz max czas dopuszczalny...
'---------------------------------------... ' Solar v9 z pomiarami i watchdogiem '---------------------------------------... ' ustawiono napiêcia od³aczenia 1,17V ' napiêcie ochrony 1,45V ' led red lutowana do b1 ' opornik do b2 '---------------------------------------...
Twoje działa, ale moje nie działa. Wklej mój kod w kompilator i zobacz co się dzieje [syntax=Bascom] $sim $regfile = "m8def.dat" $crystal = 16000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Rs = Portc.2 , E = Portc.3 , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 Cursor Off Noblink Cls Dim Cool As Word ' zmienna określająca wypełnienie...
Są rzeczywiście sytuacje, gdzie hardware'owe i2c/twi potrafi się zawiesić. Nie jestem specem od AVR niemniej kiedyś bawiłem się w atmega interfejsem TWI. Wykonywałem losowe zwarcia linii SDA zarówno w trakcie transmisji jak i gdy linia jest wolna. Czasem gdy rozwierałem linię SDA ona zamiast podciągnąć się do 5V pozostawała na 0V a w rejestrze statusowym...
acid12 -> jak zajrzysz do kodu bootloader.c to zobaczysz, że do resetu procka po załadowaniu już programu właściwego do pamięci flash stosuję metodę: asm volatile( "clr r30" "\n\t" "clr r31" "\n\t" "ijmp" ::); jeśli chodzi o możliwości zdalnego resetowania to: 1. można sobie podłączyć...
Witam wszystkich Forumowiczow, do tej pory nigdy nie miałem potrzeby pisać postu bo wszystkie problemy rozwiązywałem opcja search ;-) az do tej chwili. buduje układ przetwornika AD 24 bitowego, ktory komunikuje sie z Atmega8 po SPI hardware a ta z kolei z moim PC po RS232. Docelowo maja byc 2/3 przetworniki, poki co jest jeden i walka trwa ;-) Całość...
wylacz watchdoga i naucz sie czytac dokumentacje. bascom tego za ciebie nie zrobi. 0x41 0x56 0x45!!
Tak jak piszesz, procki w modułach Slave można spokojnie a nawet trzeba i warto resetować za pomocą watchdoga (zdalnie). Korzystam dokładnie tak samo z przejściówki USB/RS485 na FT232RL. tutaj fotka - w tej chwili tak właśnie to wygląda przed moim monitorem - cały czas nad tym pracuję ;) http://obrazki.elektroda.net/48_12886327... to sterownik...
Witam Chciałm zrobić automatyczną regulację obrotów silnika. Pierwszy silnik napędza drugi silnik który pracuje jako prądnica i muszę wraz ze zmianą obciążenia prądnicy regulować obroty silnika tak aby uzyskać stałe napięcie na wyjściu prądnicy. Do sterowania zastosowałem Atmegę 8. Napisałem taki programik i niby działa, ale ... regulacja jest zbyt...
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...
No własnie zgłupiałem do reszty ale jedno sie zgadza jestem poczatkujący i naprawde duzo czasu mi zajmuje za nim cos napisze i to zadziała. [syntax=basic4gl] $regfile = "m8def.DAT" $crystal = 8000000 'CONFIG---------------------------------... Config Lcd = 20 * 4 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portd.6...
Jeśli chodzi o temperatury to w zasadzie ma to być tylko jeden czujnik, procedura obsługi była zaczerpnięta z mojego poprzedniego programu dlatego tak zostało. Usunąłem też podział na etapy, który tutaj nie będzie potrzebny i poprawiłem resztę wg. Twoich wskazówek. Co do deklaracji portów, przyciski mam podciągnięte sprzętowo do 1. Wygląda to tak: [syntax=basic4gl]'----------------------...
z tego co wiem programowo tego się nie da zrobić(jakimś poleceniem)..najlepiej wykorzystać watchdoga(tego z bascoma).. a najlepiej chyba sprzętowego watchdoga. Bo rozumiem, że chcesz żeby się resetował jak się zawiesi ? Czy po co w ogóle?
Witam :) Mam problemy z programem analizatora widma z obsługą RC5. Na lcd wyświetla głupoty albo resetuje się Atmega32.Czy w programie wszystko OK jest? Oczywiście sam program analizatora widma akustycznego działa poprawnie. $regfile = "m32def.dat" $crystal = 16000000 Config Pinb.2 = Input Config Int2 = Falling Enable Interrupts 'obsługi RC5...
Fusebity rozumiem że zmieniłeś na zewnętrzny kwarc. Spróbuj jeszcze wyłączyć watchdoga w programie , może gdzieś się nie wyrabia program i się resetuje.
znów przydałaby się szklana kula :D A nie masz przypadkiem włączonego watchdoga i nie resetuje uP zanim wyśle drugi tekst?
Moim zdaniem: 1. w ogóle nie potrzebujesz trybu CTC. Normal w zupełności wystarczy, ale to szczegół. 2. Watchdog resetuje Ci procka. Od momentu uruchomienia do 1 resetu masz "waitms" na co najmniej 1100ms a ustawiłeś go na 1024ms. Ale ja nie znam/nie używam BASCOMa więc moje uwagi sam zweryfikuj na poprawność.
Jakie zakłócenia na AVR ? :D watchdog i po problemie, pamięć SRAM się nie przeprogramowuje... Oczywiście nie należy elektronice w odpowiedzialnych automatach ufać i należy stosować zabezpieczenia, zarówno przed zakłóceniami, jak i w przypadku padu mikrokontrolera. Oddzielna kwestia, ze osobiście nie ryzykowałbym stosowaniem Bascoma do bardziej skomplikowanej...
Zbyt wolne ale dlaczego?Układ zasilam z stabilizatora 7805, teraz mam podłączony do pinu reset 100n do masy i 10k to +5V a procesor dalej nie startuje po wlaczeniu zasilania.Jak zewre Reset to masy to procesor startuje.Jak to wyeliminiwac-może to być wina programu albo ustawienie wewnetrznego kwarcu? Wydaje mi się ze wpływ na działanie układu resetu...
Mam problem z programatorem ze strony http://pinokio3000.narod.ru/my_designs/A... Zastosowałem z nim drobne przeróbki. Nie dawałem tylko diody VL3 i Rezystora R9. Nie dawałem tez elementów R8 i C6 bo ten układ raczej nie wykorzystuje przetwornika ADC. Zasilanie AVCC podłączyłem bezpośrednio do VCC. I nie dawałem rezystora R7 bo...
Wiec tak coś mi nie idzie ze schematem :| Chce obrobic wszystko na jednej plytce a program dopisywac. Wiec ma byc taz ze 5 klawiszy i jeden no hmmm... 1 to bedzie wiecej/mniej jak normalnie temp a w ew. menu bedzie to gora/dol :D Drugie 2 to enter i esc. Kolejny to przycisk opcje. I ostatnie to ze jesli styk zostanie zwarty do masy to zeby odliczal...
Ostatnie czasy na Elce coraz więcej nie działających procesorów/Programatorów/za szybko wykonywujących się opóźnień... W związku z tym może warto by było zrobić coś w stylu "Kompedium" co zrobić, jeśli nie działa...Jeśli macie jakieś z życia przykłady piszcie, będę uzupełniał:) Nie działa procesor: 1) sprawdź czy jest zasilanie na WSZYSTKICH Nóżkach...
Jak w BASCOMIE zaaktywowac watchdoga w tym procku? Jak go resetowac i jak stworzyc plik konfiguracyjny do BASCOMA? Niestety wyszukiwarka na elektrodzie chyba padła, niemoge znaleźć podobnego tematu. Wycinek z PDFa Watchdog Timer (One-time Enabled with Reset-out) The WDT is intended as a recovery method in situations where the CPU may be subjected to...
resetować watchdog watchdog bascom resetować programie watchdog
multiswitch podłączenie kolumny amplituner dobrac seria kondensator
używany telefon telewizor toshiba czarny ekran
Candy GOY1054L – wymiana programatora krok po kroku, zgodność modułu, testy serwisowe Jak sprawdzić pompę AdBlue Bosch, Continental – podłączenie przewodów, test PWM, CAN