https://obrazki.elektroda.pl/8115074100_... W związku z urlopem postanowiłem opisać wykonaną w ostatnim czasie konstrukcję. W zawodzie nauczyciela akademickiego jest to 36 dni roboczych plus w moim przypadku 26 dni zaległych z zeszłego roku. Jest to więc trochę czasu - za dużo. Wszystko zaczęło się od znalezienia tunera DVB-T Opticam...
dlaczego od wartości Load odejmujemy 1 ? Bo liczniki używają też wartości 0, więc jeśli chcesz mieć przykładowo 5 cykli, to wpisujesz do licznika wartość "5 - 1". Licznik w efekcie odliczy 4-3-2-1-0 - razem pięć (;
Witam, Jesli korzystasz z MPLABX, to opis wszystkich pragma config jest w...helpie :-) Help>c32 toolchain>C32 configuration settings.... Tez to niedawno przerabiałem :-))) Sporo informacji mozna wyciagnać z forum Microchipa - tylko kwestia zadania odp. pytania. Jak dla mnie to wlasnie PIC32 jest przyjazniejszy dla uzytkownika niz np. STM32 (własnie...
Ostatecznie możesz zrealizować taki pomiar w oparciu o układy cyfrowe. Budujesz generator o odpowiednio dużej częstotliwości do tego jakiś licznik i układ bramkujący ...a mikrokontroler stosujesz do sterowania tym układem oraz odczytem wartości z licznika i akwizycji na wyświetlacz. Wspomniane mikrokontrolery XMEGA są oczywiście lepszym wyjściem z sytuacji...
http://obrazki.elektroda.pl/8034957300_1... Z racji iż były święta i było kilka dni luzu postanowiłem w ramach rozruszania szarych komórek pobawić się płytką HY-MiniSTM3V. Znawcy procesorów ARM doskonale znają tę płytkę więc znają jej możliwości. Samo mruganie diodą mnie nudzi, więc wymyśliłem projekt bardziej ambitny :D i tak powstał...
Cześć, Projektuję moduł miernika mocy na trzech przekładnikach prądowych do silnika DC 7500W. Trzy przekładni prądowe będą umieszczone przed mostkiem prostowniczym 3F oraz przed regulatorem obrotów na triakach...... Dodam ze przeglądałem internety i nie znalazłem zadowalających wyników, mam wątpliwości...... Przekładniki prądowe to TA20-100, a ich prąd...
Używam dużo enkoderów z sprzętowym licznikiem w STM32 i jakoś nigdy nic nie przeskakiwało. Nie trzeba żadnego filtrowania ani kodu, tylko konfiguracja licznika i gotowe.
konstrukcja na pojedynczych licznikach TTL + bramkowanie z GPS. Całość odczytywana i obrabiana przez procesor. Bez sensu. Liczniki sa w mikrokontrolerze, jak licznik jest za krótki, to albo przerwanie od przepełnienia i część licznika programowa, albo lepiej kaskadowe połączenie liczników. W STM32 kaskadowo można łączyc liczniki programowo, w AVR sprzętowo....
Cały czas jednak nie ogarniam tego, dlaczego jeżeli chce pobrać dane z IrQHandler z tablicy gpsread do tablicy RxBuffer w funkcji niżej, to wgl nie moge skopiować danych nawet zwykłym for'em? [syntax=c]void USART1_IRQHandler(void) { //odbiór danych if((USART1->ISR & USART_ISR_RXNE) != RESET) { uint8_t data = USART1->RDR; gpsread[wpp] = data; if(++wpp...
Mnie tam brakuje ustawienia przerwania: [syntax=c]TIM1->DIER = 0x00000001;// enable update interrupt[/syntax] Ogólnie takie coś powinno działać: [syntax=c]TIM1->CR1 = 0x00000000;// default TIM1->PSC = 0x000000FF;// set max prescaler TIM1->ARR = 0x00000FFF;// set max reload count TIM1->CCMR1= 0x00000068;// set PWM mode 1 TIM1->CCR1= 0x000000FF;// set...
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...
Poza tym Zrobienie takiego man-in-the-middle, może być trudniejsze niż się na początku wydaje, a atiny nie jest też demonem prędkości, a nie ma sprzętowego licznika do obsługi enkoderów. Co ty opowiadasz... Mamy enkoder, który generuje max kilka impulsów na sekundę i to ma być problem? No, niby tak, ale robienie man-in-the-middle z attiny i enkodera...
(at)excray, (at)es2, w stm32 jest coś takiego jak rejestr powtórzeń licznika - więc zmienna / licznik stanu nie ma sensu ;) Dygresję nie na temat usunąłem.
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...
Jakby mógłby wyglądać odczyt wartości licznika używając przerwania ?
Wypełnienie ustawia się w rejestrze ccr. Jeśli przebieg ma być nie standardowy, użyj tablicy z ilościami cykli i ładuj do rejestru licznika poprzez dma.
Witam! Tworzę projekt, który polegać ma na bezprzewodowym połączeniu STM32F303 Discovery i HC-05 z ELM327 (wersja bluetooth). Jestem bardzo początkujący, jeśli chodzi o programowanie a zależy mi na tym projekcie, dlatego postanowiłem zwrócić się o pomoc. Korzystam z STM32CubeMX oraz Eclipse z wbudowanym rozszerzeniem „System Workbench for STM32”....
może popatrz na to: https://stm32.eu/2012/04/11/timer-systic... Nie mam doświadczenia z STM32. Moja odpowiedź raczej dotyczyła licznika 4-bitowego.
Wiemy, co MUSI być w środku układu - trzy źródła prądowe , na których w stanie włączenia odkłada się różnica pomiędzy napięciem zasilania i napięciem przewodzenia diody, powodująca straty mocy w układzie i jego nagrzewanie. Ok rozumiem, co chcesz powiedzieć. Ograniczasz moc strat poprzez obniżanie napięcia. Uważasz że te straty sa bardzo wysokie i...
http://obrazki.elektroda.pl/4876103500_1... Witam wszystkich Tym razem lekki projekt, który w moim zamyśle ma być wstępem do zapoznania się z FreeRTOS-em oraz późniejszego, poważniejszego zajęcia się nim. Projekt ten, to demo chodzące pod kontrolą systemu operacyjnego FreeRTOS v7.3.0 dostosowanego do mikrokontrolera STM32L152, które...
Dzięki, sprawdzę kod. No nie zadziała, bo 107 nie ma kalendarza. Z drugiej strony F0 nie maja licznika, za to maja kalendarz. Brałem pod uwagę użycie funkcji konwersji czasu używanej przy obsłudze NTP (przeliczanie sekund na datę/czas i na odwrót) ale każda pomoc się przyda. Ot, załaduj unix-timestamp do licznika RTC i możesz używać funkcji z time.h...
Ten sposób modulacji jest optymalny do zastosowań gdzie np. raz dziennie trzeba przesłać stan licznika prądu lub wody. No wiem, ja to rozumiem. Nie chcę transmitować non stop tylko coś w rodzaju (przykład wymyślony na poczekaniu) ściągać stan licznika z altanki znajdującej się 800m do domu, wysyłać info jak ktoś przekroczy bramę posesji (w nocy prawie...
Witam, Ostatnio zacząłem przechodzić na mikrokontrolery STM32 i testowałem program zawarty poniżej. Licznik TIM2 zlicza w górę, drugi licznik generuje żądanie DMA od przepełnienia się licznika, wysyłając wartość licznika CNT TIM2 do tablicy, która jest inkrementowana. Powinienem otrzymać w tablicy wartości zwiększające się cyklicznie co tą samą wartość,...
Witam, Małe słówko sprostowania odnośnie porównania STM32 i AT91Sam7X.... . Cena: STM32 chyba korzystniejsza Peryferia: STM32 już nie koniecznie, proszę zauważyć że STM32 ma 16 bitowe rejestry i np. skorzystanie z 32 bitowego licznika trzeba kombinować w specjalnym trybie. At91sam7x ma większość 32 bitowych rejestrów. Dokumentacja: AT91SAM7x wygrywa...
Witam, od paru dni ogarniam nową dla mnie architekturę ARM na bazie STM32103C8T6. Bawię się aktualnie licznikami, udało mi się jakoś skonfigurować pwm, ale mały problem pojawia się przy próbie skonfigurowania timera w tryb odpowiadający CTC z AVRek. Chodzi o zerowanie licznika po zrównaniu (Compare) tak, żebym mógł sterować częstotliwością. Ale coś...
Działa!!! :D - Dziękuje Wam przeogromnie. Rzeczywiście dodanie "const" rozwiązało problem. przy okazji: po załadowaniu pełnego obrazu 320*240 miałem dziwny błąd, bo obraz na wyświetlaczu ładował się tylko w "połowie". Okazało się, że wewnątrz funkcji rysującej obraz miałem zmienną "licznik_pikseli", która uległa przepełnieniu - mikrokontroler ponownie...
Tak, o jeden za duży, często o tym zapominam, ma być 0x7FFF. Ok, czyli zlicza tylko sek. Zapisuję w tych nieulotnych rejestrach datę startową, a po każdym włączeniu muszę z licznika sekund wyliczyć aktualny czas i datę. A w STM32F4 są już liczniki min. godz. dni itd...? Nie patrzyłem jeszcze do dokumentu. Na razie nie ruszam F4 zgodnie z zaleceniami,...
Okrój funkcje - na Arduino USB raczej nie zrobisz bez drogiej przystawki (chyba, że zmienisz platformę na jakiś STM32 typu Nucleo), za to resztę to musisz kupić jakiś tani LCD, moduł BT na serial. Wymontowywanie części z telefonów etc. mija się z celem, bo drożej wyjdzie rozpracowanie interfejsów / pozyskanie dokumentacji niż kupienie fabrycznego nowego...
Masz racje a ja się myliłem - mój błąd. Przepraszam. Zasugerowałem się czymś innym a potem brnąłem w PWM. Luz. Nie no obciach ale właśnie przeglądam Rudy van der Plassche i myślami byłem przy delta sigma (4 rzędu na 4 bitowym PWM)... a trzeci PWMa 2MHz będzie dawał do próbek co mają 8kHz twierdząc że to absolutne minimum. A tego nie rozumiem. Jeśli...
Ok. Na razie priorytetów nie ustawiam, puki innych przerwań nie będę potrzebował. Jest tego wszystkiego trochę, ale ogólnie praca z STM32 jest bardzo przyjemna, no i z C:) Robienie tego wszystkiego w asm od zera, to byłoby dość karkołomne. Dodano po 11 W sumie muszą być dwie funkcje inicjalizacji RTC, np. RTC_Init(); i RTC_Init_Full(); Pierwsza do inicjalizacji...
Witam, Mam problemy z poprawną pracą LCD na PCD8544. Jest to wersja na niebieskim PCB z Aliexp... https://obrazki.elektroda.pl/6243402900_... Fragment kodu:[syntax=c]system_init(); // reset LCD //konfiguracja LCD LCD_DC=0; // 0-przesyłanie komend SPI_cmd(0x21);// rozszerzone rozkazy LCD. SPI_cmd(0xC5);// ustawienie LCD Vop (Kontrast). SPI_cmd(0x06);//...
Witam Proszę o pomoc w rozwiązaniu problemu. robię projekt silnika prądu stałego z enkoderem na STM32 podpiąłem wyprowadzenia : -PA6 Enkoder CHA Wejście pływające (TIM3_CH1) -PA7 Enkoder CHB Wejście pływające (TIM3_CH2) i nie wiem jak ruszyć dalej by wyświetlać odczyt prędkości na wyświetlaczu LCD. Robie to na STM32f103VBT i Używam biblioteki ST Tyle...
Witam, Robię analizę FFT na tym mikrokontrolerze korzystając z bibliotek DSP producenta. Za pomocą TIM2 zmierzyłem czas obliczeń FFT (szyna APB1 36MHZ, prescaler = 35 daje inkrementację licznika co 1µs). Fragment listingu z pomiarów: [syntax=c] TIM2->CNT = 0; for(i=0; i<512; i++) buffer_input[i]=(float)(ADC_buff_1[i][0]... arm_rfft_f32(&S,...
Projekt idzie powoli do przodu. W Eagle rozrysowuję projekt bazujący na istniejącej konstrukcji. Skupiam się na zaprojektowaniu kompletnego urządzenia zgodnie ze sztuką inżynierską. Pracę podzieliłem na różne warianty: - moduł mocy z zewnętrznym zasilaniem sterowników IGBT - moduł mocy zawierający zasilacz Co do programu, to mam działąjącą wersję generującą...
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...
Dzień dobry Koledzy. Piszę kod w C#.NETMF dla STM32F429I-DISC1. Próbuję zrealizować takie działanie w którym wykorzystuję metody klasy UIElement. Jedna z metod obsługuje zdarzenie dotknięcia panelu dotykowego. Druga z metod ("Invalidate();") pozwala aktualizować treść wyświetlacza. Do tego mam timer który co sekundę generuje przerwanie inkrementujące...
Cześć Próbuję stworzyć komunikację z diodami WS2812 za pomocą licznika i DMA. Licznik ma mi generować PWM o wypełnieniu pobieranym z tablicy. Wypełnienie to ma być przesyłane przez DMA w momencie osiągnięcia wartości maksymalnej licznika. Sam licznik działa prawidłowo i generuje PWM wpisany na sztywno lecz transfer danych nie jest inicjowany przy osiągnięciu...
Witam, mam problem z obsługą timera w STM32f103ZET6 na płycie ewaluacyjnej HY RedBul v3.0. Problem polega na opóźnionym zapłonie jednej z funkcji. Realizuje to na przykładzie samozamykającej się bramy po 15 sekundach, tak aby nie zatrzymać całego programu. Generalnie udało mi się skonfigurować przerwania od TIM1, ale timer liczy cały czas, czyli jeżeli...
Kol. Kaczor dziękuję za pomoc choć brak w książecce pełnych listingów nie był aż tak wielką preszkodą. Na początek interesują mnie pola struktury inicjującej licznik, dla przykładu : TIM_TimeBaseStructure.TIM_Period = 65535; TIM_OCInitStructure.TIM_Pulse = 10000; Takie zainicjowanie licznka i kanału w jaki sposob będzie skutkowało dla generowania przerwania...
To kod, który u mnie na STMF107 działa - może znajdziesz jakieś róznice... W przerwaniu mam obsługę klawiatury 4x4 + kilka liczników, ale to tutaj nieistotne, więc nie zamieszczam. [syntax=c] //--------------------------------------... // Inicjalizacja TIM2 //--------------------------------------...
Ale jeśli kolega (at)sstasinek o czymś takim myśli, to polecam wykorzystać Raspberry PI. Sam teraz żałuję, że nie oparłem całego projektu na tym. Ale cóż. Będzie pretekst do zrobienia kolejnego sterownika. :) Nie planuje, poza tym - używać kilofa do wbijania gwoździa? Rozbudowanie funkcji sieciowo-serwerowej w sterowniku pieca nie jest konieczne, ani...
Napisałem delay oparty o timer konfiguracja TIM1: void TimerConfig() { RCC_APB2PeriphClockCmd(RCC_APB2Perip... ENABLE); TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_TimeBaseStructure.TIM_ClockDivision=... TIM_TimeBaseStructure.TIM_CounterMode=TI... TIM_TimeBaseStructure.TIM_Period=72; TIM_TimeBaseStructure.TIM_Prescaler=1;.....
Witam ponownie tym razem próbuję uruchomić przerwanie od TIM7 w mikro STM32 F303VC6 na płytce Discovery F3. Napisałem konfiguracje NVIC i TIM7 po czym uruchomiłem całość i owszem to co jest w funkcji obsługi przerwania jest wykonywane ale mam wrażenie, że pełną częstotliwością a nie co 1 sekundę tj ustawiłem. Prosiłbym o jakieś wskazówki bo pierwszy...
Brak Ci preloadingu (buforowania). Wytłumaczę ten fenomen tak: Powiedzmy że Twój timer liczy od 0 do 100 (taka wartość jest w ARR), a ty nagle zmieniasz ARR na 10, tyle że aktualna wartośc licznika wynosi 50. No i teraz Twój timer musi doliczyć do 65535 żeby się przekręcić i doliczyć do tych 10. Dokładnie tak samo ma się sprawa z wartością CCR. Przed...
Zrobiłem teraz oczekiwanie na timerze 6 tą przerwę (1 sek) ale nic nie pomaga: Dodano po 38 Porównałem rejestry CR przed wywołaniem kalibracji w moim i przykładowym programie. Różnica polega na tym, że u mnie włączony jest bit ADstart a w przykładzie jest wyłączony. Skąd się bierze ta różnica?
Jestem bardzo wdzięczny za takie tematy- ktoś to sprawdził i dzieli się wiedzą. Tylko spójrzmy na to obiektywnie - co kolega tymon_x sprawdził ? żeby nie było niedomówień! Otóż sprawdził (przepraszam znowu za porównanie ale), że koło jest okrągłe, że kwadrat jest kwadratowy czyli - że 8-bitowce zawsze miały i mają problemy z 16-bitowymi peryferiami....
(at)BlueDraco hmm przerwania owszem i ich wielopoziomowosc jest przydatna ale tez nalezy pamietac ze rdzen ARM7TDMI ma niestety tez sporo gorzej rozwiazane niz Cortex-y... a male procesory to tez nie sa ;) Jednak nie o tym mialo byc... W sumie nie zawsze petla glowna jest zlym rozwiazaniem, czasami mozna w niej przeciez zbudowac maszyne stanow ktora...
witam, mam podobny problem, nie wiem co robię źle, chcę zapalić diodę podłączoną do PB0 za pomocą przerwania od przycisku podłączonego do PC7 lub 8. po wgraniu kodu przerwanie od SYSTICK ładnie działa, zapala i gasi na zmianę diodę na PB1, natomiast dioda na PB0 swieci się cały czas i nie ma żadnej reakcji na naciskanie przycisku.... poniżej kod.
Witam, mam problem z poprawną konfiguracją modułu Bluetooth. Chodzi o to, że na przetwornik ADC wyzwalany timer1 podaje sygnał z GPIOB i chcę próbkować go wg ustawień timera z częstotliwością co najmniej 500Hz. Dane pobierane są z rejestru ADC przez DMA do zadeklarowanego wcześniej buforADC (unsigned short int buforADC buforTx (unsigned char buforTx[4]={0};)...
Witam. Starając się uruchomić Systick'a natrafiłem na szereg błędów: DescriptionResourcePathLocationType redefinition of 'SysTick_Handler'main.c/Startowyline 94C/C++ Problem cs-make: *** [out/main.o] Error 1Startowy C/C++ Problem previous definition of 'SysTick_Handler' was herevectors.c/Startowyline 71C/C++ Problem Unused static function...
Witam, Jako że jestem początkujący w dziedzinie STM32 napotkałem problem nie do przejścia. Moim zadaniem jest wysyłanie inkrementowanej zmiennej "Dane" która jest wysyłana przez USART i odczytanie jej przez terminal. W konsekwencji wyrysowując otrzymane wartości powinienem uzyskać coś podobnego do piły o amplitudzie od 0 do 255. Bez DMA wszystko pracuje...
Dzięki Freddie Chopin za szybką odpowiedz. Sprawdziłem w debagerze czy po zejściu licznika (wartość CNDTR) do zera wyłącza się kanał DMA. Okazuj się iż jest nadal włączony. Twój kod zbyt wiele mi nie pomógł, wcześniej tez go spotkałem w innym temacie na forum. Na początku chcę przesyłać jeden bajt cyklicznie(czyli po każdym wywołaniu zdarzenia TXE),...
Witam, otóż zasilam owy wyświetlacz napięciem ±3.3V, a także stany logiczne są na tym poziomie. Pin kontrastu jest podpięty bezpośrednio do masy, kontrast wizualnie wydaje się być dobrany idealnie. I problem w tym, że pixele bardzo wolno się zapalają.(wyszło mi ok. ~300ms na pełne zaświecenie pixela) Czy jest to jest maksimum wyświetlacza, czy...
Podałeś przykład z mnożeniem niedostosowanych do FFP liczb, to ja podam kontrprzykład: for(float i=0;i<10;i+=0.00000001); Zadziała z float? Oczywiście nie. O czym to świadczy? Wyłącznie o tym, że programując trzeba myśleć. Rozwiązanie problemu który przedstawiłeś zajmuje jakieś 3 sekundy - wystarczy zastosować typ double (lub po prostu zmienić wartości,...
Wracam do tematu [; Wzmacniacze różnicowe (robione ręcznie z OPAMPa i rezystorów)są fajne, ale tylko w teorii, bo niedokładność elementów zabija całą ideę. Po zastanowieniu skłaniam się do tej "klasycznej" metody pomiaru w której mierzony jest czas ładowania / rozładowywania kondensatora. Biorąc pod uwagę fakt, że mało interesuje mnie konkretna rezystancja,...
Mowisz dalej o szybkosci ok trzeba bylo dac STM32F4 + PHY :), a moze lepiej pilo by zrobic karte na PCI-x ? Jest w tym sens ? Oczywiscie, ze jest sens - nauka,wiedza,rozwiazywanie problemow i nie widze nic smiesznego pytajac tu na forum o rzeczy, ktore innym wydaja sie oczywiste. Pije tu do tematu 1Mhz, bo ja potrzebuje wiedzy i chcialbym wiedziec...
Można spróbować po prostu wrzucić któryś z małych uC - coś z rodziny MSP430 lub STM32? Większość ma liczniki chodzące do dziesiątek MHz, mogą pracować praktycznie bez elementów zewnętrznych, obudowy mogą być małe, plus jeśli trzeba to dodatkową funkcjonalność można samodzielnie zaprogramować.
Będzie tak jak piszesz. Przerwanie po doliczeniu do 999 po czym zerowanie licznika i liczy od nowa
Witaj :) Co do wgrania, jeżeli używasz System Workbench for STM32 to tam trzeba na projekcie w drzewku nacisnąć prawym myszy, wybrać "Debug As" -> "1 Ac6 STM32..." i po odpaleniu wybrać: Debug device: ST-Link-V2 Debug interface: SWD Tutaj masz obrazki: http://forbot.pl/blog/artykuly/programow...
Dla licznika TIM1 trzeba dodatkowo dodać polecenie: [syntax=c]TIM_CtrlPWMOutputs(TIM1, ENABLE);[/syntax] Ustawia ono bit MOE w rejestrze BDTR, polecenie dotyczy liczników 1, 8, 15, 16 i 17 .
Jesli rozumiem, to potrzebujesz mocy obliczeniowej tak ze 10x większej niz uK tworzacy te PWM. Niekoniecznie. Niektóre mikrokontrolery mają liczniki umożliwiające to sprzętowo ogarnąć. Np. STM8, czy STM32. A w przypadku AVR można skorzystać ze wspomagania przerwań licznikiem. Poleć jakąś literaturę, sporo jest różnych książek w necie. Temat mikrokontrolerów...
Witajcie, stworzyłem analizator w oparciu o wzór na DFT. Niby wszystko fajnie, ale problem jest taki, że jak puszczam to w ruch to na każdym "widmie" mam to samo ;/ Sprawdzałem na dwóch prążkach (różne konfiguracje) i ciągle skaczą w taki sam sposób. Kod main.c: [syntax=c]/** ****************************************...
OK, dzieki użyłem gotowca Nie używaj gotowców w takiej banalnej sytuacji. Doczytaj co to jest ten Systick. W dużym skrócie to licznik 24 bitowy - to ważna informacja, może zliczyć maksymalnie do ok. 16 mln (2 do 24). Po doliczeniu do zaprogramowanej wartości zgłasza przerwanie. Do ustawiania wartości można użyć funkcji Systick_Config(), ale najlepiej...
Mam płytkę ZL27ARM oraz STM32F0Discovery. Chcę za pomocą ZL27ARM i komunikacji SPI sterować jasnością diody na płytce discovery. Wartość od 0 do 100 ma "przychodzić" poprzez SPI i ma być wpisywana do licznika TIM3, który za pomocą PWM steruje jasnością diody LED. Program się kompiluje, ale płytka discovery nie reaguje na dane z SPI. Przy debugowaniu...
No ale przecież tak właśnie jest zrobione - preskaler/dzielnik to po prostu licznik z porównaniem. 4\/3!!
https://obrazki.elektroda.pl/9462291700_... Chciałbym zaprezentować rozwinięcie eksperymentalnego odbiornika SDR, jaki opisałem ostatnio: https://obrazki.elektroda.pl/6947080100_... https://obrazki.elektroda.pl/7046555300_... Najbardziej w tym momencie interesującym fragmentem płyty jest głowica: https://obrazki.elektroda.pl/9911930900_...
1. Przeczytaj dokładnie w manualu co robi ten bit. Kilka stron wcześniej masz obrazki które doskonale pokazują po co on jest. On tylko włącza bądź wyłącza buforowanie, a nie przeładowywanie czegokolwiek. 2. Rejestr ten w Twoim przypadku nie ma wpływu na częstotliwość, bo jego wartość ustawiona jest po prostu na połowę okresu timera, równie dobrze mogłaby...
Skoro mamy taką definicję funkcji GPIO_SetBits: void GPIO_SetBits ( GPIO_TypeDef * GPIOx, uint16_t GPIO_Pin ) To możemy zrobić tak: [syntax=c] GPIO_SetBits(GPIOB ,((uint16_t)1<<licznik)); [/syntax] lub (być może będzie działać nieco szybciej) [syntax=c]uint16_t maski[16]={ GPIO_Pin_0, GPIO_Pin_1, GPIO_Pin_2, //itd..... GPIO_Pin_15, };...
1/ nadużywanie ustawiania bitów "|=". Nigdzie nie ma odpowiadającego wstępnego kasowania bitów, które są ustawiane, więc z góry zakładam, że ten kod może być zawodny. Najlepszym rozwiązaniem jest pojedyncze wpisanie do rejestru jednej wartości zawierającej żądane ustawienia wszystkich pól. 2/ [syntax=C]TIM1->PSC = 23999; TIM1->ARR = 1;[/syntax] Na timer...
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.
Witaj. Tu masz trochę o PWM czyli o sterowaniu pompą: https://forbot.pl/blog/kurs-stm32-7-licz... Poczytaj również o STM32CubeMX. Dobrym środowiskiem programistycznym jest Atollic studio. a tu masz jak odczytywać napięcie: https://forbot.pl/blog/kurs-stm32-6-pomi...
https://forbot.pl/blog/kurs-stm32-f1-hal...
Też się bawiłem taką prowadnicą tyle ze na stm32, mają wbudowany licznik kwadraturowy. Można się fajnie PID'em pobawić, zrobić prosty serwomotor.
To, co jeszcze warto wyciągać z takich drukarek to enkoder liniowy. To wygląda jak ten transoptor szczelinowy, ale przechodzi przez niego taki przeźroczysty pasek z kreskami. Super sprawa. Standardowo można znać przesunięcie paska, względem enkodera o 1/4 odległości pomiędzy kreskami. Działa jak zwykły enkoder, czyli można np. podłączyć, prawie bezpośrednio...
Czy nie powinno być: [syntax=c] TIM1->PSC = 0; [/syntax]
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...
Czytając o rejestrach liczników, jedyną taką flagą (którą znalazłem), jest TIMx_SR_UIF, czyli UpdateInterruptFlag. Co prawda nie będę włączał przerwania, ale jest to chyba jedyna flaga którą mogę w tym celu wykorzystać, czy też jest jakaś inna lepsza do tego celu? To jest właśnie flaga która jest Ci potrzebna. 4\/3!!
Jedyną słuszną metodą jest zrobienie maszyny stanów na timerze. Najprościej będzie Ci odpalić SysTicka np na 1 ms i do tego podpiąć licznik.
Ok no to zaczynamy na początku (po konfiguracji itp.) powinieneś mieć coś takiego: [syntax=c] if (BKP_ReadBackupRegister(BKP_DR1) != 0xA5A5) /* Sprawdzamy czy trzeba ustawić zegarek */ { /* Zawartosć licznika RTC nie jest prawidłowa, należy ustawić zegar */ /* Konfiguracja oscylatora, preskalera itp. */ RTC_Configuration(); /* Funkcja w której ustawiasz...
Z tego co mi się wydaje przed odczytaniem wartości z licznika należałoby sprawdzić flagi które mówią o tym czy w liczniku cokolwiek sensownego się znajduje... 4\/3!! sprawdziłem flagi i nic sensownego się nie znajduje, same zera
Cześć Od razu nadmienię, że jestem w tym początkujący. Posiadam mikrokontroler STM32F100C4T6B oraz moduł GY-50 L3G4200D. Próbuję nawiązać połączenie za pomocą interfejsu I2C i wyświetlić informację na komputerze kominukując się po UART, który na pewno działa. Jeżeli chodzi o połączenie to jestem na 99% pewny, że jest dobrze. Korzystam z programu STM32CubeMX...
Przerwanie powinno być w porządku, ale co do inicjacji samego Timera to nie jestem pewny. Po prostu nie mam zaufania do funkcji API dla Timerów. Czy udało Ci się uruchomić cokolwiek związanego z licznikami na tych funkcjach?
Prawda, z 32 bitowym licznikiem działa prawidłowo. Dzięki za pomoc ! p.s. jeszcze jeden szczegół mnie zastanawia: Te statystyki są wyliczone z przedziału czasu od poprzedniego pobrania statystyk ? czy to znaczy, że dostaniemy bardziej dokładne statystyki jeśli będziemy rzadziej je pobierać ? a max czas pomiędzy kolejnymi pobieraniami to przedział od...
Powtórzę po raz trzeci. Jeśli CCR <= ARR, znacznik ustawia się przy zrównaniu wartości licznika z CCR. W przeciwnym przypadku znacznik CC ustaia się razem z UIF. Co jeszcze nie jest jasne? Z czym właściwie jest problem? W procedurze obsługi przerwania reaguje się na zdarzenia, na które chce się zareagować. Nie chcesz reagować na CC - to nie reaguj....
zostanie wysłana po i2c cała paczka danych, czy może się zdarzyć, że zostanie wysłany kawałek starej tablicy i kawałek nowej ? (w trakcie wysyłania zostaną już nadpisane dane) Czy jednak trzeba sobie jakoś samemu zapewnić to, żeby takie "zbiory" były wysyłane jako całość ? W czasie przesyłania przez DMA, możesz modyfikować zawartość, bo i tak DMA widzi...
Dzień dobry, zmagam się już z tym problemem od kilku dobrych popołudni, a zatem chcę napisać kod, który będzie uruchamiał tryb PWM korzystając z timera1 na dowolnym pinie w mikrokontrolerze STM32F303RE i nijak mi nie chce to zadziałać. Próbowałem już wielu rzeczy i nie wiem, co jest nie tak (zrobiłem to tak, jak jest w dokumentacji napisane, aby zrobić)....
Jest wiele metod. Najwygodniejsze: 1. Ustaw sobie SWV data trace i pisz do jakiejś globalnej zmiennej. Bedzesz miał w CubeIde licznik taktów wyświetlony kiedy ten zapis się dokonał. Odejmiesz dwie wartości i będziesz miał wynik :) [url=https://www.elektroda.pl/rtvforum/v... pisałem Ci już o SWV Jest to potężne narzędzie...
Czy możesz mi powiedzieć, STM32 na wejściu dopuszcza sygnały maksymalne 3,3 V między szczytowe czy wartości skuteczne? Przykładowo dla STM32F407 i płytki Discovery zakres (full scale) to 0...3 V. Stąd po przesunięciu poziomu można podać właśnie 3 Vpp (międzyszczytowo). Dla innych STM32 to może być 0...3,3 V i wtedy można podać 3,3 Vpp. Czy możesz w...
Witam Różniczkowanie stanów licznika?
Dół 4W/cm^2 góra 7...8W/cm^2 . Arduino czyli AVR wystarczy do zrobienia regulatora PID, którego wyjściem będzie PWM liczony w ms Stała czasowa ceramicznych promienników to sekundy czyli regulator nie musi być super wypasiony pod względem mocy obliczeniowej. Odradzam układ MIMO. Wystarczą dwa oddzielne regulatory PID dla dołu i góry. Autostrojenie PID...
Na bazie jednego z przykładów od STM zrobiłem transfer DMA z urządzenia zewnętrznego i drugi układ z transferem do urządzenia zewnętrznego. W każdym przypadku miałem zewnętrzny sygnał taktujący (zegar) danych równoległych w takt którego dane są wysyłane/odbierane. W przykładzie był do tego zaprzęgnięty któryś timer, ale nie pracował jako licznik tylko...
Jestem autorem, będą w AVT. W TME, Farnel można kupić (można było) zestawy devkity (tanio nie jest) z FT201, FT220, FT221 ale bez izolacji galwanicznej. Do zabawy wystarczą. Prawie skończyłem funkcje dla STM32. Praktyczne zastosowanie - licznik resetów: https://obrazki.elektroda.pl/6970164000_... Tylko 8-bit ale to demo.
Jak wyżej. Jest to nie wykonalne na STM32. Aby spełnić Twoje warunki to licznik musiał by się zwiększać z częstotliwością (2,7*10^6 * 100 / 5)=540MHz - zakładając że chcesz uzyskać rozdzielczość co 5%. Po co Ci PWM o takiej częstotliwości?
Nie powinno być przypadkiem dekrementacji licznika? [syntax=c]if (i2c_timer) i2c_timer--; [/syntax]
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,...
http://obrazki.elektroda.pl/9377221800_1... W dziale mikrokontrolery ARM znajdziecie bezpłatny (do osobistego użytku edukacyjnego) poradnik STM32 przygotowany przez szczywronek . Materiał dostępny jest w temacie: techekspert: Do kogo kierowany jest poradnik, jakie podstawy powinien mieć opanowane czytelnik? Czy znajomość określonej...
Ten przebieg trójkątny to będzie po prostu zawartość licznika Timera. Więc nie trzeba go jakoś specjalnie generować. On się sam wygeneruje po odpowiednim skonfigurowaniu Timera. Idąc dalej wygeneruje sinusa, którego będę porównywać z aktualną wartością tego timera i gdy owe wartości będą równe wtedy powinienem je wpisać jak wypełnienie PWM-a, dobrze...
W tym momencie wypłynęło mi coś zupełnie innego. Sprawa dotyka USART i modułu BTM222 (kamodBTM222). Nie mam pojęcia, dlaczego nie mogę wykonać tak prostej czynności, jak zmiana nazwy komendą ATN. Korzystam z przykładu zamieszczonego na http://www.mikrokontroler.pl/content/blu... W tym momencie zrezygnowałem z przerwań...
W AVR bym po prostu na czas "składania" zmiennej m w funkcji read_us wyłączył globalnie przerwania - cli() i po zapisaniu wartości do zmiennej m włączył - sei(). Czy tutaj trzeba wykonać podobną operację? Ale to Ci nic nie da, bo przecież timer chodzi nadal (; Oraz czy mógłbyś Freddie opisać jeden ze sposobów jak uzyskać "sparowany" odczyt. Zrób to...
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...
stm32 przerwanie licznika konfiguracja licznika stm32 stm32 flagi licznika
tłok pierścień spawarka przestać działać pompa zapowietrzać
optotriak obciążenie indukcyjne serwis viessmann
Fiat Freemont 2.0 JTD automat 62TE/6-DCT – brak biegów, diagnostyka skrzyni Wymiana lamp BMW X5 F15: Bi-xenon na LED Adaptive