Funkcja _W_ mainie? Od kiedy w C funkcje daje się wewnątrz innych funkcji? Pomijam aspekt semantycznej poprawności, chodzi mi tylko faktycznej użyteczności takiej konstrukcji. Taka funkcja musi być "gdzieś" - jest to generalnie całkowicie nieistotne w którym pliku i w którym jego miejscu ta funkcja będzie. Co do funkcji, to zostanie ona wywołana za...
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...
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...
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...
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...
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ć....
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ą...
No a zdradź mi tajemnice dlaczego to mają być przerwania a nie callback-i. Nigdy nie pisałem funkcji z callback-iem, nie miałem jeszcze takiej potrzeby. Tak ogólnie chodzi o to by stworzyć licznik 50Hz, zmienną, którą będę inkrementował, i stworzyć event, który co 50 przerwań (tj 1Hz) wywoła mi callback? Jeżeli chcesz funkcje A wolac co każde przerwanie...
Ile razy kolego mam ci pisać o przykładach zawartych w bibliotece? Z każdą "pierdołą" będziesz pisał nowy temat?
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...
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...
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...
(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...
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...
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 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...
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,...
Zmieniłem na kanał 2 DACa, żeby sprawdzić, ale bez zmian... Wersja "bez bibliotek" dla DAC_Output2: [syntax=C] #include "stm32f10x.h" void RCC_Config(void); void GPIO_Config(void); void NVIC_Config(void); uint16_t Sine12bit[32] = { 2047, 2447, 2831, 3185, 3498, 3750, 3939, 4056, 4095, 4056, 3939, 3750, 3495, 3185, 2831, 2447, 2047, 1647, 1263, 909,...
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...
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...
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łą...
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...
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...
Tak, biblioteka jest mojego autorstwa. Parametry: Obsługa DPV0 Obsługa DPV1 Prędkość transmisji 9600-1,5M Zasoby procesora: 1 timer, 1 uart Sposób wywołania: funkcja inicjująca (inicjacja pamięci, inicjacja protokołu) -> zwraca - adresy obszaru pamięci do wymiany danych z PLC. 1. Wejścia 2. Wyjścia 3. Diagnostyka Cała obsługa protokołu jest niedostępna...
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...
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...
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...
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, 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...
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...
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...
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); /***...
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...
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...
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);...
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ć...
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...
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...
W main.c czarów nie ma , bo stworzyłem nowy projekt golasa na potrzebę uproszczenia szukania problemu. Nie jestem programistą ani elektronikiem ,a do sprawy podchodzę hobbistycznie jako początkujący. Korzystam z System Workbenach for stm32 + Stm32CubeMX z bibliotekami HAL. Cube szykuje wszystko po czym ja tylko dodaję funkcję HAL_SYSTICK_Callback. plik...
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...
Witam! Mam problem z fatfs 0.09b (najnowsza; wersja 0.07 też nie działa) pod stm32f103vet6. Komunikacja SPI. Maksymalny prescaler SPI do debug'u. (Na każdej prędkości to samo). Disk timer proc na SysTick'u (działa). Karta formatowana na różne jednostki alokacji, FAT, FAT32 zawsze to samo. Nie korzystam z LFN. Strona kodowa 852, 125x, 1 (ANSI) bez znaczenia....
Ok, coś jest nie tak. Przede wszystkim systick działa na trybie optymalizacji O1 i O2. Bez zmiany kodu. Na O0 od razu jest hard fault. Ale nie występuje na żadnej linijce kodu. Nie wchodzi do przerwania i wywala od razu błąd. EDIT: Działa w momencie kiedy wywaliłem inicjalizacje: N VIC_Init(&NVIC_InitStructure); A w to miejsce dałem: NVIC->ISER...
Witam, mam problem z programem obsługi przerwania od Timera2. Używam biblioteki #include <libopenstm32/rcc.h> #include <libopenstm32/flash.h> #include <libopenstm32/gpio.h> #include <libopenstm32/usart.h> #include <libopenstm32/timer.h> #include <libopenstm32/nvic.h> void clock_setup(void) { rcc_osc_on(HSI);...
stm32 konfiguracja biblioteka stm32 biblioteka biblioteka stm32
bosch sgv45 podgląd układ technik elektryk
efekt gitarowe chorus efekt gitarowe chorus
Mikrofon nie działa w SteelSeries Arctis 5 po wymianie kabla Mikrofon nie działa w SteelSeries Arctis 5 po wymianie kabla