Witam, Mam enkoder inkrementalny E6A2-CS5C o ilości impulsów 100/obrót. Enkoder współpracuje z siłownikiem pneumatycznym za pośrednictwem listwy zębatej, która mierzy jego wysunięcie. Siłownik jest zamontowany w maszynie i ma mechanicznie ograniczony zakres ruchu z obu stron, co oznacza, że teoretycznie może pracować w dość ściśle ustalonym zakresie...
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...
Mikrokontrolerem można odmierzać okres - jeśli działa z zegarem 1MHz, to można na nim zrobić generator dający się ustawić na 1000Hz, 999.001Hz, 998.004Hz,... przy mniejszych częstotliwościach odstępy będą coraz mniejsze. Nie da się cyfrowo zrobić równych odstępów, jeśli sygnał ma być równym prostokątem. Można natomiast wykonywać dodawania: np. do zmiennej...
Problem rozwiązało właśnie użycie przerwań zewnętrznych. Można w funkcji obsługi przerwania EXTI sprawdzać od którego wejścia pochodzi przerwanie i zliczać impulsy z tego wejścia. Dzięki za pomoc.
Nie jest bo zliczanie jest programowe. Na ścisłość masz rację. Ale w obsłudze przerwania, dodanie jedynki do zmiennej to nie chyba jest jakiś wielki program, którego powinno się wystrzegać. Tu jest mowa o rozwiązaniu w którym konstrukcja urządzenia zapewnia zachowanie między przerwaniami minimalnego odstępu 24000 (!) taktów na najwolniejszym ze wszystkich...
ale czy przypadkiem nie powinieneś jeszcze włączyć zegara w RCC dla timera oraz gpio? Jeśli autor tematu skorzystał z narzędza CubeMX do wygenerowania szablonu, to zegary do peryferiów powinnny być włączone. Tutaj masz link do kursu z przykładem obsługi enkodera z bibliotekami HAL: [url=https://forbot.pl/blog/kurs-stm32-f...
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ąć...
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...
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! Jak rozwiazac problem zliczania impulsow z 8 kanalow np. na ATmega8535? ATmega8535 ma 3 wejscia typu timer/counter (ATmega128 tylko 4) a ja potrzebuje zliczac impulsy z 8 zrodel (wentylatory)-w celu pomiaru ich predkosci. CZy jest jakas mozliwosc podlaczenia tego przez jakis multiplekser (jak tak to jaki i jak to podlaczyc )?? Poniewaz jestem...
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ł...
Mam problem z ustawieniem timera 1 w trybie zliczania impulsów zewnętrznych na pinie 16 [TIM1_CH1] układu STM8S003 TSSOP20. Mój kod który nie daje oznak prawidłowego działania: [syntax=c] TIM1_DeInit(); TIM1_TimeBaseInit(0x00,TIM1_COUNTERMODE_... TIM1_SetAutoreload(0x00); TIM1_TIxExternalClockConfig(TIM1_TIXEXTE...
Witam napisałem program,który zapala diodę dokładnie co 1 sekundę. /** ****************************************... * (at)file main.c * (at)author Ac6 * (at)version V1.0 * (at)date 01-December-2013 * (at)brief Default main function. ****************************************... */ #include...
Witam potrzebuję wykonać licznik impulsów oparty na mikroprocesorze 8051, głównie schemat podłączenia. Czas zliczania 40µs Maksymalna częstotliwość z jaką chciałbym żeby pracował to 10kHz Do wykonywania chciałbym użycz licznika T0. Impulsy powinny być wyświetlane na 4x7 segmentowym LED. borykam się z problemem zakresu zliczania impulsów ponieważ...
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),...
Może by tak te impulsy na próbę podać na zwykły licznik/timer i zobaczyc ile zliczy na sek. i czy zlicza stabilnie? Przynajmniej bedzie wiadomo czy to problem bardziej sprzetowy, czy programowy.
Dzieje się to po pięcu impulsach, a jedno zwarcie palcem generuje dowolną liczbę impulsów - typowo 2..3. Jeśli PA8 jest wejściem timera, to nie może być równocześnie wyjściem GPIO - przecież wyłączyłeś funkcję GPIO na PA8.
zliczanie impulsów z dwóch enkoderów Jeżeli to są enkodery inkrementalne z sygnałem A, B i ew. Home, zrezygnuj z megi64/128. Xmegi mają wsparcie sprzętowe do obróbki sygnału z takich enkoderów przez użycie liczników w połączeniu z eventami. Na STM32Fxxx zrobisz to łatwiej i być może szybciej korzystając z gotowców. generowanie dwóch przebiegów PWM...
Jest w formacie [url=http://www.st.com/content/st_com/en...
ARR to rejstr 16 bitowy więc 4096 to nie maks jak w komentarzu. Maks = 65535 Ta wartość, to ilość impulsów na jeden obrót, tzn. enkoder ma 1024 impulsy, ale stm32 zlicza każde zbocze stąd ta wartość pomnożona przez 4. Dzisiaj jeszcze sprawdzę stronę hardwareową: poziomy napięć impulsów z enkodera (może uruchamiją InputCapture a dla encoder Mode to...
Do pasma EKG układ w zupełności wystarczy. W kwestii punktu 4, chodziło mi o taką konfigurację licznika: - licznik zlicza w jednym kierunku, np. w górę. - Czas pełnego okresu (PSC i ARR) to trochę więcej niż czas transmisji + impuls LDAC (=210ns). - Do jednego z rejestrów porównujących ładujesz wartość, która odpowiada impulsowi LDAC, a wyjście konfigurujesz...
Witam, po zrobieniu prób okazało się że zliczanie impulsów jest niepoprawne. Timer zlicza przypadkowe stany (wynikające z drgań styków). Nie pomógł układ RC na liniach A, B enkodera. Pozdrawiam
Sprawdziłem czy czasem układ nie jest zepsuty i może echa nie generuje. Na szczęście wszystko działa prawidłowo, USART z ATmegi32 leci prawidłowo więc na pewno błąd mam gdzieś w kodzie. Czy może ktoś wskazać lub podpowiedzieć co mam zrobić? Generalnie lepiej znam się na AVR dlatego w STM32 potrzebuje dokładnej wskazówki.
Pozatym jak chcesz to zrobić jak najdokładniej, to robisz to 100% sprzętowo - timer zeruje się na zboczu narastającym i zlicza aż do zbocza opadającego, następnie zapisując zliczoną wartość do odpowiedniego rejestru. 4\/3!!
Niepotrzebnie ustawiasz preskaler (PSC=1). Zmień na PSC=0. Częstotliwość licznika jest dzielona przez (PSC+1). A teraz czemu UDIS pomagał: rejestr preskalera jest buforowany*. Nowa wartość zaczyna działać po UEV (update event). Bez bitu UDIS, UEV pojawiał się po przekręceniu licznika - zaczynała działać nowa nastawa preskalera (podział przez PSC+1,...
Chciałbym się nauczyć w jaki sposób zliczać impulsy z zewnątrz (z jakiegoś pinu) za pomocą TIM1. Wiem że wystarczyło by do tego zwykłe przerwanie z dodatkami ale chciałbym poznać w pełni funkcje STMów. Może się kiedyś przydać.
Witam, mam problem z detekcją 230V przy pomocy STM32. Potrzebuje wykryć czy występuje 230V - nie chodzi mi o wykrywanie zera itp, ale konkretnie o 230V - jest albo nie ma 230V. Połączyłem układ według schematu na dole, 230V idzie z przekaźnika który załącza napięcie z częst. 1Hz. Po podłączeniu do uC i przetestowaniu układu podczas jednego załączenia...
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...
Na wejściu częstościomierza jest układ formowania impulsu/wzmacniacz i dzielnik przez 16. Sygnał po podzieleniu jest podawany na wejście zliczające jednego z timerów w STM32 i co sekundę pobierana jest liczba zliczonych impulsów, następnie licznik jest zerowany. STM32 jest taktowany zwykłym kwarcem więc na stratę informacji związaną z obecnością dzielnika...
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...
No to wzór na prędkość jest taki: V=\frac{n}{Nt} n - ilość impulsów jakie naliczyłeś N - ilość impulsów na obrót enkodera t - czas w jakim naliczyłeś te impulsy Jeśli masz na przykład enkoder inkrementalny z ilością kroków 500 i w czasie 100ms naliczyłeś 374 impulsy to podstawiając do wzoru masz 500/(374*0.1) czyli 13,37 obrotów na sekundę. Zauważ,...
(...) by uzyskać częstotliwości 32Hz (okres 0,03125s) oraz 64Hz (okres 0,015625s). Czy możesz ustalić kombinację okresów z tych dwóch dzielników tak aby w ciągu sekundy otrzymać 60? Możesz też zaproponować kod w Arduino generatora taktującego dla TMS3450. Interesuje mnie jak najmniejszy błąd odmierzania czasu. Wprowadzenie Dziękuję za szczegółowe przedstawienie...
https://obrazki.elektroda.pl/8003230600_... Po umieszczeniu materiału o porównaniu częstotliwości Napiszcie co myślicie o takiej metodzie. Wróciliśmy do tematu https://obrazki.elektroda.pl/3296797900_... Wejście sygnału mierzonej częstotliwości podamy na TIM2 CH2 czyli PA1 na płytce oznaczone jako A1. Nie będziemy...
Witam drogich użytkowników, mam problem z poprawnym zaprogramowaniem trybu oszczędzania energii w STM32. Znalazłem przykładowy kod który mógłbym wykorzystać aczkolwiek nie wiem jak poprawnie zdefiniować funkcję NVIC wywołaną na samym początku listingu. Gdyby ktoś miał chwilę i mógł mi z tym pomóc byłbym bardzo wdzięczny. :) Dopiero zaczynam przygodę...
mozna wiedziec dlaczego nie kupisz sobie jakiejs płytki gotowyj np: http://www.aliexpress.com/item/STM32F103... http://obrazki.elektroda.pl/3980059300_1... Lepszy procesor - wszystko juz przylutowane mzesz przylutować do swojej plytki lub stykówki, SDW wyprowadzone...
Straszna komplikacja kodu - 3..4 linie kodu na zaprogramowanie timera i 4..5 linii na obsługę przerwania ze zliczaniem impulsów ew. 5 następnych linii na skaskadowanie drugiego timera i 3 wtedy 3 linie obsługi przerwania drugiego zamiast pięciu pierwszego. Podajesz przykład typowego prostego fragmentu projektu, który robi się na timerze i marudzisz,...
STM32L031K6: Przy wewnętrznym zegarze 131kHz, w temperaturach -40+55, kod wykonywany z RAM, pobór prądu bez peryferiów 21uA max. Z włączonym licznikiem i RTC to będzie 36uA max. I nie trzeba obniżać napięcia do 1,8V :) Można też zejść do 9uA przy zachowaniu zliczania impulsów i bez wybudzania przez 20s (i więcej). Inna opcja to zliczanie impulsów w...
Niestety dalsza walka z VHDL. Otóż: muszę zrobić dzielnik częstotliwości z 250MHz na 125 MHz, 50 MHz, 25 MHz. Podzielniki więc muszą być w zbiorze 1,2,3,4,5...n-1,n. Kod na dzielnik który jest powszechnie spotykany nie ma mozliwości zrobić takiej podziałki ze względu na to że reaguje jedynie na zbocza narastajace sygnału zegarowego(dzieli więc wstępnie...
Witam kolegów. Zostałem postawiony przed następującym problemem: muszę przeprowadzać pomiar prędkości pojazdu, którego koła wyglądają jak standardowe koła rowerowe, a kierunek poruszania może być tył/przód (albo jak to w kawale: kierunek poruszania ten sam, tylko zwrot inny). Z związku z opisanym powyżej problemem należałoby stworzyć układ pomiarowy....
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...
Optymalizacja wydajności silników elektrycznych: Wyjaśnienie technik sterowania PID Kiedy przyglądamy się dronom, deskom balansującym, inteligentnym samochodom i odwróconym wahadłom, ciągle pojawia się ten termin - PID. Ale czym u licha jest PID i do czego służy? Cóż, w tym artykule stworzyłem prosty sterownik silnika, aby zagłębić się w zasadę działania...
Witam wszystkich. Jestem w trakcie budowy prostego tachometru opartego o uC stm32f103vet6. Do pomiaru prędkości mają służyć 3 timery TIM 2,3,4. Mają one zliczać impulsy z czujników optycznych z jednostce czasu. Jak narazie uruchomiłem 2 timery 2 i 3. I tu natrafiłem na dwa problemy. Po pierwsze nie wiem jak wyzerować wartość timerów tak aby nie zliczały...
zliczanie impulsów enkodera atmega zliczanie impulsów zliczanie impulsów assembler
chrome adobe flash subwoofer maudio suszarka edh97981w
chińskie radio android chińskie radio android
Czujnik Halla na płytce SM168-A: TO-92, końcówka 87/97 Co szkodzi przepływomierzowi w ekspresie do kawy?