Bo producent ma w nosie swoją własną dokumentację. Napisz GPIOA->AFR[1] |= 1;
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.
Jest w formacie [url=http://www.st.com/content/st_com/en...
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
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...
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...
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...
AAAAAAAA! :crazyeyes: Dziękuję :) 1. Gdzie znaleźć informację na ten temat? Tak na przyszłość, żebym wiedział co czytać pierwsze. 2. Da radę zrobić taki trik w F4? Update: 1. W RM, opis GPIO :) 2. Tak, sterowaniem bitami w rejestrze PUPDR, dokładniej trzeba zmieniać podciąganie w taki sposób: [syntax=c]#include "stm32f4xx.h" int main(void) { RCC->AHB1ENR...
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...
Dla enkoderów ze stykami mechanicznymi, jeśli nie podłączasz go do uC za pomocą prostego filtru RC, wykorzystywanie timera czy przerwań to ślepa uliczka. Z racji, że takie enkodery nie generują impulsów o dużej częstotliwości, to najlepiej zrealizować odczyt programowo, np. cyklicznie w systicku sprawdzać czy mamy stan wysoki przez minimalny czas i...
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...
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...
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...
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,...
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,...
Witam. Wiem, że to "brutalna" odpwiedz, ale odpowiedzi znajdziesz w google. Musisz niestety poswięcic trochę czasu i poszukać. Schematów, kodów zrodłowych itp jest naprawdę sporo. Podłączenie enkodera do uC jest proste. Kanały A i B enkodera (zakladajac, że enkoder ma wyjscie 5V TTL) podłaczasz do dwóch kanałów dowolnego TIMERA w STM32. Np do TIM2CH1...
Skoro ma to wchodzić do mikrokontrolera, to zamiast konwersji pojemność/napięcie i napięcie/cyfra można zrobić przetwarzanie pojemność/czas(lub częstotliwość) i analizować programowo. Tak , myśle zastosować coś w stylu STM32 F103 ....... Posiada 2 przetworniki A/C , jeden z nich mogę wykorzystać "do kondensatora" lub tak jak piszesz wyżej. Mam więc...
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.
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...
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...
Zgadnij gdzie znajdziesz odpowiedź na swoje pytanie... 4\/3!! Tak, że Fredie - moja odpowiedź powinna brzmieć "Elektroda", no cóż :). Udało mi się uruchomić w reszcie takie zliczanie timera pomiędzy zboczami. Jak to się mówi - dla potomnych lub dla punktów podzielę się moimi wypocinami. A oto mój przykład: [syntax=c]RCC->APB2ENR |= 1<<11;...
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.
Zadziałał mi inny przykład z netu, zrobiony na rejestrach: [syntax=c] __HAL_RCC_TIM8_CLK_ENABLE(); TIM8->ARR = 99; // wartosc rejestru autoreload (maks wartosc) TIM8->CCMR1 = TIM_CCMR1_CC2S_0 |TIM_CCMR1_CC1S_0 ; //TI2 mapped to IC2 TI1 mapped to IC1 TIM8->CCER = TIM_CCER_CC1P | TIM_CCER_CC2P ;// ustawienie odpowiedniej rakcji na zbocze - zmiana kierunku...
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...
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 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....
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...
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...
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...
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, 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,...
zliczanie impulsów enkodera atmega zliczanie impulsów zliczanie impulsów assembler
słuchawki piezoelektryczne winda mechanizm komputer wyłącza zaraz starcie
flash extractor flash extractor
Hyundai LEDTVHY3221HH2-A Standby Issue Firmware Request Krups EA8260: Błąd 12 i czyszczenie pojemników