Zobacz sobie : Timerów masz kilka w zależności od Twojego STM32 TIM1, TIM2-5 etc, ja korzystam z F4 więc nie chce ci za bardzo motać, ale generalnie zasada jest taka sama, na samy początku rozdziału o jakim koliwek Timerze masz napisane że Timery składają się z 16 bitowego licznika The TIM9/10/11 general-purpose timers consist of a 16-bit auto-reload...
Mam problem z programem w którym timer ma zliczać impulsy (zbocza opadające). Konkretnie zegar timera ma działać w rytm impulsów podawanych na piny TIM4_CH1 i TIM4_CH2, z tym, że osobno liczę impulsy z każdego kanału i generuję osobne przerwanie dla każdego kanału. Liczenie impulsów z dwóch kanałów powinno działać jednocześnie. Impulsy pochodzą od 2...
Jak mogę obsłużyć przerwanie tak, aby sygnał wykonywał się zadaną ilość impulsów. Np 10 impulsów i sygnał kończy gnerowanie Liczyć w przerwaniu do 10 i np wyłączyć je (znam dwa sposoby, przez NVIC lub wyłączyć timer). Można też w przerwaniu przestać robić to co robiłeś czyli "tachlować" GPIO i skończy się "gnerowanie" impulsów. Do liczenia użyj zmiennej...
Cześć mam pytanie odnośnie tego w jaki sposób można zliczać impulsy podawane na dowolny pin? W moim projekcie zliczam impulsy z 4 źródeł w przerwaniach zewnętrznych na liniach P0, P1, P2, P3 problemu nie było do wczoraj gdy okazało się, że muszę kontrolować jeszcze jedno wejście - też P0. Z tego co wiem nie da się w przerwaniu zewnętrznym rozstrzygnąć...
Mam problem z generowaniem paczek impulsów o częstotliwości około 20-30kHz. Potrzebuje np. wygenerować dokładnie 300 impulsów w takiej paczce. Ocz nie mogę blokować procesora, bo w tym czasie dzieje się dużo innych rzeczy. Jedyne co przychodzi mi do głowy to połączenie dwóch timerów, gdzie jeden wyznaczy dokładny czas ile ten drugi będzie generował...
Witam. Otóż mam taki problem. Mianowicie chciałem zbudować licznik różnicowy na mikroprocesorze, działającego w ten sposób aby na wyświetlaczu pokazywał różnicę impulsów podawanych do uC. Mam do dyspozycji ATMEGE32 z trzema timerami T0,T1,T2. T1 wykorzystałem na przerwania do obsługi wyświetlacza. Pozostał T0,T2. T0 podłączyłem do kontaktronu. Natomiast...
Cześć mam pytanko odnośnie mojego projektu dotyczącego STM32 F103RB NUCLEO Tematem mojego projektu jest generowanie sygnału kwadraturowego o zadanych parametrach: -ilość impulsów -rozpędzanie / hamowanie - prędkość Muszę użyć do tego timera i podczas generowania tego sygnału zwracać prędkość w każdym impulsie. Ma to symulować coś jak silniki krokowe...
witam robie komputerek pokładowy do astry i nie wiem jak zliczać impulsy z dwóch żródeł (czujnik obrotów i impulsy drogi) i jednoczesnie odmierzać czas np 1s. Powiedzmy ze program ma wyświetlać obroty silnika co sekundę ( liczy impulsy w czasie 1 s zapisuje do zmiennej i wyświetla na wyświetlaczu) .W jaki sposób to napisać (programuje w C na 16f84a),...
Chcę zbudować obrotomierz cyfrowy na bazie ATmegi8, i mam małą zagwozdkę. Zastanawiam się, w jaki sposób oprogramować zliczanie impulsów. Zakładam, że procesor ma liczyć impulsy przez 0.5s, potem podawać wynik na wyjścia albo obrabiać dalej. Sama struktura programu miałaby się przedstawiac mniej więcej tak: superloop: wait_ms(500); podaj na wyjścia...
Witam mam taki problem z przerwaniami int0 chciałem podłączyć transoptor szczelinowy pod wejście int0 atmegi16 i zliczać impulsy tylko jest taki problem ze jak zasłonię szczelinę transoptora to zamiast mi dodać 1 impuls to dodaje mi albo 2 albo 10 jak padnie w czym może być problem poniżej zamieszczam kod i schemat http://obrazki.elektroda.pl/3492000700_1...
Witam Mam w planach budowę prostego manipulatora. Do jego obslugi chcialem użyc mikrokontroler AT908515 lub podobny. Na jego wejscia beda podane miedzy innymi impulsy z 3 enkoderów do pomiaru obrotów.Maksymalna czestotliwosc pojawiania sie impulsow byla by na granicy 400 impulsow/s I tutaj mam pytanie: czy można zliczać te impulsy nie wykorzystujac...
Witam, Dopiero zaczynam przygodę z STM32F407G i nie mam zbyt dużo doświadczenia. Potrzebuję wygenerować paczkę 8 bitów powtarzaną cyklicznie co jakiś zadany czas tylko zależy mi na tym aby szerokość impulsu nie przekraczała 0,5us no i żeby można było generować różne 8 bitowe paczki impulsów. Czy ten procesor do tego wystarczy? Niestety korzystając ze...
Ktoś zliczał impulsy przerwać programowo? Jaką częstotliwość maksymalną można zliczyć?
Zrobiłem prosty licznik impulsów na AT90S2313 tylko nie mogą go wyskalować tak jak mi to jest potrzebne. Nie wiem jak to rozwiązać programowo przez jakie polecenie. mój program liczy, jeden impuls doprowadzony do procesora to jeden przeskok licznika. Ja chcę to zrobić żeby jeden przeskok licznika był co 4 impulsy jak to rozwiazać programowo?
Witam, Do STM32F4 mam podłączony enkoder inkrementalny o rozdzielczości 1024 imp/obr. Chciałbym wykorzystać pełne możliwości sprzętowego modułu obsługi takich enkoderów przez F4, czyli zmieniać wartość licznika na opadających oraz narastających zboczach sygnału. W tym celu skonfigurowałem Timer 3 w następujący sposób: TIM3->CR1 |= TIM_CR1_UDIS; Bez...
Mam problem, bo za bardzo nie wiem jak jednocześnie liczyć impulsy na kilku wejściach. #include <avr/io.h> #include <avr/interrupt.h> #include <avr/signal.h> #include <avr/rs232.h> static volatile unsigned int l; SIGNAL (SIG_OVERFLOW1){ TCNT1H = 0x81; TCNT1L = 0x71; USART_Transmit(l/2); l=0; } int main(void)...
Witam, od jakiegoś czasu walczę z ustawieniem timera, aby zliczał impulsy z enkodera. Jest to enkoder inkrementalny, który daje 500 impulsów na obrót. Chciał bym do tego celu wykorzystać timer3 na pinach PB0 (CH3) i PB1 (CH4). Zliczać próbuje w ten sposób, ale niestety licznik stoi w miejscu. [syntax=c] RCC_AHB1PeriphClockCmd( RCC_AHB1Periph_GPIOB,...
Witam Nie moge poradzić sobie z napisaniem programu na AVR lub '51, który: Na wejściu np: A.1 będzie zliczał impulsy i od razu na wyjściu np: A.2 będzie podawał impulsy np o 10% większe Przykład: Wejście A.1 = 700impulsów/sek Na wyjściu A.2 = 10% więcej , czyli 770imp/min Proszę o pomoc Pozdrawiam
Witam, Mam taką prośbę do bardziej doświadczonych o wskazanie najlepszej drogi :) problem jest taki - potrzebuję generować impulsy do wysterowania drivera silnika krokowego i mieć możliwość zadawania częstotliwości w skali liniowej. Korzystając oczywiście z zasobów STM32F103RB tak, by zużyć jak najmniej czasu procesora. Z implementacją (mam nadzieję)...
Pracuje nad programem którego część w której mam właśnie problem ma sie zajmować zliczaniem impulsów od dwóch silników.Silniki pracują jednocześnie i każdy z nich daje 2 impulsy na jeden obrót.Prędkośc obrotowa każdego to 600 obr /min.moje zliczanie impulsów ma słózyć do regulacji obrotów tak aby mniej wiecej równa sie kreciły ale tak nie super dokładnie....
Na początek musisz w jakiś sposób zmieniać stan tego pinu. Jak chcesz liczyć impulsy których nie ma?
No nic, nie jestem w stanie tego poprawnie skonfigurować. Próbowałem uruchomić opcję "Gated Mode" ustawiając rejestr TIM1->SMCR = 0x55; Problem mnie przerasta. Bardzo prosił bym o podpowiedź - po kolei jak to skonfigurować. W ostateczności polecę w pętli licząc czas do opadnięcia pinu. Pozdrawiam.
Dzięki wielki za szczegółowe wytłumaczenie wszystkiego. Troszkę dostałem zaćmy :-) i zacząłem liczyć takty timerów , "sklejać" ze sobą przebiegi PWM, i mi nie wychodził czas, a przecież długość całego impulsu ustawia Zegar SPI.
Kod składniowo jest dobry. Chodziło mi że nie rozumiem idei jego działania. Np. po co sprawdzać czy TIM4->CNT <= 9? To by oznaczało że za każdym razem TIM4->CNT zmienia się o 1 (i każda taka zmiana to potem programowe sprawdzenie). A to bez sensu: w takim przypadku Timer pracuje jak zwykła zmienna, czyli po co Timer skoro można po prostu dać...
Przepraszam, że zawracam głowę prostymi pytaniami, ale nie rozumiem skąd się wzięła wartość z komentarza w książce "Mikrokontrolery STM32 w praktyce". W rozdziale "6.6 Obsługa przycisków" na listingu 6.10 jest poniższy fragment kodu: // Ustawienia układu podstawy czasu TIM_TimeBaseStructure.TIM_Period = 10000; TIM_TimeBaseStructure.TIM_Prescaler = 24000;...
Dzieki za praktyczne porady :) Freddie - odnosnie Twoich porad: 3. Przeladowanie timera rozumiem robisz przy hego doliczeniu? w jego przerwaniu? zeby uniknac sytuacji gdy zmiejszasz mu wartosc do jakiej ma doliczyc juz po jej przekroczeniu - musialby wtedy liczyc az do przekrecenia? Kwestia generowania impulsow - chwile juz na STM32 nie pisalem i nie...
Witaj Kolego Szczywronek ! Oczywiście, mam nadzieję, że wiele razy już czytałeś jak piękną robotę odwaliłeś pisząc swój poradnik. Myślę, iż słowo poradnik jest nieadekwatne do tej książki, którą wydałeś w domenie PUBLIC DOMAIN. Wielki szacunek i wielkie podziękowania, za włożony trud! Nie mniej jednak w rozdziale 1.4 (uwagi końcowe) dałeś przyzwolenie...
Hmm... teraz jak sobie o tym pomyślałem, to wychodzi mi na to, że z dwoma timerami i enkoderem to się nie uda - no bo właśnie ten drugi timer (zwiększający rozdzielczość) będzie liczył tylko w górę, bo niby czemu miałoby być inaczej? Nie da się więc tego zrobić... Co więcej - gdybyś swoim enkoderem kręcił w okolicy "przejścia przez zero" - takie oscylacje...
Można eliminować drganie styków w bardzo prosty sposób wyzwalając w przerwaniu EXTI jakiś bardzo prosty timer w trybie one_pulse_mode, jednocześnie wyłączając przerwania. Jak timer skończy liczyć jeden impuls i wejdzie w swoje przerwanie to załącza przerwania z EXTI. absolutna konieczność
oba przerwania wykonują się z taką samą częstotliwością, niezależnie od tego co wpiszę w Pulse Nic dziwnego :) Przecież oba mają tę samą podstawę czasu, czyli rejestr TIM1->CNT. Jedyna różnica jaką mógłbyś zobaczyć, to moment przełączenia wyjścia lub pojawienia się flagi przerwania. Ale nie zobaczysz, ponieważ niezbyt szczęśliwie dobrałeś czasy 0 i...
Mogę się mylić, ale w tym przykładzie kolega miga diodką wykorzystując GPIO a nie podpinając do wyjścia timera, więc gpio out pp może chyba być. Czy kol. qczek przypadkiem na koniec nie konfigurujesz ch1 w tim2 jako capture, czyli "łapiącego" i liczącego impulsy z zewnątrz? TIM_SetCompare1(TIM2, TIM_GetCapture1(TIM1) + CH1_PULSE ); Poza tym nie zauważyłem...
reaguje na oba zbocza, przerwanie wykonuje się kilka razy Może jednak sygnał z tego czujnika, a ściśle napięcie na pinie nie jest czyste jak sobie zakładasz, szczególnie jeśli idzie jakimś dłuższym kablem. Możliwe są odbicia, oscylacje itp. . 411 jest przecież bardzo szybki i już jakieś oscylacje z okresem ułamków mikrosekundy mogą grać rolę. Impedancyjnie...
dea jest taka, że należy skonfigurować Timer1 na FastPWM z rejestrem ICR1 jako Top (czyli licznik będzie liczył do wartości tego rejestru). Należy tak dobrać preskaler i wartość ICR1 by licznik przekręcał się co 20ms a więc np. preskaler 1024 i ICR1 15625 (a raczej 15624 bo licznik liczy od zera). Przy tych ustawieniach otrzymujemy granulację 1,3 µs/tick,...
Tylko tak jak na stronie Arduino pisze Jest napisane. , funkcja pulseIn() "Works on pulses from 10 microseconds" co daje 100Hz bez dzielnika a z dzielnikiem tylko 400Hz. Więc jak to rozwiązać? Już napisałem, sygnał mierzony dajesz na wejście licznika. Tak można mierzyć częstotliwości do częstotliwość_taktująca_mikrokontroler / 2. W nocie katalogowej...
W porządku, wiem jak zmienić pojemność licznika, sam to także napisałem. Mi chodziło o to, że jak kręcę enkoderem zwiększając licznik, to żeby zatrzymał się na tym 99 mimo kręcenia enkoderem dalej. Tymczasem on się zeruje i zlicza od początku. Może być to groźne, jeśli będę chciał sterować np. napięciem w zasilaczu. Przebicie licznika może spowodować...
Nie wiem, jak się programuje przerwania na RPi, robiłem to na PC - na starym PC/XT dało się wyciągnąć powtarzalny pomiar impulsu z rozdzielczością us, ale na zablokowanych przerwaniach (poza tym, które uruchamiał mierzony sygnał), na współczesnych, nawet niezbyt szybkich, ns pewnie jest do osiągnięcia. Ale jeśli jest obsługiwane przerwanie akurat wtedy,...
Większość amatorskich konstrukcji detektorów promieniowania jonizującego opartych jest o lampy Geigera-Mullera, w tym wpisie chciałbym Wam przedstawić inną konstrukcję, opartą o detektor półprzewodnikowy, którym tu jest fotodioda. Plusem takiego rozwiązania jest: - brak konieczności stosowania lamp GM, które są dość drogie. - brak konieczności stosowania...
Ok rozumiem. W jednym z tematów na forum znalazłem: Są rożne sposoby, najprostszym jest: PWM chodzi z stałą częstotliwością, kolejne elementy z tablicy sinusa podawane są w przerwaniu do rejestrów PWM co jakiś okres czasu, zmieniając ten okres zmieniasz częstotliwość pierwszej harmonicznej napięcia. I nny sposób to stały okres wpisywania do rejestrów...
Przyznaję rację, że liczenie i zastosowanie metody Freddiego działa rewelacyjnie! Dzięki :) W zasadzie wszystko działa tak jak zostało założone, ale... Chciałbym Was zapytać o jeden mały problem - z którym sobie poradziłem - ale może można łatwiej... Otóż, przy każdym przepełnieniu (to akurat rozumiem) oraz przy pierwszym zliczonym impulsie LPTIM wskakuje...
Witam, Mam problem z konfiguracją licznika do pomiaru czasu trwania sygnału na wejściu PA1. Generalnie chcę to rozwiązać w następujący sposób: w momencie wykrycia zbocza narastającego lub opadającego wywołuję przerwanie EXTI1. W obsłudze przerwania EXTI1_IRQHandler, sprawdzam stan portu PA1 jeśli jest stan wysoki to chcę uruchamiam licznik, który zmierzy...
Moglibyście polecić jakiś mikrokontroler, najlepiej ARM, który można łatwo kupić i programuje się go bez użycia drogiego sprzętu? Nie znam mikrokontrolerów AVR. Jestem hobbystą. Swoją przygodę w ogóle z mikrokontrolerami zacząłem od STM32 i nie żałuję. Chyba niczego nie straciłem :). Mam dwie płytki STM32F4 Discovery oraz Nucleo 446RE. Fajnie, że masz...
https://obrazki.elektroda.pl/4950580000_... Witajcie moi drodzy W tym temacie poznamy podstawy przerwań i timerów w PIC18F2550 . Na początek będzie krótki wstęp teoretyczny, a potem wszystko przerobimy dokładnie na praktycznych przykładach. Do lektury tematu przyda się ogólna wiedza na temat przerwań i programowania w C, choćby taka...
Witam Tak jak w temacie chciałbym skonfigurować dwa moduły nRF24L01 do najprostszej komunikacji między sobą. Mam na myśli podstawowe wysyłanie danych np. jednego bajtu, bez żadnych bajerów typu zmiana adresu, automatyczna odpowiedź, potwierdzenie dostarczenia itp. Do obsługi tych modułów korzystam z mikrokontrolerów STM32. Konfiguruję wszystko zgodnie...
Witam. Posiadam sensor ultradźwięków US015, który jest podobny do HCSR04. Chciałbym go obsługiwać przy pomocy mikrokontrolera STM32F429. W internecie znalazłem kawałek kodu, odpowiedzialnego za jego obsługę. Do jego obsługi wykorzystywane są 2 timery - timer7 jest odpowiedzialny za generację impulsu inicjującego pomiar (TRIG) - 10uS, a drugi liczy czas...
liczenie impulsów arduino liczenie impulsów liczenie impulsów bascom
hamulec kosiarka elektryczny audison glosniki samsung prime
polonez kombi serwis harman kardon
Zasilacz do odbiornika R-311: Wybór i budowa Czy PMS7003 działa z Adafruit_PM25AQI.h przez I2C?