Witaj Pojęcie o budzeniu procka masz raczej wątłe, przecież procek budzi się tylko przerwaniem... a dokładniej jednym z bardzo niewielu (watchdog, przerwanie zewnętrzne, otrzymanie danych...) Jeśli poczytasz pdfa to dowiesz się jak wybudzić procka, szczególnie dobrze jest to rozpisane dla M128. Uprzedzam...
Witam Napisałem kawałek kodu do obsługi przerwań IRQ Zasada miała być taka po wywołaniu przerwania (zwarcie PIO_PA2 do masy) miał zmienić się stan diody na PIO_PA27. Niestety program nie działa poprawnie (przerwanie nie jest wykonywane). Tytułem wstępu to tyle. Poniżej kod, który powinien realizować...
Witam, jeszcze proszę praktyczne rozwiązanie takiego problemu, gdyż program jest praktycznie ukończony, ewentualnie drobne poprawki kosmetyczne:), ale w obecnej wersji odczyt i zapis wykonywany jest z poleceniem "wait", przez co wskazywane temperatury nie są czasem poprawne - wyskakuje BRAK ds'a. Już...
Nie wiem czy dobrze kobinuję, przy takiej konfiguracji bardzo szybko odświerza mi LCD prawie nic nie widać. Nie wiem też jak ugryść wyświetlanie poszczególnych podprogramów jednym przyciskiem. Zastosowałem skoki opisywane [url=]Tutaj [syntax=vb]$regfile = "m16def.dat" ...
Witam Proszę o pomoc w zindentyfikowaniu problemu. Otóż jestem w trakcie nauki programowania uC AVR i chciałbym w swoim programie umieścić programowy reset za pomocą watchdog'a. Zależy mi na kompletnym resecie żeby program "na świeżo" wystartował. Po zasięgnięciu do noty katalogowej uC znalazłem opis...
Witam, mam problem z wywołaniem funkcji w przerwaniu. Na chwilę obecną debugowanie odpada, gdyż mam mały problem z odpaleniem debugowania. Po wywołaniu przez procesor przerwania, albo się on wiesza albo niepoprawnie działa funkcja. To samo dzieje się gdy wkleję do przerwania zawartość funkcji. Podczas...
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ą...
Ja też miałem takie cyrki z przerwaniem. napisałem więc program w ten sposób: '/////////////////////////////////////... TERMOSTAT /////////////// '//////////////////////...
Zmieniłem = na |= teraz wygląda to tak: ADC1->SQR1 |= 0<<20; ADC1->SQR2 = 0x0; ADC1->SQR3 |= (kanal_IN << 0); ADC1->CR1 |= 0<<16; //0000: Independent mode. ADC1->CR1 |= 1<<8; //SCAN mode. ADC1->CR1 |= 1<<6; //Włączam generowania przerwania...
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_APB2PeriphClo... ENABLE); NVIC_InitTypeDef NVIC_InitStruct; NVIC_InitStruct.NVIC_...
Witam Chciałbym wreszcie zacząć używać watchdog`a w swoich programach, ale do tej pory miałem problemy ze zrozumieniem go (może nadal mam) Proszę na podstawie poniższego pseudokodu odpowiedzieć czy prawidłowo jest umieszczony w kodzie ?? $noramclear 'dyrektywa zapobiegająca...
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. Jak dla mnie prawdopodobieństwo tego, że program wpadnie w pętlę,...
Witam wszystkich, robię prosty układzik na uC atmega. Zadaniem go będzie odczyt temp z czujnika ds18b20 i ustawianie zewnętrznego przetwornika dac po spi. Wszystko praktycznie napisałem, bo części programu były wykorzystywane w innych układach, które pracują, z spi problemu nie ma, z odczytem ds też. Ale...
A przypadkiem nie włącza go przerwanie Timer-a ? When the SM bit is cleared (zero), the SLEEP instruction forces the MCU into the Idle mode, stopping the CPU but allowing Timer/Counters, Watchdog and the interrupt system to continue operating. This enables the MCU to wake up from external triggered interrupts...
W WDTCLKUEN wpisujesz najpierw 0 potem 1? W czasie karmienia przerwania masz wyłączone? Pochwal się jednak kodem. Albert
włącz przerwania. Czyli zamiast disable interupts daj eneble interupts. W tym procku o ile się nie mylę watchdog też jest przerwaniem .
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...
Witam Układ STM32F103 usypiam za pomocą instrukcji __WFI(), usypianie i wybudzanie za pomocą zewnętrznych przerwań działa prawidłowo. Teraz chciałbym dołożyć watchdoga do tego układu. Po zastosowaniu IWDG układ resetuje się co 26s, w sleepie nie ma jak go wyzerować. Sprawdziłem też WWDG z załączonym...
Jedyne co mi przychodzi do glowy to to, ze watchdog resetuje procka w polowie wysylania konkretnego bajtu. W wyniku tego rozpada sie synchronizacja miedzy kompem a procem i komp odbiera polowe poprzedniego bajtu i polowe nowego (niekoniecznie dokladnie polowe, moze byc np 2 bity i 6 bitow albo kazda...
A moze wiesza sie sama obsługa I2C lub jakes przerwanie, a WATCHDOG jest i tak resetowany w pętli głównej więc nie dochodzi do resetu procesora.
Dopisałem, ale jak mam teraz inicjalizować procesor? Wkleiłem wstawkę asm z helpa (dopisując przed ; ' , bo bascom nie akceptuje ; jako komentarza). Mam błąd 60 - duplicate label _basicstart i _clearram. Proszę o pomoc, bo asm nie znam. Dodano po 5 Wiem już dlaczego był ten błąd. Doczytałem...
Idziecie nie w tym kierunku co trzeba. Trzeba zająć się odpowiednią obsługą komunikacji a nie watchdog'a. 1. Jeśli odbiór ma wykorzystywać Input to jest coś takiego jak: $Timeout = value 2. Komunikację radziłbym wykonać w oparciu o przerwanie od Urxc.
Witam, Problem, z którym się do Was zwracam jest troszkę zagmatwany ale będę się starał opisać wszystko jasno i klarownie, bo sam nie mam już sił. Jest procesor, atmega88, na etapie budowania poszczególnych modułów docelowego programu. Uruchomiłem całkiem ładnie obsługę RC5 (może nie do końca super...
Jeśli WatchDog jest domyślnie wyłączony to ja go nie konfigurowałem. Także fusebit WDTON jest nie ustawiony. Z resztą:[syntax=c] WDTCSR |= (0 << WDE) | (0 << WDIE) | (1 << WDCE); //Turn WatchDog off wdt_disable();[/syntax]Nic nowego nie wniosło do działania. Usypiam do głębokiego...
Zainstalowałem AVR Studio4 i lecę od początku z google i pdf na temat ASM i AVR Powiedzcie chociaż czy w dobrym kierunku zmierzam? Bo jak w złym to odpuszczam i daje sobie spokój, pobawię się migającymi diodami w Bascomie. Tam gdzie nie ma komentarza to nie wiem co to znaczy i co robi ale było w pdf...
Witam, chcąc zaimplementować oszczędzanie energii w moim Arduino zdecydowałem się na użycie watchdoga. Jak wiadomo odmierza on do 8 sekund, więc chcąc "spać" przez 60 byłem zmuszony zaimplementować go kilka razy pod rząd. Przy wybudzeniu celem mojego programu jest zczytanie wartości czujników oraz RTC...
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: -...
Witam! Napisałem programik którym liczę ilość cykli procesora pomiędzy dwoma punktami programu, na zasadzie obliczenia różnicy pomiędzy dwiema wartościami licznika Timera1A ustawionego z preskalerem 1. Niedawno potrzebowałem zmierzyć ile cykli potrzebuje uC od momentu wystąpienia przerwania, a...
Chciałbym zrobić przerwanie od Analog Watchdog, które będzie wywoływane gdy napięcie na kanale 10 przetwornika ADC1 wyjdzie poza zakres 1V-2V. No i cóż, przerwanie nie chce występować... Sprawdzałem w debuggerze i w ogólę nie wchodzi do przerwania, więc problem jest zapewne w konfiguracji. Sam ADC1 oczywiście...
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...
Witam, Nie będzie działać poprawnie po popełniłeś jeszcze jeden błąd. Do momentu uśpienia wszystko jest ok, ale teraz następuje zmiana na porcie C, uP wstaje z uśpienia wykonywanie jest przerwanie pcint i teraz następuje powrót z przerwania. Powrót wykonywany jest jest nie do instrukcji SLEEP...
Witam, Mam problemz AtMega z tematu. Ustawiam konfigurację Timerów wg manualki: tryb CNC; prescaler; zezwolenie na przerwania CompareMatch. Po ustawieniu tego odblokowuję przerwania przez "sei();" i.. procesor się resetuje. Dodam też, że taki sam kod działa bez problemów na AtMega 16/32/64. Czy przy...
Witam, mam problem z obsługą przerwań zewnętrznych INT0 oraz INT1 w symulatorze (Simulator). Piszę w AVR Studio 4.19, gdyż Atmel Studio nie ma symulatora dla ATtiny87. Popatrzcie na ten banalny kod (okroiłem pierwotny kod do absolutnego minimum): [syntax=c] #include <avr/interrupt.h> unsigned...
Do wejścia PB2 dolutowałem 1uF (ceramik) plus kilka zmian w algorytmie. Wydaje się że problem drgania styków jest opanowany. [syntax=c] #define F_CPU 16000000UL // Atmega644 #include <avr/io.h> /*biblioteka avr*/ #include <string.h> /*biblioteka napisy*/ #include...
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...
Do bootloader'a wracam przez reset watchdog'a. Czyli SCB->VTOR lepiej dawać przed skokiem do aplikacji? W sumie dobry pomysł. Chodzi Ci o ten temat? Czytam ale nic nie mogę wygrzebać z niego co by pomogło w moim problemie. Dodano po 15 Odczytałem rejestr NVIC->IABR[1] i okazuje...
Witam, Jestem początkujący jeśli chodzi o programowanie ARM wiec proszę o wyrozumiałość. Mam problem z procesorem LPC 1768, konkretnie jest to płytka Mini DK-2. Od pewnego czasu walczę z problemami w przerwaniach i nie mogę sobie poradzić. Przewertowałem setki tematów na forach polskich i zagranicznych,...
1. Czy nie powinieneś ustawić pinów przerwań jako wejśc (ja dla pewności tak robię) 2. Ustaw w rejestrze MCUCR jaki ma mieć charakter (na stan lub na zmianę stanu). 3. Sprawdź, czy przewód z pinu przewania nie "wisi" w powietrzu. Obsługa przerwań działa znakomicie i łapie wszelkie stany z powietrza. 4....
W przerwaniu INTx ustawić watchdog w tryb przerwania na czas około 1 sekundy i wrócić do power down. Po przerwaniu od watchdoga sprawdzić stan wejścia i podjąć odpowiednie kroki. PS. W attiny każde wyprowadzenie może wybudzić procesor. Lepiej używac pin change interrupt moim zdaniem.
No tak, nie zauważyłem, że urządzenie jest odpalane z przycisku, niezbyt jasno to jest opisane. Wydawało mi się, że przerwanie INT0 jest od któregoś z czujników 1-wire. Przykład, który podałem nadaje się raczej do systemu cały czas włączonego. Dodano po 9 Co do czasu wykonywania przerwania...
Witam. Niestety program który chcę napisać nie działa już w początkowej fazie. Nie wiem dlaczego, dlatego proszę aby ktoś na to zerknął i powiedział co jest nie tak. Generalnie program ma działać tak, że po wciśnięciu przycisku program leci do przerwania, w przerwaniu sprawdza czy przyciśnięcie było...
Witam, W dokumentacji dowolnego mikrokontrolera ATmega z łatwością można odnaleźć tablicę z wektorami przerwań, np. taką: 1 $0000 RESET 2 $0002 INT0 External Interrupt Request 0 3 $0004 INT1 External Interrupt Request 1 4 $0006 INT2 External Interrupt Request 2 5 $0008 INT3 External Interrupt...
Poradziłem sobie - winny był monitor PAULMON, który nieprzystosowany do pracy z DS89C430 nie miał przekierowania przerwania od portu szeregowego 1 (wektor 003Bh). Po wywołaniu przerwania program głupiał i skakał do kodu monitora. Przerobiłem jakiś inny, prostszy monitor i wszystko działa. Jeżeli będziecie...
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. i o to mi chodziło. Czyli można zrobić i przerwanie i reset...
Cały program ma ponad 1500 linii więc cały soft nic tu nie wniesie. Aktualny wycinek dotyczący w/w tematu: [syntax=basic4gl] $regfile = "m16def.dat" $lib "I2C.LBX" '$lib "mcsbyte.lbx" $lib "Ds1307clock.lib" $crystal = 4000000 ' Konfiguracja pinow DS1307 Config Sda = Porta.6 Config Scl...
Cześć, Projekt zaraz będę konfigurował od początku. Fakt, podałem za mało danych, wybaczcie, skrajna nerwica mnie na to wzięła. Od początku: Używam SW4STM32, ale chciałbym od tego odejść mocno, bo za dużo automatów i za mało szczegółów, może dlatego, że nie potrafię tego wszystkiego ogarnąć. Kompilatora...
Tak jest !!! tak jak napisałeś ! Z praktyki uzywałem tylko właczenia, ( nie wykorzystuję trybu idle , więc nie musiałęm wyłączyć ), A jeszcze jedno nie polecam resetować watchdoga w obsłudze przerwania timera -> program może być w " malinach" a przerwania będą się wykonywac i resetować watchdoga,...
Zaciekawił mnie układ opublikowany w Edw 12/03 "zamek na karte TPSA". Zrobiłem, działa..... ale niestety czasami sie wiesza. Ponieważ to pierwsze moje spotkanie z 90s2313 i jezykiem C może ktoś mi pomoże dołożyć do poniższego kodu watchdoga, tak żeby układzik sie nie wieszał ? Bede bardzo wdzieczny. Dodam...
Jak to jest z tym zawieszeniem ? Kiedyś zrobiłem układ sterownika z zegarem czasu rzeczywistego (zegar programowy) i po zastosowaniu zbyt długich procedur w przerwaniach procek po kilku minutach zawieszał się. Zaraz po zawieszeniu procesor podejmował pracę tzn. wykonywał DO<>LOOP ale wszystkie...
Szkoda że z takiego fajnego tematu zrobił się taki bełkot. Wyraziłem się jasno ja nie chcę ratować programu Watchdogiem nie chcę również oszczędzać przy jego pomocy na zabezpieczeniach samego procka itp. Pewnie się ze mną zgodzicie Watchdog służy do zabezpieczania procka przed błędami i wypadkami,...
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...
Za taki Watchdog może służyć np. CD4060, z odpowiednio dobraną częstotliwością pracy. Do jednego z wyjść Q przyłączasz nóżkę Reset. Do wejścia Reset licznika przyłączasz port mikrokontrolera, koniecznie przez jakiś inwerter (np. tranzystor PNP + 3 oporniki). A gdzie umieścić zerowanie licznika? To zależy...
Sory. Zamykam temat, zawieruszyłem w jednym z przerwań polecenie resetujące watchdoga, to będzie przyczyna. Dw crazy-phisic, poznaję to po tym co procek robi w układzie po starcie, co chwalenia się to chyba nie ma czym same zera i jedynki w rejestrz, chyba z osiem?.....
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 a co do watchdoga hmm... żeby użyć #include <util/delay.h> musisz...
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 ...
Czyżby ta etykieta jest wykonywania podczas przerwania?
Niekoniecznie musi to byc watchdog lecz wystarczy uzyc przerwani od timera i w funkcji przerwania będzie wybudzenie procesora. A taki wybudzenie można zastosować np do pojedynczego pomiary np napięcia i przekazania na uart i znowu uśpienia.
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ż...
nie jest usatawiony, robiłem testy z jego ustawieniem i wtedy nie musze wogóle uruchamiać watchdooga zeby działał, działa cały czas i prawidłowo. Zastanawiam sie czy moje problemy nie mają związku z przerwaniami.
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...
Generalnie w fateku jest funkcja 90 i 91 WDT i RSWDT gdzie ustawiamy czas po którym wyrzuci błąd(max 1,2s) lub resetujemy, ale tutaj się zgodzę z kolegą powyżej. Przecież funkcję CALL, LBL, RTS możesz wywoływać nieskończoną ilość razy i sterownik będzie realizował cały program, a nie tylko liczenie....
dzieki za slowa otuchy :) Nie przejmuj się, to normalne, że są błędy oprogramowania oraz sytuacje nieprzewidziane przez programistę. Od tego między innymi jest Watchdog, aby nad tym móc zapanować. Gdyby było tak idealnie jak pisze nasz kolega TMF, to Windowsy byłyby idealne - a jednak nie są :D Watchdog...
No tak ale reset to jest chyba reset i procesor się resetuje. Mam ustawioną opcję tylko resetu sprzętowego, ba ATtina ma możliwość jeszcze generowania przerwania. Bezpieczniki ustawione są jak załączniku. Nawet sprawdzam na początku programu czy reset pochodzi z watchdoga, ale tak nie jest. A co do...
A niby dlaczego miałby nie funkcjonować? Gdyby zawartość SRAM była tracona to program musiałby się wykonywać od początku, co efektywnie byłoby równoznaczne z resetem procesora. Czy przez przypadek nie tak właśnie działa przerwanie od watchdoga? Nie wykonuje się wtedy reset? Oczywiście w każdym...
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...
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...
Oczywiście - można. Ja stosowałem podobne rozwiązanie z lpc11xx, budzony z trybu power down rozwiązaniem w postaci timera taktowanego zegarem watchdoga z ultraniskim poborem prądu. I ładnie mi to działało. Coś podobnego realizuję też w STM32, tyle że wykorzystując wewnętrzny RTC i resetowanie rdzenia...
Na początek użyj znaczników syntax i pozmieniaj magiczne numerki na nazwy bitów. Np.: avr/wdt.h
Jedyne sensowne zastosowanie dla tego rozbudowanego układu, który zaprezentowałeś, to bardzo długi czas do zerowania, przy jednoczesnym generowaniu przerwań w krótszych odcinkach czasu. Ale to też trochę naciągane. Nie wiem skąd mity, że zewnętrzny WDG jest bardziej niezawodny. Pod względem ryzyka jest...
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 .
A gdzie ląduje program po skończonym przerwaniu? while(1){} albo np. procek jest usypiany automatycznie na wyjściu przerwania. Kiedyś testowałem uC na niestabilnym i niskim zasilaniu Też miałem z tym problem. Układ zasilany z CR2032, jak już była słaba to czasem czujnik zewnętrzny się zawieszał...
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)? Tak. Należałoby przenieść cli() przed kod uruchomienia watchdoga aby zapobiec takiej ewentulności. To w takim razie można...
Witam Zakupilem zestaw uruchomieniowy ZL25ARM+ ZL24ARM w sklepie Kamami. Mam problemy z obsluga przerwania. Najprosciej mowiac chcialbym aby po zgłoszeniu przez watchdog'a zakonczenia liczenia (Timer Mode). Jednak tak sie nie dzieje i nie wiem w czym tkwi problem. Wrzuce tutaj troche kodu: void main() { #ifdef...
Witam Wyłączenie przerwania nie wchodzi w grę mam tam reset watchdog-a Resetowanw watchdoga w przerwaniu , to ... oględnie mówiąc głupota. . Myślę że pozostaje mi rozwiązanie 2 ale czy Kolega zgada się z moja teorią o przerywaniu transmisji danych do LCD? Rozwiązanie nr. 2 jest dobre , ale...
Jak się reseta to albo watchdog, albo wektory przerwań nie obsłużone i idzie w maliny... Sorry innej możliwości nie ma, chyba, że się stos kończy i włazi na ram...
Wiem ze w PHP operatory sa takie same jak w c, dlatego ucze sie C na uC, a nie np BASCOM'a ;] (choc C lepsze ;]). Dzięki za pomoc, teraz jest ok. Dodano po 14 A jednak nie, wystąpiła jeszcze bardziej komiczna sytuacja. Scislej: Gdy nacisne przycisk, do pamieci zapisywany jest czas wciscniecia,...
Napisałem programik w celu testowania czasu w przerwaniu ADC. #include <stdint.h> #include <avr/io.h> #include <stdlib.h> #include <avr/interrupt.h> int main(void) { sei(... ADMUX = _BV(REFS0)|_BV(REFS1);.....
Nie wydaje mi się że to problem z watchdogiem, przyznam się że do tej pory nie miałem potrzeby korzystania z niego i nigdy go nie uruchamiałem;) Standardowo chyba nie jest włączony watchdog? OK. problem lezal w makefile. Poczatkowo program składał się z kilku plików zrodlowych, teraz przerobilem...
Korzystam z przykładowych projektów dostarczonych przez ST w programie IAR. Po lewej stronie okna programu znajduje się okienko z drzewem folderów i pośród nich znajdują się dwa pliki ze 'startup' w nazwie: startup_stm32f10x_md.o i startup_stm32f10x_md.s (zawartość plików znajduje się poniżej). To...
W STM32 można ustawić przerwanie po przekroczeniu pewnego zadanego napięcia na ADC - popatrz na opis trybu "analog watchdog". 4\/3!!
Ale diody świecą więc jakieś przerwanie timera o stałej częstotliwości niewiele tu zmieni, jśeli chodzi o pobór prądu timera też. Może to być i watchdog, jeśli da się z niego uzyskać te 50..100 Hz - nie pamiętam już, jak to było w AVR.
Przepisałem wedle swej wiedzy. Symulacja w AVR Studio 4 działa poprawnie, ale po zaprogramowaniu LED'y nie migają... Drogi kolego ucy74 , jeśli już coś robisz , to rób to dobrze , albo nie rób wogóle - nie mogłem się powstrzymać ;) Ustawiasz INT0 na wyzwalanie zboczem narastającym ,"usypiasz"...
Taki watchdog zabezpieczał by przed zawieszeniem w stylu wykonania jakiejs niedozwolonej operacji i zapetlenia programu bądź wejscia w inna nieskonczona petle zwiazana z zagniezdzonymi przerwaniami itp ,nie zabezpieczył by natomiast zawieszen wywolanych jakimis zewnetrznymi zdazeniami, zakloceniami ktore...
/* * Some defines for the program status registers */ ARM_MODE_USER = 0x10 /* Normal User Mode */ ARM_MODE_FIQ = 0x11 /* FIQ Fast Interrupts Mode */ ARM_MODE_IRQ = 0x12 /* IRQ Standard Interrupts Mode ...
Watchdog to jedno, odmierzanie czasu to drugie. Na razie skup się na przejściach między stanami systemu, co gdzie włączać i wyłączać, na jakie zdarzenie czekać w każdym stanie. Zresetować watchdoga jest prosto (np. w main po wyjściu ze stanu uśpienia), trudniej jest zapewnić, że system zachowa się...
To co chcesz zrobić jest niesamowicie skomplikowane, więc jeśli nie masz wielkiej potrzeby tak robić, to może warto rozważyć ten programowy reset - na przykład poprzez watchdoga - program po restarcie sprawdzałby co spowodowało reset i jeśli był to watchdog, to znaczy, że powinien zrobić coś innego niż...
Może nie ekstremalny przypadek, a watchdog =]
To jest startup: .section .vectors, "ax" .code 32 .align 0 .global _vectors .global reset_handler /**********************... Exception Vectors ****************************************...
Moze nastepuje reset µkontrolera od watchdog-a?
I co z tego że wyjaśnia o co mu chodzi, skoro tak nieśmiało przypuszczam, że on sam nie wie o co chodzi albo może inaczej się wyrażę, nie wie jak osiągnąć jakiś tam cel i wymyśla pomysły z kosmosu. Niedawno był podobny wątek, gdzie też autor twierdził, że nie można inaczej rozwiązać jego problemu...
Witam, Już trochę nad tym siedzie i jakoś nie mogę zlokalizować problemu... używam CrossStudio 1.7 + jtaga po LPT+płytka ewaluacyjna olimexu sam7-ex256. Parę razy przewijał się już ten temat na i przeczytałem już podobne posty jednak mi nie pomogły rozwiązać problemu. Poniżej kod źródłowy: ...
Oj! ... Idle Mode When the SM2..0 bits are written to 000, the SLEEP instruction makes the MCU enter Idle mode, stopping the CPU but allowing SPI, USART, Analog Comparator, ADC, Two-wire Serial Interface, Timer/Counters, Watchdog, and the interrupt system to continue operating. This sleep mode...
Kwarcu zewnętrznego nie używam, tylko standardowe ustawienia atmegi (1MHz). Próbowałem różnych (ISR i SIGNAL) bo już nie wiedziałem gdzie szukać błędu. Ogólnie używam starszej wersji WINavr. Fcpu widziałem zadeklarowane w delay.h, dlatego drugi raz tego nie robiłem. Co do asm volatile ("WDR"::);...
Dodam moj przepis na ładną tablicę wektorów (przykład dotyczy ATtiny2313) : .cseg ;————R...
Witam ! Wykorzystuje kilkanaście procesorów Atmega 8, 16 i 32 współpracujących razem. Wymianiają pomiędzy sobą dane za pomocą jednego z nich, który wywołuje przerwanie INT w kolejnych procesorach i pobiera lub wysyła dane przez ten pin. To taka prosta trasmija szeregowa. Po odebraniu danych odwracają...
...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...
Zmienne przechowywane są w pamięci SRAM, chyba ze zapisujesz je do EEPROM. Dane w pamięci SRAM przy stabilnym zasilaniu i braku innych wpływów zewnętrznych mogą mieć stałą wartość przez cały czas życia scalaka. Jednak przy bardzo krytycznych danych musisz się liczyć z tym ze pojedyncze bity danych...
Jak zweryfikować jedno lub drugie? Mógłbyś nieco rozszerzyć/nakierować? W konfiguracji jest tyle różnego rodzaju zmiennych, że dla początkującego trudno jest od razu wszystko objąć. Stąd niestety mogą się pojawić dość trywialne problemy. EDIT: Wygląda na to, że udało się znaleźć i wyeliminować...
Oczywiscie tak. Dodam ze uzywam programu System Workbench [syntax=c] /** ****************************************... * (at)file startup_stm32.s dedicated to STM32F103C8Tx device * (at)author Ac6 * (at)version V1.0.0 * (at)date 2018-04-06 ...
[syntax=armasm]g_pfnVectors: .word _estack .word Reset_Handler .word NMI_Handler .word HardFault_Handler .word MemManage_Handler .word BusFault_Handler .word UsageFault_Handler .word 0 .word 0 .word 0 .word 0 .word SVC_Handler .word DebugMon_Handler ...
Ok wybrałem nadpisywanie całej pamięci flash przy wgrywaniu sketchu, dzięki za podpowiedź. Chyba chodzi o watchdog? Musisz zatrzymać monitor szeregowy, kiedy się pojawiają logi i wkleić tutaj informację o przyczynach WD - zwykle jest to dość pomocna informacja. Pod tym linkiem masz informację na temat...
W manualu jest napisane: If the watchdog is enabled for interrupt on underflow or invalid feed sequence only then there is no way of clearing the interrupt. The only way you could perform return from interrupt is by disabling the interrupt at the VIC (using VICIntEnClr). Jeśli dobrze to rozumiem...
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 tak jak tam widać - polecenie Input jest uruchamiane tylko wtedy gdy jesteśmy pewni dzięki...
Zakupiłem właśnie atmega88, zmieniłem kod,wgrałem i działa dokładnie tak jak chciałem :) Zmieniony kod: #include <avr/io.h> #include <avr/interrupt.h> #include <avr/wdt.h> #include <avr/power.h> #include <avr/sleep.h> void setup(){ delay(100); ...
Ustawiłem bit WDIE oraz WDP1 i WDP2 ( ustawiają sekundę jak było napisane w nocie katalogowej), lecz jak śledzę to debuggerem to widzę że system dalej się resetuje. Dziwna sprawa dioda świeci się (około 1 sekunda) i gaśnie (na około 1 sekundę), chociaż nie ma delyów ani operacji xor. Wydaje mi się...
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...
Witajcie mam taki mały problem, chce dostosować pewne urządzenie pod mojego pilota ale nie moge poradzić sobie z odebraniem komend przez pilot. Przed zmianą softu wszystko działało. Sprzetowo na pewno jest wszystko dobrze, wina leży w sofcie. [syntax=text]''''''''''''''...
To trochę tak jakby na siłę budować jakiś układ logiczny na lampach albo przekaźnikach. Bez jaj. Podaj przykład gdzie 8051 nie podoła temu co avr . Ja np. nie widzę jakiegoś '' milowego kroku''. Ale przecież nigdzie nie napisałem, że nie podoła a tym bardziej nigdzie nie porównuje 8051 do...
Tym razem chciałbym Wam przedstawić kolejny miniprojekt, jakim jest moduł domykania szyb samochodowych. Wprawdzie rynek zasypany jest gotowcami, ale za chwilę wyjaśnię, czemu zdecydowałem się budować własny. W aucie, które posiadam są 2 elektrycznie sterowane szyby. W chwili, gdy nie pracują na...
Cześć Przede wszystkim musze powiedzieć że nie znam sie ani odrobine na asemblerze . Mamy tu koder do 4kanałowego sterowania proporcjonalngo w asm'ie na attiny 15. teraz pytanie -czy da sie przerobić kod tak ,aby miał ich 7 lub 8kanałów i wrzucić go do Attiny 26 ?? I czy to koder PPM?? PS niestety...
Oto cały program. Może długo zająć jego analizowanie. Na chwilę obecną zamiast dwóch niebieskich kondensatorów 100u jest jeden 1000u. Od spodu są przylutowane dodatkowe ceramiczne 100n. Dodam że rolę czujnika prędkości pełni kontaktron, który docelowo miał sterować transoptorem,...
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). A teraz chciałbym go wam zaprezentować. Na początek podręcznik języka C w formie pliku pdf ->...
na każdym który napiszę jest tak samo, w nowym temacie powyżej podałem ustawienia fuse bitów, zaraz wkleję kawałek na którym teraz się bawię Dodano po 4 to kod na którym teraz się bawie '**************************...
Witam Na wstępie powiem że nie jestem ekspertem w C. Pisze programik działający na Atmedze16. Mam dwa dwa układy Ram i RTC i muszę się z nimi dogadać przez SPI. I się nie dogaduje. Zeby zapisać cos i odczytać z Ramu muszę zapisać (dla zapisu) kod rozkazu - 8 bitów, adres komórki zapisywanej - 24 bity...
Nie wiem jak u Was ale ja tam nie mam już absolutnie żadnych trzasków. Owszem jest jeden mini szmer jak włączam urządzenie ale włączam je raz na "rok" i nie wyłączam. Chyba że ktoś puszcza sobie melodyjkę i wyłącza urządzenie , to co innego. Dla pewności przedstawiam ponownie działający kod. '---------------------------------------...
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....
(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,...
Witam, od wczoraj zmagam się z problemem odbioru kodu RC5 w urządzeniu, w którym mam multipleks dużej ilości wyświetlaczy 7-segmentowych LED. Przerwania na multipleks przychodzą co około 4ms. Multipleksowanych cyfr jest łącznie 48, ale pogrupowane są one, tak jakby były tylko 4 cyfry. W każdym przerwaniu...
Wklejam wynik dmesg | grep eth eth0: RealTek RTL8139 at 0xf8ecc000, 00:30:4f:34:ef:fd, IRQ 11 eth0: Identified 8139 chip type 'RTL-8100B/8139D' eth0: link up, 100Mbps, full-duplex, lpa 0x45E1 NETDEV WATCHDOG: eth0: transmit timed out eth0: Transmit timeout, status 0d 0000 c07f media 10. eth0:...
Witajcie Znalazłem program taki jak poniżej. Chciałbym go przerobić w taki sposób aby móc go zastosować na SL45i i przy wykorzystaniu Atmega128. Kochani powiedzcie laikowi jak.... Wymienione biblioteki posiadam: siemens35.h, eeprom8252.h Mam także pytania: 1. Dodam, że nieinteresuje mnie wykorzystywanie...
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...
Witam, Wejścia / wyjścia używane n.p: przez pid w periodic task powinny być mapowane / skalowane w tym samym periodic task. Tak chyba nawet dokumenty AB głoszą. Ja nie mam tak zrobione ale już tak zostawię. Na przyszłość będę pamiętał choć i tak, jak bym robił to wszystko znalazłoby się w jednym...
Wystarczy... 😉 To może zacznę najpierw od nauki bascom a i za jakieś dwa lata będzie to śmigać 😀 Dodano po 8 Panowie, znalazłem wczoraj kod, który działa na zasadzie „rejestratora” czasów, i zapisuje wyniki do Eeprom. Później je porównuje z odebranym kodem biorąc...
Mam prośbę do tych znających lepiej BASCOMA, o przeanalizowanie tego kodu. Program po pewnym czasie wysypuje się. Temperatura co jakiś czas waruje. Podprogramy działają, ale całość nie chce współpracować. Z góry przepraszam za jakość kodu. [syntax=vb]'-------------------...
czyli w hlepie od bascoma klamia?bo tam jest wyraznie napisane ze watorsc w load timer jest odejmowana od 255(w timer0) czyli przy 100 watosc ladowana do timera wynosi 155 czyli timer przeladuje sie po 100 cyklach dla presclae 8 po okolo 200µs i co tyle bedzie przerwanie a do eepromu odwoluje...
Dzięki możesz podesłać, zerknę również sobie na obsługę menu (jestem też w trakcie tworzenia) i również proszę was o pomoc. Kod wygląda tak: [syntax=vb]'----------------------...
Pierwsza część programu Dodano po 8 no i druga się nie mieści, więc wrzuciłem do pliku tekstowego.
Przepraszam że podepnę się do tematu ale także walczę z RS485. I to walczę dobre kilka miesięcy! A zatem moje pytania: 1.Rozumiem że terminator muszę umieścić na początku i końcu mojej linii rs485 ? 2.Rezystory podciągające linie A i B muszą być przy każdym istniejącym module w sieci? 3.Rezystor...
Witam Piszę do was bo nie mogę rozpracować histerezy w poniższym kodzie programu. Program działa prawidłowo ale jest mały problem. Histereza zawsze działa, a raczej jej brak (załączanie i wyłączanie) działa równo przy 30 stopniach. Potrzebuję aby histereza była ustawiona na 5 stopni. Proszę pomóżcie...
Nie analizuję jak to działa, ale zmieniony tak jak pisałem kompiluje się bez problemu. Jeśli poniższego listingu nie potrafisz skompilować to znaczy że używasz jakiejś archaicznej wersji i nie da się pomóc dopóki nie przesiądziesz się na nowszą. WDVALUE=16,32,64,128,256,512,1024,2048,4...
Witam. Jak zwykle kiedy nie mogę sobie z czymś poradzić muszę zaczerpnąć porady na forum. Tak jest i tym razem. Otóż zbudowałem sterownik co który między innymi steruje też zaworem c.w.u. Zaworem "kręci" silnik dc a za rozpoznawanie pozycji odpowiadają dwie krańcówki mechaniczne zwierające do masy....
Dodaje poprawnie listing programu. [syntax=basic4gl] 'OSTATNI... ZMIANY 08,10,2014 'Problem z blednie wysylanymi danymi 'Problem z wylaczaniem sie sterownika $regfile = "m32def.dat" $crystal = 7372800 $baud = 19200 $include "Config_MMC.bas" $include "CONFIG_AVR-DOS.Bas" $hwstack...
Witam, Niestety ostatnio od kilku miesięcy mam bardzo mało czasu na swoje hobby i zabawę z prockami więc teraz tak z marszu ciężko mi sobie przypomnieć jak dokładnie działałem z tym PowerDown w swoim pilocie ale wkleję poniżej swój kod taki jaki działa do dzisiaj w tym moim pilociku i to bardzo dobrze...
No to temat troszke ruszam, korzystam oczywiscie z kawalkow gotowych kodów co by nie klepac od nowa. W zwiazku z tym iz czekam dopiero na plytki w ktorych bedzie i RTC i podtrzymanie zasilania bawie sie na tym co mam , czyli atmega8 i zegar obsluguje na nim. '8 MHz/256/31250 = 1 s $regfile...
Jakby co to całość programu znajduje się $regfile = "2313DEF.dat" $crystal = 10000000 Dim Eaddress As Eram Byte At 2 'adres pilota Rc5, zosatał umieszczony pod adresem 2 gdyż z doswiadczenia wiem, że komórki 0 i 1(szczególnie 0) pamięci EEPROM potrafią...
Zobacz jak ja to zrobiłem na Mega8 Program jaki zastosowałem korzysta z przerwania INT0 które po naciśnięciu klawisza wyprowadza procesor ze "śpiączki" , wysyła dane na IR i usypia go ponownie.Dla mnie takie rozwiązanie jest lepsze niż chwilowe zasilanie procesora poprzez diody. Poniżej...
Witam ponieważ w programie będe używał polecenia CONFIG SERVOS co powoduje iż Timer0 jest zajęty przez tę komendę potrzebuje zamienić wykorzystany wcześniej timer0 do przerwań na timer1 aby timer0 był wolny do sterowania serwem. Pozamieniałem w programie komendy timer0 na timer1 odpaliłem układ w symulatorze...
Witam po raz kolejny pojawił się problem z moim programem otóż chcę aby kiedy wzrośnie temperatura i będzie wyższa lub równa zadanej to serwo obraca się w prawo poczym się zatrzymuje następnie kiedy temperatura będzie niższa od zadanej wtedy serwo obraca się w lewo i zatrzymuje się. [syntax=basic4gl]...
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,...
Witam, Po długiej przerwie wziąłem się do pracy z wyświetlaczem, lecz znów nie powodzenia. Przy użyciu funkcji watchdog mruga pierwsza kolumna i nic poza tym. Przy zmianie częstotliwości wyświetlania napięcie zwiększyło się w granicach do 3V. Ciut lepiej lecz też nie do końca zadowalające. Wrzucam...
Witam wszystkich. Uzywam Eclipse + OpenOCD (0.9.0) + GCC. Do tej pory używałem STM32F103 (Cortex-M3), a teraz przesiadłem się na STM32F373 (Cortex-M4). Wziąłem ze starego programu skrypt linkera, startup, vectors.c i posklejałem do kupy odpowiednio je modyfikując. Program generalnie odpala się, mogę...
W naszym regionie dystrybutorem OLEd-u jest czeska firma. Ale mam inne pytanie, czy trudno jest dorobić interfejs do wyświetlacza OLED 1.8 " z czytnika mp4 . taki czytnik na alegro to cena 98 zł. np. Thomson EM 2801, wymiary 40 x 91 mm całej obudowy - Dodano po 4 Mam mały problem , wszytkie...
Witam a wiec po koleji.Testowałem zmodyfikowaną wersje kolegi Gromelon (jeszcze nie na przerwaniach).i narazie nie zaobserwowałem żadnych błędów w działaniu(chodzi mi o to że raz układ reagował na przekaźnik z radia a raz nie)Wydaje mi sie że pomogłą funkcja Debounce usuwająca drgania styków w czasie...
Kod po poprawkach: [syntax=basic4gl]'Termore... By Morswin '23.10.2011 $regfile = "m8def.dat" $crystal = 8000000 Config Portd = Output Config Pinc.1 = Output Config Pinc.2 = Output Config Pinc.3 = Output Config Pinb.0 = Output Config Pinb.1 = Output Config Pinc.4 = Input Config...
Witam, napisałem program korzystający z USART-u. Zmiana stanu na wybranych wejściach uC ma powodować wysyłanie trzybajtowych pakietów danych. Wysyłanie odbywa się za pomocą przerwania USART_UDRE_vect. I oto dziwna rzecz: Pomimo, iż w SREG ustawiony jest najstarszy bit, w UCSRA sprzęt wystawia flagę...
Dlaczego w przerwaniu robisz coś takiego, jak odliczanie czasu? Poza tym, masz gdzieś w programie zadeklarowane delay ? Jeśli chcesz, żeby watchdog wybudzał Twój układ ze stanu oszczędności energii: :arrow: 10. Power Management and Sleep Modes - tam masz opisane z jakich stanów wybudza WDT i...
Witam Chcę zwiększać minuty na moim RTC DS1307 odczytywanym na wyświetlaczu LCD za pomocą przycisku, godziny zostawiam sobie na później. Co udało mi się zrobić: Ustawiam Arduino w trybie SLEEP_MODE_PWR_DOWN, z wybudzaniem co 60 sekund, razem z możliwym wybudzeniem w dowolnym momencie za pomocą przycisku...
Coś mieszasz..., pstryka ale się resetuje..., może watchdog zepsuty? Albo pstryka i watchdog zepsuty albo wydaje ci się że pstryka. Hehe, no w zamyśle tak pstryka ;) I wtedy działa długo bezproblemowo... stąd moje domysły Nie wiem, czy mam rację, ale jeśli wspomniany task 1ms ma najwyzszy priorytet...
Witajcie moi drodzy W tym temacie pokażę jak każdy początkujący może najprościej uruchomić w warunkach amatorskich mikrokontroler PIC32MX795F512H bez potrzeby trawienia/kupowania pod niego konkretnego PCB. Oprócz minimalnego niezbędnego układu pracy tego mikrokontrolera umieszczę tutaj kilka...
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ą...