Nie wiem jak to dokładnie wygląda w GE ale w Siemensie są różne OB - jeden z nich jest odpowiedzialny za przerwania cykliczne (cyclic interrupts) - podejrzewam, że w GE jest coś podobnego - wystarczy ustawić odpowiedni czas wywołania przerwania
Ale mieszasz. Ustawiłeś dwa cykliczne przerwania i dziwisz się, że coś nierówno miga. Tu w avr nie ma wielowątkowości sprzętowej i jedno przerwanie przeszkadza drugiemu. Przenieś i wyłącz to przerwanie to co masz w ISR(TIMER2...) do ISR(TIMER1...) . Idea programowego PWM i timerów jest właśnie w tym aby działało wszystko pod jednym wspólnym cyklicznym...
Witam Blok OB35 jest blokiem przerwań cyklicznych. Oznacza to, że zawsze co określony np. 100 ms (definiuje się go w parametrach CPU) system operacyjny CPU będzie przerywał wykonywanie bloku OB1 i jednorazowo wykonywał blok OB35 a następnie kontynuował wykonywanie OB1. Jeżeli w cyklu w którym nastąpi wywołanie przerwania OB35 stan wyjścia Q125.7 wynosi...
W ATTiny timer chyba przejmuje kontrolę nad IO, więc włączenie/wyłączenie odbywa się z poziomu konfiguracji timera. CZyli robisz to tak - np. ustawiasz inny timer, aby generował przerwanie co 1s, a w obsłudze tego przerwania w zależności od potrzeby konfigurujesz timer generujący PWM. Chyba to najprostsze rozwiązanie.
w każdym komputerze była jakaś forma timera, np. przerwania cykliczne od chipsetu Nie, nie w każdym, np. Apple II nie miał w ogóle TIMERÓW może z wyjątkiem 4 specyficznych, które służyły jedynie do obsługi joysticka . Co ciekawe system też nie korzystał w ogóle z przerwań, co dawało ogromne możliwości użytkownikom w rozbudowie komputera. Z racji tego,...
jak mi się wydaje No to nie wiesz po zmianie czego program zaczął działać poprawnie? ;) Mam teraz pytanie. Ze względu, że dostaje kilka ramek jak zapisać do zmiennej: $GPGGA ? Chcę zrobić odczyt od łańcucha $GPGGA aż do 14 znalezionego przecinka po $GPGGA? Do stosowania strtok() taki bufor może okazać się za mały. W prawdzie jest to jakieś rozwiązanie,...
Przerwanie na OB35-38 i inkrementowanie jakiegoś DBW, bądź DBD jeżeli w chwili przerwania jest spełniony warunek. Rezultat: apteka. Trzeba pamiętać o resetowaniu licznika, tudzież o obsłudze przepełnienia. Można się też bawić w odczytywanie czasu systemowego procesora na początku i na końcu mierzonego procesu. Zdecydowanie nie polecam, bo: - trudniej...
Załóżmy, że to też błąd przy wklejaniu kodu (inaczej asembler zgłosiłby błąd). Powinno być R21 , a nie R121 . Być może to też błąd przy wklejaniu. Bity WGM12 , CS12 oraz CS10 nie znajdują się w rejestrze TCCR1A tylko w TCCR1B . Istotne jest jednak to, że ustawiając tylko bit WGM12 ustawiasz TIMER1 w tryb 4, czyli tryb CTC, w którym timer liczy od 0...
Na swoim GitHub umieściłem nową wersję, w której dodałem obsługę Z80ACTC i cykliczne wyzwalanie przerwania z zewnątrz w kanale 0 (pozytywka to robi, jak jest podłączona). Ponadto, poprawiłem działanie dźwięku, teraz nie powinno być przypadków, że podczas pracy emulatora dźwięk nagle milknie.
Witajcie, Chciałem uruchomić cykliczne przerwanie (100Hz) od timera TB0 i robię coś nie tak, bo przerwanie nie jest wyzwalane. Mikrokontroler taktowany wewnętrznym RC 2.66MHz. Konfiguracja Timera: [syntax=c] TCB0_CCMP = 26666; //100Hz TCB0_CTRLA = TCB_CLKSEL_CLKDIV1_gc|TCB_ENABLE_bm; //2.66MHz TCB0_CTRLB = TCB_CNTMODE_INT_gc; //Periodic Interrupt TCB0_INTCTRL...
https://obrazki.elektroda.pl/8747912800_... Arduino PLC IDE pozwala programować urządzenia Portenta Machine Control i Arduino Opta przy użyciu pięciu języków programowania zdefiniowanych przez standard IEC 61131-3: Diagram drabinkowy (schemat połączeń elektrycznych) Diagram bloków funkcyjnych (graficzna reprezentacja funkcji) Tekst...
Wpadł mi w ręce uszkodzony tuner TV-Sat Echostar DSB-717 i postanowiłem jakoś go wykorzystać. A właściwie nie cały, tylko płytkę z wyświetlaczami i mikrokontrolerem ATTiny2313. Układ mierzy temperaturę w 6 punktach z wykorzystaniem czujników Dallas DS18B20 przy rozdzielaczu co na podłogówkę i grzejniki. Mierzę temperatury: - zasilania i powrotu z podłogówki...
Nie stały tylko minimalny czas cyklu a to nie to samo. Znaczy tyle że jeżeli czas cyklu obiegu głównej pętli jest krótszy niż zadany to jest wprowadzane sztuczne opóźnienie do minimalnego czasu. Można to na upartego nazwać stałym czasem, jeżeli wiemy, że pętla główna zawsze wykonuje się szybciej od tego czasu. Jest jeszcze maksymalny czas obiegu głównej...
1. Z jakiegoś powodu wczytując dane ze sterownika ( zmieniając je) i zapisując ponownie nie są one zapisywane na sterowniku. Zapewne masz na myśli konfgurację sterownika ? Mam tutaj na myśli np zbocze przerwania. Domyślnie ustawione jest na narastające, po zmianie na opadające nie ma reakcji. Potwierdzone to jest także kiedy ponownie wczytam dane....
A jaki masz kwarc? Robi się to na tajmerze, w obsłudze przerwania (wywoływane cykliczne co zadany czas np. co 10ms) robisz licznik programowy, który Ci odlicza te 2 sek. Ale z tego co widzę to chyba nie za duzo wiesz o uC? Do czego to ma służyć?
Jak dla mnie to powinno być tak. Nie mam kompilatora pod rękom nie jestem pewien czy jest dobrze ale to mniej więcej to. Kod: $regfile = "m8def.dat" $crystal = 1000000 Config Portd = Input ' ustawiam we/wy Dim A As byte 'po co marnować pamięć A = 0 Config Timer0 = Timer , Prescale = 1024 Enable Timer0 Enable Interrupts Do If Pind.4 =...
Cykliczne wybudzanie nie sprawdzi się w tym temacie. Przycisk wybudzajacy może zmienić swój stan w dowolnej chwili i wybudzenie musi nastąpić natychmiast, więc w zasadzie musiałbym go wybudzać co 50ms. To bardzo często. R Dodano po 6 Też trochę się obawiam tak słabego podciągania, choć jest tam jeszcze kondensator 1n do masy...niemniej jednak chyba...
I2C jest rygorystyczne czasowo. Inne przerwania mogą powodować błędy. Zrobić I2C na przerwaniach o najwyższym priorytecie. Uchronić przed błędami powstałymi z HOR-PLUG. Np cykliczne pytanie i resetowanie I2C po konfiguracji sprawdzenie flag oraz stanu pinów.
Witam. Posiadam mikrokontroler STM32F429. Jest on wyposażony w liczniki z funkcją PWM i układy DMA. Chciałbym opracować program, który płynnie zwiększa wartość wypełnienia sygnału PWM, po czym ponownie zmniejsza, wg. schematu: krok 1) 0% ----płynne zwiększanie----> 100% krok 2) 100% ------ płynne zmniejszanie -------> 0% Cały cykl powinien się powtarzać:...
Niestety BoskiDialer ma rację. co z tego, że do przerwania chesz wchodzić co ileś, jeśli nigdy z niego nie wychodzisz.
Trudno osobie która wykorzystuje same gotowe funkcje tłumaczyć od podstaw timery. Bo innego sensownego sposobu zamiany "delay();" w tym momencie nie widzę. Jeśl nikoś14 chciałby się zaznajomić z tym zagadnieniem: http://diycenter.acid19.linuxpl.com/read... http://maxembedded.com/2011/07/14/avr-ti... Przy kolejnym wciśnięciu...
Witam, Mam do wykonania prosty system, który przez większość czasu pozostaje w uśpieniu i co 10 sekund wybudza się by wykonać swoje zadania po czym przechodzi do trybu power-down. Poszukiwałem mikrokontrolera w 14-nóżkowej obudowie (potrzebne SPI i INT0) z pamięcią flash w granicach 4kb, który dysponuje trybem asynchronicznym timera, który to daje możliwość...
Jak się okazuje to ATMega 128 i wszystkie wyższe z tej serii mają całkowicie ine definicje większości rejestrów i ustawień bitowych, trzeba dobrze poczytać noty katalogowe, niestety angielskie i to techniczne, więc podstawowa znajomość angielskiego nic nie da,dobrze z tłumaczeniem takich tekstów daje sobie radę Translator 2 firmy KOMPAS, oczywiście...
:arrow: uruchonienie PWM jest proste - wystarczy zaladowac odpowiednie liczby do rejestrow licznika. poczytaj datasheet z www.atmel.com :arrow: klawisze gora/dol mozesz podlaczyc pod przerwania zewnetrzne i w podprogramie obslugi przerwania tylko modyfikujesz zawartosc jednego rejestru licznika - odpowiedzialnego za wypelnienie przebiegu. pamietaj o...
przekaźnik tianbo hjr-4102-L-5v (relay shield dla arduino) bierze kilkadziesia mA. chodzi o to, że tak: (dla Led na plytce arduino) digitalWrite(13, StateCopy); działa (raz wciskam przycisk, dioda sie zapala, puszczam, cały czas swieci, kolejny raz zapalam i gasnie) a tak: (dla przekaźnika na pinie4) digitalWrite(4, StateCopy); nie działa (tzn, przycisk...
Witam Używałem już funkcji "szukaj" nie znalazłem nic sensownego. Potrzebuje schematu przerywacza który jest zasilany 230V i sterował np: przekaźnikiem. A przekaźnik załączał żarówkę 230v 25w. Chodzi mi tutaj o jakieś cykliczne przerwania co 2 sec np. Lecz nie może być to "starter" od jarzeniówki bo będzie to zamontowane w lampie ostrzegawczej w bramie...
Jeśli urządzenie działa tak jak chce autor, to każdy sposób wykorzystania przerwania zewnętrznego jest prawidłowy. W niektórych przypadkach podłączenie przycisku pod pin przerwania zewnętrznego jest niezbędne np. by wybudzić mikrokontroler z trybu Power Down lub Standby. Czasami nie ma po prostu innego wyjścia, ze względu specyficzne wykorzystanie...
Jeśli w OB1 użyję MB20 i wpiszę do niej liczbę 20. A przerwanie co 1ms zwiększa liczbę o 5. To w MB20 będę miał 25? Tak. Po pierwszym przerwaniu. Chodzi o to, że odczytując MB20 dwukrotnie w kodzie OB1 możesz otrzymać dwie różne wartości. To samo w sobie nie jest nic złego, ale łatwo popełnić błąd w programie zapominając o tym fakcie. if MB20 <...
Może powinieneś (na przykład) jednak synchronizować ten timer. Dzięki za sugestię bo nie pomyślałem o tym wcześniej, jednak i to nie pomogło. A może powinieneś (na przykład) w ISR, wyłączyć timer na czas ładowania a następnie włączyć z powrotem. To rozwiązanie pomogło, choć nie bezpośrednio. Bowiem rzeczywiście chwilowe wyłączenie timera i włączenie...
Z trybu STOP Mode procesor może być wybudzony przez przerwania zewnętrzne lub zdarzenia RTC: https://obrazki.elektroda.pl/3121908700_... Który konkretnie procesor posiadasz ? Najprościej w twoim wypadku było by wykorzystać opcje "Periodic wakeup" z RTC, jednak jest ona dostępna tylko w rodzinie STM32F030xC (z STM32F030). Kolejna opcja...
Hej, mam problem, z którym walczę od dłuższego czasu. Posiadam przetwornik A/C, z którego dane (słowa 16 bitowe) wypuszczane są w postaci szeregowej (bit za bitem). Próbuję zebrać te dane za pomocą przerwania od GPIO, które wyzwalane jest zegarem generowanym przez przetwornik (inna linia niż dane). I teraz problem jest następujący: przy zegarze większym...
Do Salata. Sprawdziłem Twój plik. Fajnie to działa do kręcenia bębnem. Robi on kilka ruchów i staje na dobre, ale pralka pierze duuuużo dłuzej. Zerknij na moje rozwiazanie krecenia bębnem robi on cykliczne ruchy i jest w pętli tzn. będzie działał do przerwania tego cyklu. Nie jest to jeszcze to co chciałem uzyskac ale działa. pozdrawiam.
proponuje trochę policzyć i nie panikować, przerwania ustawiają flagi, obsługiwane są jeżeli tylko znacznik "I" na to pozwala. jeśli obsługa 1-nego przerwania zwiększać będzie tylko pewien licznik, a nawet gdyby miało to zająć 100-cykli i tak wszystkie 3 przerwania to 8.000.000 (8MHz)/100/3=prawie 27kHz. wątpię aby tak szybko następował wtrysk i przychodziły...
Mam problem z aktywacją przewań czasowych a konkretnie blokami OB35 i OB32. pierwszy to przerwanie cykliczne 1ooms drugi 1 sek. Jeżeli symuluję program to nie ma żadnych problemów a jak próbuję załadować program do sterownika to ładuję cały program z wyjątkiem bloku OB32 i pojawia się błąd że nie może skopiować tego bloku bo klasa piorytetu przerwania...
Ja wykorzystuje cykliczne przerwanie od wachdog'a. Ustawiam SLEEP na power-down. Srednie zuzycie prądu to 5 uA. Wcale nie musisz w kazdym przerwaniu sprawdzac czy jest poczta. Wystarczy ze bedziesz zliczal przerwania w zakresie 0-255 i co 256-ste przerwanie właczysz LED i odczytasz napiecie z fotodiody. Jezeli ustawisz wachdog na okolo 2 sek to bedziesz...
Nie bardzo rozumiem, co to znaczy, że napis ma się "nie wyświetlać". Jeśli został choć raz wysłany, to terminal go wyświetli. Natomiast jeśli chodzi o cykliczne przesyłania napisu, to jakoś nie widzę w tym programie warunku"jeśli przycisk zwolniony, to wyślij napis". W dodatku przez UART nie da się popranie przesyłać danych bez przerw, więc przesyłanie...
[syntax=text]Witam książkowy program trochę przerobiony do swoich potrzeb i wyskakują takie błędy jak w temacie. Proszę o jakieś wskazówki. Bo właśnie się poddałem (brakuje mi pomysłu brak wiedz z c), szukałem i w google ale nic nie znalazłem. Zaczyna przygodę z c i się uczę dobra kod programu[/syntax] [code][syntax=c] plik LED4_Plex.c #include <avr/io.h>...
Stworzyłeś falę nośną ale to ci wiele nie da. Zrób dokładnie tak jest napisane z tym czasem 889us taki zrób okres licznika ale nie steruj nim wyprowadzenia. Wykorzystaj to odmierzanie czasu w funkcji aby kolejno wystawiać stany takie jakie potrzebujesz. Moja koncepcja to w funkcji wysyłania ramki pętla for na początek bez przerwań dla pokazania idei:...
Dlatego pytałem o dokładność. A tak naprawdę to zibi11 pytał o odmierzenie cylki 60s, a nie o zegarek. Biję się w pierś - przy odmierzaniu cykli rozwiązanie przerwań i timera wystarczy całkowicie - ja od razu skojarzyłem 60s z zegarkiem! Chyba że się mylę. Najprostrzym rozwiązaniem jest pcf8583 i wyzwalanie cykliczne wejścia int0 co 1 Hz. Za dokładność...
po modyfikacji kodu który wygląda tak: [syntax=c]#include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #define FOSC 16000000 #define BAUD 9600 #define MYUBRR FOSC/16/BAUD-1 #define FOTO_PIN (1<<0) #define FOTO_PINx PINC #define FOTO_DDRx DDRC #define green0 PORTB &=~(1<<0); #define yelow0 PORTB &=~(1<<1);...
Zacznę od tego Nie posądzam cię o chęć poniewierania mnie, i słusznie sądzisz, bo nigdy tego świadomie nie robiłem, na myśl mi to nigdy nie przyszło i jeżeli takie wrażenie odniosłeś, to bardzo przepraszam. Lubisz sobie popisać :), ale z takiego ładunku ciężko odcedzić wynik. Wynika to może z tego, że zawsze staram się uzasadnić to co piszę. W pracy,...
Pomyśl sobie, a jakbyś chciał obsługiwać nie jeden klawisz w ten sposób ale 3,4,5 albo 10 - to skąd byś wziął tyle tych przerwań ? po jednym dla obsługi każdego itp ? Do obsługi przycisków i eliminacji drgań styków w ogóle można sobie darować z powodzeniem wszelkiego typu przerwania zewnętrzne, aż skoda ich marnować ;) przydadzą się do czego innego....
.... dodaję że problemy mam z tym że jeśli umieszczę moje wypociny w przerwaniach to podczas wysyłania danych z modułu A instrukcją Print to układ lubi mi się zawiesić , lub mam problemy z odebraniem kompletnych danych. W tem przykładzie jaki podałem ostatnio wszystko chodzi idealnie poza tym że mam zaśmieconą i opóźnioną przez to pętlę główną. Posłuchaj...
Mam problem z wysyłaniem sms, wykorzystuję atmege128 i moduł sim900 na płytce Evb v1.01_pcb , proszę o rzucenie okiem na kod gsm.c [syntax=c]// PLIK: gsm.c // Dołączone biblioteki #include <avr/io.h> // Biblioteka obsługująca peryferia mikrokontrolera #include <avr/interrupt.h>// Biblioteka obsługująca przerwania mikrokontrolera #include...
Diagnostyka maszyn wirujących i wczesne wykrywanie potencjalnych zagrożeń jest niezbędnym elementem utrzymania ciągłości ruchu wielu obiektów przemysłowych i linii produkcyjnych. Poprawna ocena stanu silnika pozwala na precyzyjne zaplanowanie ewentualnych napraw i uniknięcie nieplanowanych przestojów. W wielu przypadkach pełny obraz kondycji uzwojeń...
Za sterowanie wyjściem odpowiedzialny jest układ czasowo licznikowy T1. Generuje on cykliczne przerwanie, którego czas obliczany na podstawie częstotliwości ustawianej za pomocą klawiatury. Za sterowanie wyjściem odpowiedzialny jest układ czasowo licznikowy T1. Generuje on cykliczne przerwanie, którego czas obliczany jest na podstawie częstotliwości...
Planuję przerobić swój wartości ostatnio wysłanego bajtu. Odpytywanie sterownika przez port RS musi odbywać się w osobnym wątku, w tle. Co n wysłanych bajtów inicjowana jest procedura przetwarzająca odebrane dane z tablicy Response i wpisująca je w odpowiednie etykiety na formularzu. Na koniec jeszcze jednak uwaga musi to działać na .NET 2.0. Z góry...
Dla programowego PWM funkcja będzie skomplikowana, ponieważ musisz sterować wszystkimi potrzebnymi wyjściami jednocześnie, rozbicie na poszczególne funkcje dla pinów i przetwarzanie cykliczne raczej nie wchodzi w grę, ponieważ nieobsługiwane w danym momencie wyjścia zepsują swój współczynnik wypełnienia. Więc chyba o jakimkolwiek wolnym czasie procesora...
Poprawiłem kod, był błąd przy zamianie adc na Uwe. http://obrazki.elektroda.pl/9994453300_1...
PWM można zrealizować programowo np wg poniższego schematu. Do tego trzeba dołączyć np. klucz MOSFET na odpowiednie prąd/napięcie (stosowne rozwiązania sterowania MOSFETA znajdziesz na elektroda.pl). Poniższe rozwiązanie z powodzeniem hula mi w układzie od lat ośmiu: T0INT EQU0BH ;T0 interrupt start address FLAGS EQU28H OUTPRTEQUP2 ;Output port AB0...
cykliczne załączanie cykliczne włączanie cykliczne przodu
toczenie tarczy hamulcowej włącznik rozrusznika rejestrator napięcia akumulatora
clarion nx501er odkurzacz zelmer
Podłączenie oświetlenia schodowego z czujnikami ruchu Błąd E8 w zmywarce Bomann - przyczyny i rozwiązania