https://obrazki.elektroda.pl/9151185000_... Druga część artykułu o najtańszych nowych mikrokontrolerach z roku 2017. Ekosystem developerski Środowisko developerskie mikrokontrolera ma ogromny wpływ na jakość pracy z nim i w konsekwencji - na produktywność. Na to składają się różne czynniki – jakość IDE, dostępne biblioteki, płytki...
Witam, początkowo zacząłem programować mikrokontroler stm32f103RBT6 wykorzystując bibliotekę standardową, ale zachęcony przeczytanymi postami na elektrodzie zacząłem programowanie wykorzystując tylko definicje rejestrów zawarte w pliku stm32fx.h. Chciałem włączyć jakiekolwiek przerwania (np. od timera 4) niestety wogóle nie wiem jak do tego się zabrać....
Witam, raczkuje w mikrokontrolerach i mam mnóstwo banalnych problemów z tym związanych. z tym nijak nie mogę sobie poradzic: potrzebna mi obsługa timera TM2 cortexM0 na płytce discovery, czytam manual i znajduje potrzebne mi rejestry RCC->APB1ENR |= (1<<0); //TIM2 CLOCK EABLE TIM2->CR1 |= (1<<0); //counter enable TIM2->ARR...
Witam. Mam standardowy enkoder dwa kanały A,B przesunięte o 90st. Próbuje skonfigurować timer 2 do pracy z tym enkoderem jednak licznik ani drgnie. Próbowałem skonfigurować na różne sposoby i w końcu nie wiem czy coś jest fizycznie uszkodzone czy po prostu źle skonfigurowałem rejestry. Oto mój program: [syntax=c] RCC->APB1RSTR|=RCC_APB1RSTR_TIM2RST;....
W związku z tym iż zamierzam wykorzystać H750 n nowej wersji sondy https://www.elektroda.pl/rtvforum/viewto... mam kilka pytań. Ucieszył mnie fakt, ze CPU można taktować niezależnie od USB, UART, SPI itd.Niestety nie poradziłem sobie z timerami. Skuszony notą katalogową byłem przekonany, że mogę je taktować zegarem 400MHz. Okazał...
Witam, timery w stm'ach są bardzo rozbudowane i staram się zrozumieć koncepcje działania. Napisałem standardowy kod na miganie dwiema diodami: TIM_Period i TIM_Pulse . Przy takich wartościach diody są idelanie zsynchronizowane (jedna mruga dokladnie 2 razy szybciej niż pierwsza), ale gdy zmienie wartości TIM_Period na 60000 (ewentualnie 59999) i TIM_Pulse...
Jak to zrobić: 1. włączasz przerwanie od timera w NVIC 2. Konfigurujesz timer, żeby generował jakieśtam przerwanie Odpowiedzi na pytania: 1. No bez timera raczej nie zrobisz przerwań co jakiś czas [; 2. Funkcja przerwania po prostu musi nazywać się DOKŁADNIE TAK SAMO jak jest wpisana w tablicy przerwań (zwykle CośtamCośtam_IRQHandler() ) 3. Hę? Przykłady...
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...
Ile razy kolego mam ci pisać o przykładach zawartych w bibliotece? Z każdą "pierdołą" będziesz pisał nowy temat?
Nie piszę z biblioteką, ale spróbuj wrzucić konfigurację przerwań po timerze, a najlepiej zamiast ładować tam tę beznadziejną strukturę, użyj NVIC_EnableIRQ(TIM1_CCIRQn) czy jakoś tak, bezp. z CMSIS.
Konfiguracja portów i timera (przyłączenie do magistrali), btw dlaczego TIM2 nie da się podłączyć do APB2? RCC nie słuszy do "łączenia" tylko do "włączania" - TIM2 jest na konkretnej magistrali i koniec, nie możesz sobie go "podłączyć" do innej. // Wlacz taktowanie GPIOE i GPIOC i TIM2 RCC_APB2PeriphClockCmd( RCC_APB1Periph_TIM2 | RCC_APB2Periph_GPIOE...
Ja uruchomiłem to tak jak chcesz, ale nie mogę Ci pomóc bo nie używam bibliotek od ST. Generalnie musisz uruchomić I2S z odpowiednią częstotliwością, SPI lub Timer, który będzie karmił mikrofon sygnałem odpowiedniej częstotliwości oraz I2C do konfiguracji kodeka. Nie wiem, co robi pierwsza magiczna funkcja, ale jeśli uruchamia I2S razem z PLLem i całą...
SPL - standard perihperal library oznacza skrót nazwy bibliotek, które użyte zostały w Twojej książce. Są one dostarczone przez producenta STM32 i nie do końca są martwe. Wiele projektów i tutoriali nadal jest o nie oparte. CMSIS - Cortex™ Microcontroller Software Interface Standard jest zbiorem uniwersalnych funkcji dla wszystkich CORTEXów takich...
Słuszne uwagi. Ja mam prośbę. Czy koledzy mogliby przedstawić swoje biblioteki, sposoby, metody konfiguracji np. RCC, Timera, czy jakiegoś układu po I2C. Jeżeli Panowie uważają, że kody są na tyle dobre żeby się z nimi podzielić, i żeby mogły służyć jako pomoc w pisaniu własnych to bardzo proszę. Myślę, że nie tylko mi się przydadzą, ale również mogą...
Generalnie niepotrzebnie włączasz jakiekolwiek żądnia transferu DMA ze strony timera - to ADC ma generować takie żądania, a nie timer. Skoro zaś wszystkie pozycje są faktycznie wypełnione danymi, to znaczy, że transfer ma miejsce, tyle że wartości odczytane z ADC są złe. Może z tym 1.5 cyklu na pomiar przesadziłeś? Może timer generuje żadania konwersji...
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...
Zacznij od migania diodką ! Przesyłam Ci kilka działających przykładów związanych z GPIO, EXTI i timerem "systemowym". Biblioteki ST są dobre na starcie, ale kod, który się generuje na podstawie tych bibliotek jest 2 razy większy (w porywach) od tego napisanego "ręcznie". Natomiast nie polecam całkowitego "odcinania" się od nagłówków (*.h) napisanych...
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...
Rozumiem, że mają tą samą podstawę czasu (preskaler i ARR), dlatego interpretowałem to w taki sposób, że rozróżnieniem dla poszczególnych kanałów jest właśnie wartość Pulse. W dokumentacji biblioteki HAL (podrozdział 65.1.2 str 868) w konfiguracji Output Compare nie widzę nic odnośnie połączenia kaskadowego dla timera. Natomiast w dokumentacji procka...
Witam, programuję od 2 miesięcy mikrokontrolery STM32. Środowisko jakiego używam do tego to CubeMX do generowania konfiguracji oraz System Workbench for stm32 (eclipse z nakładką). Co ważne używam tego na Windowsie (a nie ma linuksie). Tydzień temu odinstalowałem eclipse i zainstalowałem ponownie (czemu, nie powiem :), zrobiłem to) i od tego momentu...
Nie mogę rozwiązać problemu maksymalnej częstotliwości wyzwalania przerwania od timera (Update). Timer nie wyzwala przerwania z częstotliwością większą niż ok. 400kHz. Testuje zwykłą funkcjonalność wyzwalania przerwania w momencie zakończenia zliczania do góry lub na dół (update), bez PWM. Wszystkie próby prowadzę na jednej płycie (oryginalnej). Testowałem...
Zaczynałem na AVRach, później przesiadłem się na STR7xx, ugryzłem LPC, a teraz tworze projekty na STM32 i są to naprawdę świetne uC. Łatwo zacząć, bo jest dobre darmowe środowisko bez konieczności godzinnych konfiguracji, tutaj instalujemy i jest gotowe do pisania programu dla STM32 lub odpalenia przykładów zawartych w IDE. Na początek dobra też jest...
Minimalna konfiguracja bez zbędnych kwiatków wygląda tak: [syntax=c]const uint32_t APBFreq = 84000000; const uint32_t TimerFrequency = 28000000; const uint32_t PWMFrequency = 28000000; TIM2->PSC = APBFreq/TimerFrequency - 1; TIM2->ARR = TimerFrequency/PWMFrequency - 1; TIM2->CCR3 = (TimerFrequency/PWMFrequency - 1)/2; TIM2->CCMR2 = TIM_CCMR2_OC3M_1...
Przegryzienie się przez ponad 1000 stronicowego manual'a i "ogarnięcie" procesora jest procesem dość długotrwałym i żmudnym, stąd też następuje próba przeskoczenia tematu za pomocą gotowych bibliotek. Nigdy jakoś nie miałem okazji "przegryzać się" przez ten 1000 stron Reference Manual. Od razu przechodzę do Register Descriptions, bo ile to razy można...
To mój pierwszy post na tym forum, więc witam wszystkich użytkowników. Od jakiegoś tygodnia bawię się ARMami, używam płytki ZL31ARM z prockiem STM32F103RBT6. Po kilku próbach zdałem sobie sprawę, że standardowa biblioteka ST to jakieś nieporozumienie i zacząłem pisać programy po prostu operując na rejestrach. Zatrzymałem się na pewnym problemie częstotliwością...
(at)atom1477 Wiesz co mnie urzekło? NIE MA DEBUGGERA. Piszesz program, odpalasz go i ma działać. I lepiej żebyś rozumiał co robisz bo jak namieszasz to możesz wszystko wyrzucić bo nic Ci nie pomoże. To bardzo odświeżające tak sobie kodować w pamięci i debugować kod w głowie zanim jeszcze w ogóle zostanie uruchomiony. Po to masz tak mało pamięci żeby...
(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...
Witam, staram sie wykorzystac karte SD do przechowywania danych uzywanych przez wyswietlacz (bitmapy etc). Korzystam z biblioteki FATfs i komunikacja SPI. Aby moc tego dokonac modul FATfs korzysta z sygnalu zegarowego, ktory co 10ms bedzie wywolywal funkcje [syntax=c]disk_timerproc()[/syntax] Do cyklicznego wywolania tej powyzszej funkcji staram sie...
Algorytm V/f nie zapewnia stałego momentu w całym zakresie prędkości z założenia. Ten algorytm zapewnia znikomy moment przy rozruchu. Konieczna jest stabilizacja strumienia głównego oraz kontrola poślizgu aby uzyskać duży moment przy zerowej prędkości obrotowej. Dlatego fabryczne falowniki posiadają procesory DSP w celu kontroli tych parametrów, sprzężenie...
Więc, doszedłem do tego, że mam źle skonfigurowany Timer. Jak wrzuciłem kod z użyciem bibliotek to ruszyło, zaczął przesyłać w nieskończoność jakieś losowe wartości. Po pierwsze w NVICu muszę odblokować przerwanie od Timera: Tak na początek - rejestr danych USART ma 8 bitów, nie 16. Zaprogramuj transfer DMA 8 bajtów, a nie czterech słów. Liczby transmitowanych...
https://obrazki.elektroda.pl/6225803800_... Witajcie moi drodzy Ostatnio zająłem się nieco głębiej kwestią obsługi ENC28J60 w Mikro C na PIC32MX w połączeniu z nową biblioteką Network Ethernet Library z Libstocka . Jest to biblioteka dostępna za darmo i wspiera różne mikrokontrolery, nie tylko PIC. Prędko zorientowałem się jednak,...
Korzystam z: Układ STM32 P103 (procesor STM32 F103 RBT6) Programator ARM-USB-OCD-H Środowisko CrossWorks v2.1.1 Problem: Pisząc własną obsługę USB wzorowałem się na przykładzie dla Keila (USB HID) i paczce z przykładowymi programami do USB ze strony Olimexa dla układu STM32 P103. Pierwszy (dla Keila) nie działał (operował na innych PINach itp.) ale...
Witam Fragment programu odtwarzający windowsowe 'tada' z tablicy tada_tab. Może pomoże. Kod bez biblioteki dlatego krótszy :D. [syntax=c] DAC->CR =DAC_CR_DMAEN2 | DAC_CR_EN1; DMA2_Channel3->CCR = DMA_CCR3_MINC | DMA_CCR3_DIR; // memory increment, dir from memory to dac DMA2_Channel3->CNDTR = TADA_NUM_ELEMENTS; // number of data to transfer DMA2_Channel3->CPAR...
Zlecę skonfigurowanie dwóch projektów dotyczących sterowania urządzeniem audio na STM32F4xx w IDE na Windows (oraz ich późniejsze modyfikacje w ramach kontynuacji współpracy). Te dwa projekty mają podobną konstrukcję, są napisane w C, największa część ich funkcjonalności dotyczy przesyłania pomiędzy sobą po UART i SPI kilku typów komunikatów synchronicznych...
1176 znaków/sek (...) I więcej nie będzie raczej ;/ a przypuszczam, że ograniczenie 19200 bodów narzuca moduł Bluetooth. Sytuacja zmienia się radykalnie przy prędkości 115200 bodów. Wtedy zdązyłabyś wysłąć USARTEM te 500 pomiarów na sekundę. Uważam, że ograniczeniem nie jest ani przetwornik, ani timer. Po prostu USART przy takiej szybkości nie wyrabia...
Witam od dwóch dni walczę z bibliotekami Fatfs, i mam niezidentyfikowany błąd, wykończyły mi się pomysły. Sprawa wygląda tak posiłkuje się przykładami z książki STM32 w praktyce Autor: Krzysztof Paprocki. W zasadzie chce skompilować gotowy kod , (przykład R9 sd_fatfs) działam na układzie STM mini http://allegro.pl/zestaw-uruchomieniowy-...
Witam rozpoczynam przygodę z PIC32. Napotkałem na problem z inicjalizacją systemu (zegar, pll, wdt, etc.). Może ktoś mi wyjaśnić jaka jest idea sekcji PRAGMA? Dlaczego tak? Czy trzeba osobno konfigurować drzewo zegarowe dla poszczególnych peryferiów, np. GPIO? Jakie rejestry są przez to konfigurowane i na jakim etapie pracy CPU - fuse bity, specjalny...
Witam, Jestem w trakcie realizacji projektu, w którym mam konieczność sterowania trzech silników krokowych. W tym celu stworzyłem sterowniki w oparciu o dostępne układy scalone. Prędkość silników jest sterowana za pomocą sygnału prostokątnego. Do sterowania układem wykorzystuję mikrokontroler stm32 w postaci płytki startowej Discovery. Program został...
Błędem jest korzystanie z ogłupiającej biblioteki i oczekiwanie że wszystko będzie super szybko (i w ogóle) działać. Myślałem że są na tyle ładnie napisane, że będzie szybko działać:) 120MHz to prędkość działania rdzenia procesora, ale nijak ma się do prędkości ustawiania stanu na zewnętrznym pinie. Ja nie oczekiwałem że tam uzyskam częstotliwości...
Może zacznę od opisu konfiguracji. Mam czujnik TSOP1736 podłączony do zasilania 5V, zaś jego wyjście do wejścia P0.16 mikrokontrolera LPC2148. Pozostałe połączenia (zasilanie, JTAG itp.) są OK, gdyż jest to zestaw ewaluacyjny Propoxu - EVBlpc213x\4x. Napisałem sobie bibliotekę do odbioru kodu RC5. Posiłkowałem się tą #include "lpc214x.h" #include...
Cześć, Ponieważ pojawiła się prośba o możliwość udostępnienia uproszczonej wersji na inny uC to przedstawię krótką instrukcję jak dostosować projekt do potrzeb. Generalnie w obecnej wersji obsługiwane są dwie rodziny procesorów czyli STM32F4xx i STM32H7xx - prawdopodobnie nie powinno być większych problemów z innymi podobnymi układami STM natomiast...
Te 32 bity to w małych projektach wygoda, w dużych - konieczność. Głupia średnia krocząca o głębokości 16 przy 12bit próbkach wymaga akumulatora 16bit. Szybka zamiana wartości z ADC na mV (bez dziwnego dzielenia i floatów) wymaga już więcej (dla Vref=3300 masz (3300*adc_val)>>adc_bits, wykonanie mnożenia wymaga juz 24 bitów). Łatwo się przyzwyczaja...
Witam Od niedawna bawię się uC STM32 i krok po kroku próbuję nauczyć się ich obsługi. Słowem wstępu: Mam płytkę ZL31ARM, pewne doświadczenie z programowaniem w C/C++ i zupełny brak doświadczenia z mikrokontrolerami. Mam już za sobą mruganie diodami i proste pętle opóźniające; obecnie chcę nauczyć się obsługi przerwać przy wykorzystaniu EXTI i IO. Korzystam...
Wiesz co ja dopiero zaczynam z programowaniem stm ale jedna sprawa rzuciła mnie się w oczy. twoja funkcja jest prawie funkcją z biblioteki której definicja i rozwinięcie znajduje się w pliku core_cm4.h [syntax=c] __STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) { if ((ticks - 1) > SysTick_LOAD_RELOAD_Msk) return (1); /* Reload value impossible...
Cześć, Na inżyniera robię robota kroczącego na 12 serwomechanizmach, 4 nogi, taki pająk. Aby to ładnie zakodować chcę zrobić klasę serwo, klasę noga, klasę robot z odpowiednimi metodami aby kod był przejrzysty i jasny. Problem jest następujący: Klasa serwo ogółem działa, kompiluje się idealnie, aczkolwiek przy próbie użycia jakiejkolwiek zmiennej procek...
Witam, Chcę dokonać bardzo dokładnego pomiaru czasu trwania impulsu, podawanego na PA11. Wykorzystuję stm32f103vbt6. Chcę aby zostało wygenerowane przerwanie (TRIGGER) po pojawieniu się impulsu na pinie PA11, po którym to timer TIM1 na kanale CH4 rozpoczyna zliczanie od zera. Po zaniku sygnału na PA11 muszę odczytać wartość do której zdążył doliczyć...
Witam, czy spotkał się ktoś z Was może z taką sytuacją, żeby uruchomiony zegar sterwonika FSMC uniemożliwiał generację sygnału start z i2c? Transmisja jest możliwa dopiero po jego wyąłczeniu, co może nie jest strasznie uciążliwe, ale nieprzyjemne i przede wszystkim nie wiem czemu tak jest... kod (pomieszany, ale po woli sie przesiadam z biblioteki na...
dzięki za zainteresowanie ale nie mam już pomysłu jak inaczej ustawić te piny. zaraz po ustawieniu pll i APB1/APB2 (tylko tu korzystam z biblioteki ST) ustawiam porty tak: void[b] HW_Init_GPIO[/b](void) { GPIO_InitTypeDef IO; RCC->APB2ENR |= (RCC_APB2ENR_IOPAEN | RCC_APB2ENR_IOPBEN | RCC_APB2ENR_AFIOEN); /***...
Witam, mam problem z odczytem więcej niż jednego kanału ADC. Dla jednego kanału miałem następujący (działający) kod (z wyzwalaniem przez TIM3). [syntax=c]void adc_init(void) { RCC->APB2ENR |= RCC_APB2ENR_IOPAEN | RCC_APB2ENR_IOPCEN | RCC_APB2ENR_AFIOEN | RCC_APB2ENR_ADC1EN; RCC->APB1ENR |= RCC_APB1ENR_TIM3EN; GPIO_CONF(GPIOA, 0,GPIO_MODE_INPUT, GPIO_CNF_INPUT_ANALOG);...
Bardzo dziękuję za informacje. Posiedziałem trochę wczoraj w nocy i: moduły DMA pamiętają adresy i pozostałe ustawienia. Po zakończeniu transferu wszystko jest przywracane w rejestrach. Jeżeli coś jest stałe, to nie trzeba tego za każdym razem ładować do rejestrów (jak w programach 2 i 3); wystarczy tylko ustawić bit DMA_CCR1_EN. Podpucha :) Rejestr...
Mam problem z najnowszą biblioteką FatFs. Wszystko działa idealnie na SPI1, a na SPI2 nie chce chodzić. Może ktoś z doświadczonych kolegów zerknie na konfigurację. Przy ustawieniu SPI_CH na 1 wszystko śmiga jak należy, przy 2 tylko rozpoznaje, że karta jest włożona lub wyjęta. Przyglądam się temu i nie widzę błędu. Co tu jest nie tak? [syntax=c] #define...
https://obrazki.elektroda.pl/9151185000_... Autor poniższego zestawienia jest inżynierem i konsultantem wsparcia dla systemów wbudowanych. W swojej karierze poznał on szereg różnych architektur mikrokontrolerów, różniących się wydajnością, wyborem peryferii, poborem zasilania etc. Wybór odpowiedniego układu stanowi zawsze o sukcesie...
https://obrazki.elektroda.pl/2553827400_... Cześć, pod tą niecodzienną nazwą tematu prezentuję projekt małego, automatycznego odtwarzacza muzyki do umilania posiedzeń na toalecie. Oczywiście to jedno zastosowanie, w innych sytuacjach pewnie też może się przydać ;) Głównym założeniem była niewielka złożoność, banalny interfejs, bezobsługowość...
http://obrazki.elektroda.pl/3796073600_1... I Opis ogólny urządzenia: Chciałbym przedstawić mój projekt bazujący na mikrokontrolerze STM32 dokładnie na modelu STM32F11RET6 http://www.st.com/content/st_com/en/prod... Jest to sterownik dla urządzenia...
stm32 konfiguracja biblioteka stm32 biblioteka biblioteka stm32
radio elizabeth schemat pionowy ustawi akumulator benzyna oleju napędowego
hulajnoga xiaomi odzyskiwanie usuniętych plików
Bruzdownica Parkside z Lidla nie włącza się - przyczyny i rozwiązania ASUS R751J – samoczynne resetowanie, przegrzewanie, zasilanie, RAM, BIOS, diagnostyka