Aby móc zmieniać remapowanie musisz włączyć zegar dla AFIO. [syntax=C]RCC_APB2PeriphClockCmd(RCC_APB... ENABLE);[/syntax]
No to skoro nic tam nie ma, to znaczy że nie następuje input capture. 4\/3!!
aktualnie mam kod do DMA: konfiguracja i2c gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_ALTFN_OPENDRAIN,GPIO_I2C... | GPIO_I2C1_SDA); I2C_CR1(I2C1) |= I2C_CR1_SWRST; I2C_CR1(I2C1) &= ~I2C_CR1_SWRST; i2c_peripheral_disable(I2C1); i2c_set_clock_frequency(I2C1, I2C_CR2_FREQ_36MHZ); i2c_set_fast_mode(I2C1);...
w takim razie jak poprawnie włączę kanał 1 jako pwm a kanał 3 jako ic?
To już nie rozumiem, co jest źle. 1) Konfiguracja timera 2) Nie można podejrzeć zmiennej podczas debug
Zrozumiałe że nie rozumiesz bo nie napisałem wszystkiego :) Zasilam enkoder z 3.3V, nie tak jak rekomendują między 4,5-5,5V. Nie chciałem aby sygnał z enkodera był większy od V zasilania mikrokontrolera, żeby nic nie upalić. Czytałem w Data Sheecie że jest coś o 'five-volt tolerant' port/pin ale nie mogłem zrozumieć dokładnie o co chodzi. Działał mi...
W timerach STM32 jest coś takiego jak PWM Input Mode który służy do sprzętowego pomiaru wypełnienia i okresu PWM - szczegóły są w np w Reference manual. O ile jednak dobrze pamiętam to jednym timerem sprzętowo można mierzyć tylko jeden sygnał PWM. Na jednym timierze 4 kanały pewnie trzeba będzie mierzyć programowo z wykorzystaniem Input Capture Mode
No ale czemu nie przejrzysz DOKŁADNIE manuala do tego układu? Przecież w nim są szczegółowo opisane tryby pracy takie jak input capture, czy PWM capture (czy może input PWM, nie pamiętam jak on się nazywa) - w tych trybach właśnie masz zmierzony czas impulsu. Zamiast brnąć na ślepo po prostu przejrzyj reference manual, rozdział o timerach i wszystko...
Żeby nie zakładać oddzielnego wątku - mam problem z włączeniem przerwania na TIM4. Wszystko niby skonfigurowane - GPIOB.9 jako wyłapanie przerwania: /* TIM 4 intetrupt pin PB.7 channel 4 */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOB, &GPIO_InitStructure); RCC_APB1 dla TIM4...
E tam, nie jest wcale tak źle. Przy timerach akurat nie ma problemu, bo w manualu do każdego "typu" konfiguracji (licznik, PWM, input capture, ...) jest opis jak krok po kroku to skonfigurować. Zresztą - wystarczy napisać swoją bibliotekę, wtedy przynajmniej działa sensownie (rozmiar i prędkość) i wiadomo jak tego używać oraz co dokładnie robi. W przykładach...
Najprościej podpiąć oscyloskop i zobaczyć co się naprawdę dzieje z sygnałem po podpięciu Timera albo od razu wtórnik na tranzystorze.
W którym miejscu w dokumencie który wcześniej podałem znajdę na którym porcie w mikrokontrolerze jest odpowiedni kanał ADC? W RM0041? W żadnym. Szukaj w datasheet konkretnego układu.
Ja troszkę odsunę się od odpowiedzi. I powiem tak: Jeśli poznasz dobrze jedną architekturę w raz z całą otoczką, tzn sposobami debugowania, posługiwania się narzędziami. Nauczysz się dobrze kodzić i nie mam tu na myśli napisania czegoś co działa, bo to dopiero 20% sukcesu. Bo niezawodność czytelność kodu i łatwość modyfikowania jest również ważna i...
gaskoin -> No właśnie o to pytałem od początku. Widocznie źle zadałem pytanie :) Dokładnie tak samo (albo bardzo analogicznie) robiłem w xmega. STM32 to dla mnie nowość, dopiero zaczynam a właściwie to tylko pobawiłem się troszkę w wolnej chwili. Wgłębiał się będę w najbliższym czasie przy okazji pracy dyplomowej. Czyli skoro już się rozumiemy o co...
Wszystkie funkcje arduino-embedded powinny działać. Czyli obsługa i2c, 1wire, spi, uart, operacje na pinach gpio. Dlaczego? Bo chociaż czasem przez różne rejestry to w zasadzie robią to samo więc można wysokopoziomową funkcją "przykryć" różnice sprzętowe. Proste rzeczy jak PWM, input capture itp. też powinno się dać, natomiast liczników jest całe mnóstwo...
Przerwanie od input capture wskazuje, że stan licznika został zapamiętany w odpowiednim rejestrze... Jeśli dodatkowo można IC sprzęgnąć z DMA to problem akwizycji danych jest rozwiązany - DMA może wtedy wywoływać przerwanie po zebraniu dwóch (lub więcej) wartości - początku i końca impulsu. W niektórych co sprytniejszych ARMach (np STM32) można tak...
AT90PWMx - Produkt w fazie zakończenia produkcji. Nie ma sensu w to inwestować. ATTiny26 - zupełnie bez sensu jeśli idzie o falowniki. Praktycznie żadnego zysku względem mega88. ATXMEGAxx - od biedy może być do nauki. Ale pamiętaj o upierdliwości ADC w trybie single ended (offset), braku synchronizacji pracy liczników z jedną podstawą czasu, pomiar...
Jakieś małe opóźnienie i kolejny raz sprawdzenie stanu No przecież po to Ustawilem przerwanie co 30ms. To jest właśnie opóźnienie, którego potrzebujesz :) W kolejnych wywołaniach tego przerwania sprawdzasz sobie stan poprzedni i porównujesz z bieżącym. Jeśli są takie same, to uwzględniasz zmianę. Dodano po 8 Ewentualnie spróbuj podejścia z filtrami...
To także mam zrobione (dużo wcześniej w samym mainie na początku odpalam wszystkie porty i afio). Ogółem z testów wynika jakby wogóle nie były podpięte piny kanałów 2 i 4. Już sprawdziłem milion możliwości ustawień, żadne nie prowadziło do jakiejkolwiek reakcji na impulsy na tych pinach.. Cytując manuala: Bits 9:8 CC2S[1:0]: Capture/Compare 2 selection...
Proszę kod bez dodatkowych pustych lini. biblioteka [syntax=c] /* Includes ----------------------------------------... #include "TC.h" #include "systick.h" #include "GLCD.h" #include <stdio.h>; /***************************************... * Function Name : MAX31855_SPI_Init * Description...
(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, żeby w poradniku było trochę więcej nawiązań do...
Jak dokładnie działa timer w trybie input capture ? Liczy cały czas od momentu ustawienia bitu TIM_CR1_CEN czy od momentu wykrycie impulsu ? Od włączenia. Ale zdaje się ze jest możliwość by capture jednocześnie zerował licznik.
Znalazłem w końcu ale tam też nic ciekawego nie ma, są problemy z input capture ale tego trybu nie używam. Idiotyczną nawigację na stronie ma STM.
A jakby taki pomysł wypalił: Ustawić Timer jako Input Capture reagującego na obydwa zbocza sygnału. DMA skonfigurować na żądania od Timer i jako Circular buffer, Periph -> Memory. Analizować w wątku bufor kołowy z DMA, ślędząc licznik transferu i ładować do innego bufora wykryte stany 1 i 0 na podstawie róźnicy czasu obydwu zbocz. Z innego wątku ściągać...
Witam, próbuje znaleźć dobry sposób na pomiar amplitudy impulsu PWM. Zakres zmian wypełnienia 5 % do 95 %. Czestotliwosc sygnalu sie nie zmienia i wynosi 1 KHz. Mój pomysł polega na tym, że po wychwyceniu zbocza narastajacego odpalam ( w przerwaniu od input capture) timer ktory co 10 us ( 5 % z 1 ms to 50 us) trigeruje pomiar ADC poprzez DMA (czyli...
Witam. Mam następujący problem. Potrzebuje odczytać temperatury z układów MAX6675. Na początek testuje komunikacje z jednym układem. O ile wykorzystuje wyjście NSS mikrokontrolera to wszystko działa należycie. Gdy jednak chciałbym aktywować MAX'a innym wyprowadzeniem niestety nie przynosi to rezultatu. Ciekawe jest to, że przy użyciu debuggera program...
Ja rozumiem ze mozna szarpać się z darmowymi toolchainami, ale zeby z keilem?... Postawienie darmowego toolchaina trwa minute :)
Próbowałem dziś skonfigurować zgodnie z radami niestety nic z tego. Bardzo bym chciał wiedzieć czy SPI jest dobrze skonfigurowane . Pozwoliło by mi wykluczyć część programową, może uszkodzony jest układ. Termopare wykluczam. Sprawdziłem dwie na obu to samo. Na próbę zwarłem wyprowadzenia max6675 od termopar i nadal to samo. Bardzo prosze o sprawdzenie...
Jak w temacie, od dłuższego czasu nie mogę sobie poradzić z skonfigurowaniem DCMI tak by na rejestrze DCMI->DR pojawiły się dane. Próbuję pobrać obraz z kamery MT9D111. Wszelkie próby nawet z DMA ( którego nie chcę na razie używać ) kończyły się fiaskiem, więc proszę o pomoc kogoś kto zna odpowiedź na moje pytanie. Układ realizowany jest w oparciu...
Witam. Postanowiłem zgłębić tajniki mikrokontrolerów STM32. Wybór padł na procesor STM32F3 Discovery. Mam problem z poniższym kodem. Jest to przykład działania przetwornika ADC. Problem polega na tym, że nie wiem dlaczego to nie działa. Uruchamiam debugger, biorę krokową pracę, a program w zasadzie zatrzymuje się na linii ADC1ConvertedVoltage jest równa...
Witajcie, Zmieniam właśnie w moim projekcie gyro i akcelerometr na cyfrowy MPU 6050 i mam problemy z i2c (pierwszy raz tego czegoś używam :). Problem jest taki, że przy odbiorze danych po losowej ilości odebranych danych (kilka do kilkunastu odczytów, proc się zawiesza na 99% tutaj [syntax=c] // disable acknowledge printf("disable acknowledge\n\r");...
Ale czy w trybie ETR generowane jest jakieś przerwanie przy pojawieniu się zbocza/zwiększeniu licznika? Z tego co widzę to nie a ja bym chciał wiedzieć, że pojawiło się zbocze narastające bo na takie zdarzenie muszę odpowiednio zareagować. Impulsy na tym wejściu będą pojawiały się rzadko i nieregularnie nie jestem pewien czy mogę to wykorzystać. Chyba...
Po pierwsze: jak często jest ono zgłaszane? Przerwanie jest zgłaszane z częstotliwością 1 kHz. DCMI odbiera dane non stop. Po trzecie: co robi AKTUALIZUJ_PWM (pwm_lookup_table aktualizuje rejestr PWM poprzez wywołanie funkcji [syntax=c]TM_PWM_SetChannelPercent(&... TM_PWM_Channel_1, 100-x);[/syntax] która wywołuje [syntax=c]TM_PWM_Result_t...
Panowie mam chyba zaćmienie , pomroczność jasną albo skutki Covid-19. Procesor STM32L552 STM32CugeIDE i HAL Mam zmierzyć częstotliwość sygnału prostokątnego ok. 2,8 – 3,1 MHz FCPU 100 MHz Licznik Tim2 kanał 1 Clock source - InternalClock Channel 1 - Input Capture direct mode Tim2 global interrupt - enabled. Przerwanie działa void HAL_TIM_IC_CaptureCallback(TIM_Handl...
Problem dotyczy wykorzystania wejścia licznika w trybie Input Capture wraz z DMA. Celem jest pomiar częstotliwości sygnału i jego wypełnienia. Na samym początku dodam, że jest jedno ograniczenie, które związane jest z wykorzystaniem pojedynczego wejścia licznika. Oczywiście, można skonfigurować tryb PWM Input, ale niestety w tym przypadku będą wykorzystane...
1. Proponuję zapomnieć o arduino. 2. Nucleo ma debugger, który Ci się bardzo przyda. 3. Jak mierzyć - najlepiej obydwiema matodami. ADC + CMSIS-DSP -> robisz analizę widmową i znajdujesz największy "bin". Potem mieniasz próbkowanie aby jak najbardziej ten "bin" pasował. Do tego komparator (bo niestety STM32103 to dość stara i prosta konstrukcja - i...
Jak dla mnie to nadal nie jest do końca jasne jak działa ten układ po przeczytaniu opisu. Rozumiem na razie tyle, że bajty wysyła się po SPI i tyle Dalej sygnał zegara ze SPI odpala timer (input capture trigger, zajrzyj do PDFa) generujący impulsy i DMA kopiujące wartość z portu F do licznika timera. Dzięki temu timer przeskakuje cykl jeśli na linii...
mogłeś nie przeczytac uwagi Te Callback to nie zawsze działają jak by się chciało. HAL lubi włączać przerwania wszystkie z możliwych. Najlepiej swoje funkcje umieszczać w pliku "stm32f4xx_it.c"" Przykładowo robię tak: [syntax=c] void TIM1_UP_TIM10_IRQHandler(void) { /* USER CODE BEGIN TIM1_UP_TIM10_IRQn 0 */ if (__HAL_TIM_GET_FLAG(&htim1, TIM_FLAG_UPDATE)...
Witam, chciałbym zczytać dane z enkoderu, mam jeden podłączony do PB6 i PB7,a drugi do PB3 i PA15 i posiadam STM32f103RE Mam 16 impulsów na obrót i nie moge nic zczytać do zmiennych. Bardzo proszę o pomoc bo siedzę juz 4 dni i nic nie działa Oto mój kod: [syntax=c] void Encoder_Config(void) { //Konfiguracja timerow //1. GPIO_InitTypeDef GPIO_InitStructure;...
Od tego zaczałem - od czytania Manuala, ale nic nie rozumiem. Nie mam dużego doświadczenia. Coś tam kombinuję, ale nie działa jak trzeba. Żeby zrozumieć instrukcję, trzeba znać używane tam pojęcia. Czy timer ma pracować w trybie capture? Byłbym wdzięczny za podpowiedź które rejestry ustawić. Wybrałem TIM4 i wejścia GPIO dla kanałów B6, B7, B8, B9, które...
No to kiepsko. Przeczytałem sobie kilka razy rozdział o GPIO aby znaleźć informacje maksymalnej szybkości odczytu "danych wejściowych". Wiem, że maksymalna prędkość 50 MHz w przypadku pracy jako wyjście jest nieosiągalna przez proste machanie pinami. W przypadku wejścia czytam, że: "The Input Data register (GPIOx_IDR) captures the data present on the...
Funkcja inicjalizująca wywołuje kilka innych, więc żeby po trochu nie wstawiać kodu, oto cały plik RC5_IR_Emul_Receiver.c : [syntax=c]/** ****************************************... * (at)file STM32F10x_RC5_Receiver_Lib/src/RC5_IR_Em... * (at)author MCD Application Team * (at)version V1.0.0 * (at)date 03/16/2010...
W funkcji System_conf w której narazie jeszcze korzystam z bibliotek od ST :-/ [syntax=c][/syntax] void System_conf(void){ GPIO_InitTypeDef GPIO_InitStructure; RCC_Configuration(); //System Clocks Configuration NVIC_Configuration(); //NVIC Configuration RCC_AHBPeriphClockCmd ( RCC_AHBPeriph_DMA1 ,ENABLE);...
Chcę w jakiś sposób okiełznąć USART, na razie bez DMA. Korzystam z gotowego przykładu, jednak pustki w terminalu. Fizycznie : GND przejściówki USB RS232 podłączony z GND disco, RX, TX kros. stm32f10x_usart.c [syntax=c] #include "stm32f10x.h" #include "stm32f10x_gpio.h" #include "stm32f10x_rcc.h" #include "stm32f10x_usart.h" #include <stdio.h>...
Witam Pracuje obecnie nad projektem odbiornika sygnały DMX512. Sprawa wygląda następująco: -Sygnał danych czytany jest z urządzenia zwane Kwamatik USB2DMX, obsługiwane przez program Q Light Controller. „Po drodze” do uC trafia jeszcze na driver RS485 a potem na PIN RX UART1 oraz PIN PB9 skonfigurowanego jako wejścia dla Timera 11 pracującego...
Witam, Mam jeden z dwóch często występujących problemów. Nie wiem czy to wina konstrukcji czy kodu. Z napięcia około ~12V mam zrobiony dzielnik napięcia (4K7 i 8K) tak, że na wyjściu mam około 2.44V. Po wgraniu kodu otrzymuje następujące wyniki: 2715 $ 2723 $ 2721 $ 2718 $ 2717 $ 2715 $ Jak widać, rozbieżność jest w granicy moich oczekiwań jak na rezystory...
Proponuję użyć dowolnego uC z dwoma licznikami, ale niekoniecznie atmega8 ;) Pierwszy pracuje w trybie pomiaru częstotliwości lub pomiaru czasu (Input Capture). Drugi pracuje jako generator przebiegu wyjściowego, pędzony np. z zegara systemowego. Wartość zmierzona przez pierwszy licznik jest argumentem funkcji modyfikującej częstotliwość i/lub wypełnienie...
Ja pisałem o metodzie cyfrowej. Przecież to są pojedyncze linijki kodu. Heterodyny: pobieranie danych z tablicy sinusa (albo po prostu liczenie sinusów, jak ktoś ma odpowiednio mocny procesor). Mieszacze: Zwykłe mnożenia. Filtry: Formuła z kilku mnożeń i kilku dodawań. Miałem to gdzieś ale nie mogę znaleźć kodu. Za to znalazłem kod do innej metody....
https://obrazki.elektroda.pl/4768835200_... Introduction to the course In order to understand what kind of device we will be designing today, let's first briefly recall what soldering stations generally are, and how they differ from each other. The entire lower price segment of such equipment, as you might guess, is captured by Chinese...
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...
Bardzo prosze o pomoc! Mam czujnik, którego sygnal chcialbym nie tylko móc ujac "capture" jak w ponizszym programie ale równiez móc spisac wynik z "capture" na inny pin. Nie mam pojecia jak ten Pin odbiorczy skonfigurowac. Tu poczatek konfiguracji capture. void timer3_konfig(void) { // TIM3 do pomiaru nadchodzacego sygnalu PWM z czujnika TIM_ICInitTypeDef...
Witam, udało mi się skonfigurować TIM1 do pracy w trybie PWM z dead time'em. Poprzez dolutowaną złączka podłączam go do przekształtnika i 'kręce' silnikem - tutaj wszystko jest ok. Potrzebuję dokonać pomiaru 3 prądów z przekształtnika, napięcia Udc oraz nap 1 fazy - do tego celu stworzyłem i zlutowałem układ oparty na wzmacniaczach TL072CN bo jak wiadomo...
input capture stm32 capture input input capture
kondensator agregat peugeot boxer rozrusznik podzieli transfer routerze
brama uchylna blokada pralki elektrolux
Kombinacje kodu PIN z dwoma identycznymi cyframi Wentylator w spawarce DEDRA IGBT 140A - tryb pracy