Zajrzyj do Elektroniki Praktycznej z lutego br. Parę rzeczy masz źle w kodzie. Do przyzwoitej obsługi potrzebujesz trzech kanałów jednego timera STM32, z czego jeden w trybie capture obu zboczy. żadnych innych przerwań ani opóźnień programowych nie trzeba. Timera nie trzeba zatrzymywać ani restartować - chodzi w ruchu ciągłym i sam inicjuje pomiary....
Jeśli przerwanie obsługujące I2C trwa długo, to może po prostu timery dostają jakiegoś overflow (or sth) i wiesza się tak naprawdę gdzie indziej? Masz JTAGa? 4\/3!!
jaki sposób można to zmieniać na rejestrach? Jest rejestr TIMx capture/compare enable register (TIMx_CCER). https://obrazki.elektroda.pl/9768584600_...
Timer wyzwala taki pomiar, jaki zaprogramowałeś w ADC. Jeśli zaprogramowałeś kolejny pomiar czterech kanałów bez discontinuous mode, to ADC zmierzy 4 kanały. Problem ze sprzętowym startowaniem polega na tym, że wybrałeś zdarzenie CC1, a nie reload/update. Sprawdź, czy da się wyzwalać ADC innym zdarzeniem timera, a jeśli się nie da - zaprogramuj blok...
TIM_Pulse to jest zwykły współczynnik wypełnienia sygnału. TIM_ClockDivision jest to podziałka zegara -> timer masz taktowany określonym zegarem, który jeszcze możesz odpowiednio podzielić. TIM_OC1PreloadConfig() robi to co jest w opisie funkcji, nie wiem co więcej dodać. Ponadto: CCR1: "It is loaded permanently if the preload feature is not selected...
3 Konfigurujesz Timer w tryb input capture taki sposób aby wyzwalał transfer DMA na którymś tam sobie kanale. Nie prościej właśnie output compare i mieć transfer co ileś tam taktów? 4\/3!!
Najprościej podpiąć oscyloskop i zobaczyć co się naprawdę dzieje z sygnałem po podpięciu Timera albo od razu wtórnik na tranzystorze.
Czegoś nie rozumiem. Najpierw startujesz TIM4 w tryb pwm i to jest ok. Później robisz to : [syntax=c] HAL_TIM_Base_Start_IT(&htim4); HAL_TIM_IC_Start_IT(&htim4,TIM_CHANNEL_3... To wyłącza timer z trybu PWM i najpierw ustawia go w tryb zwykłego timera, później przełącza w IC. Jednym słowem wyłączyłeś całkowicie PWM.[/code]
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
Nie jestem pewien ale chyba chodzi o to że służy do sprawdzania PWM. Proszę wybaczyć ale nie jest to banalne.
Myrek1: DMA wyzwalasz timerem, nie zmianą stanu portu. W dotychczasowych STM32 jedynym sposobem na wyzwolenie DMA przez port jest użycie na tej linii trybu capture timera - i wtedy oczywiście DMA wykona się w kilka cykli zegarowych po zmianie stanu linii. Na 80 MHz STM32L4 jest to czas ok. 140 ns. W przypadku wyzwolenia DMA przez timer w trybie compare/PWM...
Myślę myślę i nie mogę wymyślić jak JEDEN timer mógłby liczyć DWIE rzeczy... Poza tym jaki dokładnie jest problem, bo w kodzie nie ma nawet pół słowa o kanale drugim, więc nie dziwne, że nie działa... Nie ma też sensu odczyt wartości capture, bo ty TAKTUJESZ timer tym zewnętrznym sygnałem. Czy poza dokumentacją do cudownych funkcji API przejrzałeś dokumentację...
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...
Witam od 2 dni próbuje zsynchronizować TMI1 (podczas generowania przebiegu PWM) i ADC2 w taki sposób aby przetwornik ADC2 próbkował w czasie gdy gdy nastąpi przepełnienie w liczniku jak poniżej na rysunku: https://obrazki.elektroda.pl/6382692400_... Dodam, że Timer pracuje w trybie "Center-aligned mode 2" a przetwornik ADC2 używa kanału...
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...
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...
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...
Ż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...
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...
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...
Nie przemawia to do mnie, w stm32f0xx.h mamy coś takiego: #define TIM_SR_CC1IF ((uint16_t)0x0002) /*!<Capture/Compare 1 interrupt Flag */ jak na mój gust zapis: TIM1->SR = ~TIM_SR_CC1IF; spowoduje najpierw zanegowanie TIM_SR_CC1IF a potem przypisanie do rejestru SR, czyli de facto wrzucimy tam wartość 0xFFFD. Zapis: TIM1->SR...
Główne różnice to obecność "zanegowanych" sygnałów wyjściowych (OCxN) z opcjonalnym deadtime oraz wejście "hamulca" (BKIN). Właśnie dlatego go szkoda. Timery w STM32 są niesamowicie rozbudowane Tym bardziej szkoda takiego całego timera jako dzielnika /2. Ale udało się-wykombinowałem. Wymagało zewnętrznego połączenia wyjścia np ch3 na który mam wyprowadzony...
Witam, Jestem początkujący w STM32 i w ogóle w Armach więc proszę o pomoc. Zmagam się z problemem uruchomienia trybu enkodera na STM32. Działanie tego powinno wyglądać następująco: Kręcę enkoderem w prawo bądź w lewo - ulega zmianie licznik timera8 co można zaobserwować pod TIM8->CR1 lub jak kto woli cośtam = TIM_GetCounter(TIM8); Mój kod inicjalizacji...
Witam, Właśnie jestem w trakcie przenoszenia małego projekciku z doświadczalnej pajęczynki na pcb, i mam mały problem. Dotychczas używałem Timera 2 do pomiary sygnału zewnętrznego (z odbiornika modelarskiego). Wszystko było ok. Teraz musiałem użyć Timera 3 kanału 2 wyjście PC7 (procek STM32F103Vx)... no i zaczęły się problemy. Pomimo zrobienia full...
1. Schematu nie widzimy - tam najpierw szukłabym problemu. 2. Większość wyprowadzeń STM32 toleruje 5V. Nie jest chyba problemem podłączenie czujnika do tych właściwych. 3. Trig jest wejściem zgodnym z TTL - nie ma potrzeby stosowania niczego po drodze. ECHO jest linią dwukierunkową - co ma zrobić tranzystor? 4. Mnie martwi to, że nie używasz timera...
Ale w czym problem? Wpuszczasz sygnał z DHT na wejście timera i mierzysz czasy trwania impulsów - to b. proste. Timer zgłasza przerwanie capture przy zmianie poziomu na linii danych. To jest rozwiązanie problemu, a nie pisanie kodu, który programowo odlicza czas i wyklucza możliwość robienia czegokolwiek innego podczas transmisji.
To już nie rozumiem, co jest źle. 1) Konfiguracja timera 2) Nie można podejrzeć zmiennej podczas debug
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...
Skąd bierzesz sygnał wejściowy? Mam nadzieję, że nie z przycisku - wtedy będziesz miał kilka zatraśnięć timera przy każdym naciśnięciu i zwolnieniu. TIM2->SR&=!TIM_SR_CC1IF ; // Zeruję flage - to inaczej TIM2->SR &= 0; Ta instrukcja zeruje wszystkie znaczniki źródeł przerwań timera. Całkowicie niepotrzebnie używasz też: NVIC_SetPriorityGrouping( 5);...
Próbuje skonfigurować timer TIM1 jako generator pwm. W celach edukacyjnych puściłem go w zwolnionym tempie aby zobaczyć jak działa. Nie rozumiem dlaczego po ustawieniu opcji [Center-aligned mode] timer zaczyna pracę od zliczania w dół zamiast rozpocząć od 0 w górę. Przeglądam dokumentację i nic nie przychodzi mi do głowy, może ktoś zna odpowiedź bo...
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...
Witam mam problem z miganiem dwoma diodami, ale czysto sprzętowo, za pomocą timera 3 w trybie outpu compare. Pisząc program wzorowałem się na kodzie ze strony http://en.radzio.dxp.pl/stm32vldiscovery... . Mój kod różni się tylko tym, że nie wykonuje tutaj remmapu, ponieważ w moim uC (stm32f103vct6) TIM3_CH3 i TIM3_CH4...
Jest gdzieś skrótowa dokumentacja do ustawień CubeMX, aby zaczynający programista się nie zniechęcił? Nawet jeśli korzystasz z CubeMX to zacznij najpierw od jakiejś literatury. "Poradnik Szczywronka" takie rzeczy dość łopatologicznie tłumaczy tzn. podstawy działania timerów (i nie tylko). Na pierwszym zrzucie mamy włączony OPM na drugim wyłączony....
Heh, faktycznie niepotrzebnie straszę, jeśli zakładamy, że konstruktor ma CAN tu, gdzie jest default ;] Znam te "kilka stron" z erraty na temat gryzienia się remapniętych AF. I oprócz CANa nigdy szopek nie miałem, a już zdążyłem remapować i używać dosyć udziwnionych konfiguracji SPI,UARTów,timerów compare i timerów capture, mimo tej erraty ;] BTW, STM32...
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...
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...
Ja rozumiem ze mozna szarpać się z darmowymi toolchainami, ale zeby z keilem?... Postawienie darmowego toolchaina trwa minute :)
Co do TIM3->SR &=~TIM_SR_UIF; przyznam, że dalej nie rozumiem jaka jest różnica w obydwu przypadkach kasuje tylko JEDEN bit nie CAŁY rejestr. W jednym przypadku zeruje jeden bit, w drugim przypadku zmieniam jego stan na przeciwny. Operacja logiczna na którą się tak uparłeś i zamierzasz bronić do ostatniej kropli krwi generalnie ma same wady i zero...
https://obrazki.elektroda.pl/8760486500_... Po przygodach z matrycami zbudowanymi na max7219, przyszła pora na coś bardziej zaawansowanego. Miałem w planach zrobienie własnej matrycy z 1500 jednokolorowych ledów 0603, 3 rejestrów przesuwnych i paru elementów dyskretnych, ale jak już ją zaprojektowałem, to przypadkiem trafiłem na matryce...
Wydaje mi się, że nie dobrze zrozumiałeś co to jest One Pulse Mode, dlatego masz problem z konfiguracją W tym trybie nie ma konieczności wyłączenia timera poprzez: TIM2->CR1 &= ~TIM_CR1_CEN; bo on sam się wyłącza (przestaje liczyć) zgodnie z ustawieniami. Ja do tego zadania użyłbym trybu PWM i zrobił to jak w kodzie: https://obrazki.elektroda.pl/6412232700_...
Sprytnie używając timera można napisać całkowicie nieblokującą obsługę OneWire z rozsądnym wspomaganiem sprzętowym - jeden kanał timera w trybie compare ze sterowaniem wyjściem w trybie OD, sąsiedni kanał w trybie capture z chwytaniem zboczy narastających. żadnych delay, żadnych problemów z przerwaniami. Można też obniżyć priorytety wszystkich innych...
OK. Zdaje się, że bez kodu trudno będzie to wyjaśnić. Inicjalizacja TIM1: [syntax=c] void timc_startup(void){ // timer clock and interrupt __HAL_RCC_TIM1_CLK_ENABLE(); // Set Interrupt Group Priority //HAL_NVIC_SetPriority(TIMc_IRQn, TIMc_IRQ_PRIORITY, 0); //HAL_NVIC_EnableIRQ(TIMc_IRQn); hTIMc.Instance = TIMc; hTIMc.Init.Period = TIMc_PERIOD-1; trace_printf("timHandle.Init.Period:...
Witam, Bazuje na projekcie ze strony Freddie Chopin dla stma F4 z dodanymi bibliotekami STM32F4xx_StdPeriph_Driver. Zdefiniowałem sobie konfigurację timer'a w następujący sposób: [syntax=c]void Timers_Config(void){ RCC_APB2PeriphClockCmd(RCC_APB2Periph_TI... ENABLE); NVIC_InitTypeDef NVIC_InitStruct; NVIC_InitStruct.NVIC_IRQChannel = TIM1_CC_IRQn; NVIC_InitStruct.NVIC_IRQChannelPreemptio...
Wydaje mi się że mnie plik wygląda okay [syntax=c] /** ****************************************... * (at)file startup_stm32f030xc.s * (at)author MCD Application Team * (at)version V2.3.0 * (at)date 27-May-2016 * (at)brief STM32F030xc/STM32F030xb devices vector table for Atollic TrueSTUDIO toolchain. * This module performs:...
(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...
OpenOCD zaktualizowanie tak jak kompilator wcześniej. Przerabiam przykład od początku teraz na bazie tego o którym mówiłeś LPC Będe wklejał tutaj co dokładnie przerabiam. Jeśli coś robię źle to mam nadzieje że mnie poprawicie. Jeśli dobrze to mam nadzieje że komuś się przyda. 1.Import projektu lpc1114_blink_led i rename na stm32f0_blink_led 2. Zmiany...
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...
Dla mnie to problem. Moim zdaniem nie da się stwierdzić, czy pomiędzy złapanymi zboczami upłynął czas x, czy x + 65536. Jeśli potrafisz to stwierdzić, to chętnie poczytamy, jak to robisz. Jeżeli przyjmiemy, że pomiędzy zboczami jest nie więcej niż 65535, to oczywiście nie ma żadnego znaczenia, czy timer "zawinie się" pomiędzy nimi, bo 16-bitowe odejmowanie...
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ć...
Tablice wektorów mam z przykładów ze strony [url=http://www.freddiechopin.info/]http... Nic w niej nie zmieniałem i wersja 6.1.1 działa dobrze a 7.1.0 wiadomo Tak wygląda tablica wektorów: [syntax=cpp]void (* const vectors[])(void) __attribute__ ((section(".vectors"))) = { (void (*)(void))&__main_stack_end,// Main stack end address...
Włączamy przerwanie funkcją na przykład: Tyle, że nie chce używać licznika siódmego tylko pierwszego. W Twoim przypadku będzie to numer przerwania od przepełnienia. Są one zdefiniowane w pliku stm32f334xx.h w postaci czytelnej dla człowieka. Dziękuję. Tylko jeśli chcę aby przerwanie wywoływało się kiedy licznik się przepełni, którą opcję mam wybrać...
Zmiana przypisania funkcji jakie mają pełnić dane wyprowadzenia nie jest możliwa. Jeżeli dobrze zrozumiałem to żeby móc wykorzystać dane wyprowadzenie do wykrycia zbocza narastającego/opadającego z wykorzystaniem Timera to wyprowadzenie musi mieć możliwość pracy w trybie TIMx_CHx. Na tej podstawie widzę, że to wyprowadzenie (PE0) nie ma takiej funkcji...
chciałem poćwiczyć z stm32f4 i mam problem z PWM na tim1. Zrobiłem to tak [syntax=c] #define PreloadEnabe_PWMmode1 ((uint16_t)0x0068) #define Tim1Af ((uint32_t)0x00080000) //pin PE9 alternate function motor::motor() { //pwm init RCC->AHB2ENR|=RCC_APB2ENR_TIM1EN; // zegar na timer1 RCC->AHB1ENR|=RCC_AHB1ENR_GPIOEEN; // zegar na port E GPIOE->MODER|=Tim1Af;...
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...
Cześć, Może ktoś podpowie, bo chwilowo nie mam pomysłów. Potrzebuję użyć DMA do przesyłania danych, używam kilku strumieni. DMA potrzebuję wyzwalać z określoną częstotliwością przez timmer. Jeśli użyję DMA2, to wszystko działa, Problem jest w tym, że DMA2 mogę wyzwalać tylko Timmerem 1 i 8. O ile timmer 8 mogę na to poświęcić, timmer 1 potrzebny mi...
Może od razu też powiem, że częstotliwość timera zamierzam ustawić na 10 kHz. Chciałem się jeszcze dopytać o jedną rzecz, której może nie do końca zrozumiałem. Czyli do rejestru (w moim wypadku jest to CCR1 - capture/compare register 1) wpisuje zmienną, która realizuje taką funkcje: U(a)=M×[cos(δ)] gdzie: M - współczynnik głębokości modulacji δ=2Π×f×Δt...
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...
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...
Próbowałem, ale coś robiłem źle lub o czymś nie wiem. Efekt miałem taki, że nic nie świeciło. [code][syntax=c] RCC_APB1PeriphClockCmd(RCC_APB1Periph_TI... ENABLE); void init_timer() { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_OCInitStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TI... ENABLE); // Konfiguracja podstawy czasu....
No wiec tak, te dwie rzeczy są takie same w obu twoich przykładach i ich nie zmieniałem: __main_stack_size = 0; __process_stack_size = 1024; Przedstawiam poniżej to co teraz mam w moim projekcie: STM32F103RC_rom.ld [syntax=c]/*****************************... * author: Freddie Chopin, http://www.freddiechopin.info/...
Witam, Wpadła mi w ręce płytka prototypowa z STM32f103 na pokładzie wiec pomyślałem że spróbuję swoich sił z tym mikrokontrolerem. Jak dotąd programowałem hobbystycznie głównie 8bitowe AVR-y i z nimi mniej lub bardziej sobie radzę. Ale do rzeczy wymyśliłem sobie że w projekcie zaprzęgnę do pracy Timer2, którego zadaniem będzie po wywołaniu funkcji Beep();...
Witam, Używam procka STM32F407 (zestaw Discovery). Skonfigurowałem wyjścia Timera1 w trybie PWM zwykłe oraz komplementarne (OCx, OCxN) tak aby na tych sześciu wyjściach otrzymać ten sam przebieg PWM (Polaryzacje komplementarnych wyjść odwróciłem (bity-OCxNP) aby nie były one zanegowane) https://obrazki.elektroda.pl/2279189900_... https://obrazki.elektroda.pl/9326014900_...
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...
Jasne - dziękuję. Jeszcze z tego nie korzystałem więc zupełnie zapomniałem o możliwości taktowania timera z zewnętrznego generatora. Czy realizacja automatycznego wykrywanie czy bity danych zmieniają się co 32 lub 64 takty polega na liczeniu po ilu taktach nastąpiło przerwanie "capture"? Czy jakiś większy fragment kodu mógłbyś udostępnić? Chodzi mi...
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...
Co do drugiego - cytat z manuala F4: "The counter is blocked while the auto-reload value is null" Jeżli chcesz mierzyć czas - niech timer odlicza czas. Możesz np. użyć funkcji capture - wtedy timer "zmierzy" np. długość impulsu podanego z zewnątrz.
Jeszcze raz dziękuję za cenne rady i wskazówki:) szczególnie dla: m.ki BlueDraco nie omieszkam sprawdzić przykładów z EP jak mi wpadną w ręce. Żeby zostawić ślad i pokazać że nauka nie poszła w las wklejam kod z uruchomienia Timerów na porcie A plus diody znajdujące się na płytce(PC8, PC9). Sam szukałem kodu do sterowania tymi diodami z PWM, więc może...
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...
Hej. Pacjent to STM32F401VCT6 taktowany domyślnym zegarem wewnętrznym 16MHz. Uruchomiłem sensor HC-SR04 wykorzystując TIM2 do zliczania długości impulsu ECHO wykorzystując tryb capture oraz DMA. Do rejestru TIM2->PSC ładuje 15, ponieważ chcę aby wartość CNT inkrementowała się co 1us. Kod źródłowy poniżej: [syntax=c] #include "stm32f4xx.h" static...
Może użyć DMA i Timera w trybie capture. Transmisje DMA wyzwalać synchronicznie drugim timerem.
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;...
Witam. Mój problem dotyczy jak widać w nazwie tematu konfliktu między przerwaniami. Poniższa konfiguracja spełnia swoje zadanie i wszystko działa jak powinno. TIM2 [syntax=c] RCC->APB1ENR |= RCC_APB1ENR_TIM2EN; TIM2->PSC = 47999; // Set prescaler TIM2->ARR = 600; // Auto reload value TIM2->DIER = TIM_DIER_UIE; // Enable update interrupt...
(at)Freddie Chopin Tak jak wcześniej pisałem miałem uruchomiony projekt - obsługę ethernet na STM32f407 gdzie main wyglądał tak: [syntax=c] /** ****************************************... * (at)file main.c * (at)author MCD Application Team, EvertDekker * (at)version V1.1.0 * (at)date 14-September-2014 * (at)brief...
Korzystam z przykładowych projektów dostarczonych przez ST w programie IAR. Po lewej stronie okna programu znajduje się okienko z drzewem folderów i pośród nich znajdują się dwa pliki ze 'startup' w nazwie: startup_stm32f10x_md.o i startup_stm32f10x_md.s (zawartość plików znajduje się poniżej). To o te pliki chodziło? Zawartość dość znacznie się różni....
https://obrazki.elektroda.pl/7518627800_... Mikron MIK32 to 32-bitowy mikrokontroler o architekturze RISC-V, który został zaprojektowany i wyprodukowany w Rosji z funkcjami podobnymi do mikrokontrolera STMicro STM32L0 z rdzeniem ARM Cortex-M0+. Nowy układ pokazuje, w jaki sposób architektura open-source RISC-V może pomóc obniżyć barierę...
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...
http://obrazki.elektroda.pl/3002969800_1... Dzień dobry! Chciałbym opisać mój projekt sterownika do układów WS281x, czyli coraz bardziej popularnych pasków diodowych (i nie tylko) z indywidualnie, szeregowo sterowanymi diodami. Do wykonania samego projektu skłoniła mnie potrzeba sterowania takimi paskami, które kupiłem u chińczyka....
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...
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! Mam problem z projektem na STM32. Chciałem użyć pamięci flash do zapamiętania potrzebnych mi parametrów. Problem pojawił się przy czyszczeniu flasha. Po wywołaniu FLASH_ErasePage dostaję flagę FLASH_FLAG_BANK1_EOP,co wydaje się całkiem prawidłowe. Program wraca do pracy z tym, że przez około 5s nie działają mi przerwania od timerów. Same timery...
capture timer capture timer bascom stm32 input capture
wymiana samsung świetlówki phison firmware ps2251 medion internetowy
domofon hikvision liebherr zamrażarka
Dump BIOS tabletu Lenovo K3011W - jak to zrobić? Regulacja drzwi chłodziarki: jak to zrobić?