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...
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.
Wygląda na to że sie uszkodził port E na innych wszystko działa. Stm32 to delikatne procesory, trzeba uważać z prądami na wejściach wyjściach. Atmele to czołgi przy nich. Temat zamykam
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...
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 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...
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...
Proszę mnie nie odsyłać do dokumentacji, bo siedzę z nią już kilka godzin. Normalnie mi wstyd, ale nie potrafię uruchomić timera jako licznika zewnętrznych impulsów - w najprostszej konfiguracji. Nie wiem np. jak ustawić pin GPIO - jako AF dla np. TIM1_CH1??? Na razie mam coś takiego - pewnie powrzucałem masę zbędnych rzeczy a nie ma czegoś podstawowego,...
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?
Witam. Dla ćwiczebności napisałem sobie funkcję zwracającą ilość cykli zegara w celu pomiaru długości wykonywania funkcji itp. Aby to osiągnąć odczytuję "PENDSTSET" oraz stan licznika SysTick. Jednak pomiędzy tymi dwoma odczytami upływa trochę czasu i wartość licznika jestem w stanie skorygować znając czas jaki upłynął miedzy tymi dwoma instrukcjami...
Dzień dobry, W projekcie wykorzystuję silnik krokowy z zabudowanym na wale silnika enkoderem inkrementalnym różnicowym o rozdzielczości 16 384 imp/obr. Wykorzystuję płytkę NUCLEO-64, STM32L476RG. Ustawienia Timerów: https://obrazki.elektroda.pl/7295044200_... https://obrazki.elektroda.pl/6348434400_... Do timera3 mam...
Witam, próbuję skonfigurować licznik TIM2 w STM32L152RE, aby zliczał impulsy z pinu w trybie alternatywnym AF1 na PA0 i generował przerwanie po zliczeniu 10. Stan wysoki na linii w przerwaniu od SysTick. Niestety, TIM2 po zliczeniu impulsów nie generuje przerwania i nie ma żadnej reakcji od niego. Czy ktoś spotkał się z takim problemem? Funkcje do obsługi...
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...
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};)...
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, 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, 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...
No nie potrafię wyzerować licznika RTC_CNT... Nie wiem dlaczego i nic nie moge znaleźć w dokumentacji, poza tym że musi być RTOFF =1. Kiedy daję while - wisi w nieskończoność. Dodano po 2 Bo chyba ma być RTC->CRL & 0x20 Dodano po 1 No nie zeruje... Dodano po 6 A, jeszcze jest CNF bit.. Dodano po 12 No nie wiem o co chodzi, tylko taka konfiguracja...
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...
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...
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
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...
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...
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ń...
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...
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.
Witam, Ostatnio postanowiłem zająć się licznikami i przerwaniami. To co chcę osiągnąć, to każdorazowe przerwanie po przepełnieniu licznika TIM1. Konfiguracja licznika: [syntax=c] //zliczenie w gore TIM1->CR1 &= ~(TIM_CR1_DIR); //aktualizacja zrodla przerwania (tylko overflow/underflow) TIM1->CR1 |= TIM_CR1_URS; //generowane przerwanie //TIM1->CR1 &=...
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...
-> BlueDraco Ja to rozwiązałem jako prostą funkcję w postaci FSM, z static 'krokiem' i zmiennymi pomoczniczymi, typu 2 liczniki i CRC... Możesz zaprezentować to rozwiązanie? Ilość przyjętej wiedzy jest tak duża, że powoli się gubię w tym...
Nie znam nowych avrów, ten kod przypomina mi STM32, natomiast w starych była globalna flaga uruchomienia przerwań, sprawdzałeś czy tutaj takiej nie potrzeba? I przez analogię do STM, czy po zmianach częstotliwości zegara, nie trzeba poczekać ileś cykli aż się ustabilizuje? Jak tam prosty przykład? No i przeniósłbym zliczanie minut do przerwania, u siebie...
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...
Co do ustawiania w tryb capture to chyba nie ustawiam. Funkcja TIM_SetCompare1 ustawia po prostu rejestr CCR1 a wg manuala "CCR1[15:0]: Capture/Compare 1 value If channel CC1 is configured as output: CCR1 is the value to be loaded in the actual capture/compare 1 register (preload value). It is loaded permanently if the preload feature is not selected...
Witam, Mam problem z którym już chwilę się borykam. Do STMa mam podłączony czujnik BAR180 z którym już się komunikuje po I2C. Dodatkowo skonfigurowałem ADC w trybie pomiaru jednokrotnego wyzwalanego przez Timer1 co 500µs. Dane z ADC chcę przerzucić do bufora przez DMA. Utworzyłem bufor jako tablicę o 256 pozycjach, ponieważ tyle chciałbym pomiarów....
(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...
Czyli w poniższym artykule są błędy? [url=link]https://forbot.pl/blog/kurs-st... Jest tam wzór: INT_FREQ = TIM_CLK/(ARR+1)(PSC+1)(CKD+1) Tak jest TIM_CLOCKDIVISION_DIV w CubeMX zdefiniowany:[syntax=c]#define TIM_CLOCKDIVISION_DIV1 0x00000000U #define TIM_CLOCKDIVISION_DIV2 (TIM_CR1_CKD_0) #define TIM_CLOCKDIVISION_DIV4...
Zapytam tu o inną jeszcze sprawę, bo nie chcę dla tego drobiazgu zakładać nowego tematu. Muszę ustawić timeout ramki, jezeli po odpowiednim czasie odbiornik nie odpowie, to transmisja zostaje przerwana z flagą błędu. Chcę do tego użyć timera, np.TIM4. Uruchomiony bedzie w najprostszej konfiguracji zwykłego licznika, ładowanego przed rozpoczeciem transmisji....
Witam Zmagam się z akcelerometrem ADXL345 + STM32F103. Połączenie po SPI. Otrzymuję na wyjściu wartość przyśpieszenia w kodzie U2. Zapisana jest na 13 bitach, w dwóch rejestrach 8 bitowych. Po odebraniu najbardziej znaczące przesuwam << 8 i łączę z mniej znaczącymi. Problem polega na tym, że wciąż otrzymuję wartość dodatnią, mimo że na najbardziej...
Witam, próbuje sterować diodą RGB podłączoną do Nucleo l053r8. Konfiguracja portów została ustawiona tak jak i przerwania. Problem mam z ustawieniem pracy kanałów i wlaczeniem generowania sygnalu na wyjściu licznika. Czy poniższy kod wskazuje prace kanałów? niestety cały czas kompilator wywala mi błąd. TIM2->CCMR2, TIM_CCMR2_OC3M_PWM1 | TIM_CCMR2_OC3PE...
Witam Probuje zmienic satan pinu z okresem 1Mhz. Niestety maksymalnie co uda mi sie wyciagnac to 526kHz przy preskaler=1 okres=1. Jak moge szybciej przemiatac pinem? zegar rozbujany do 72Mhz , pin ustawiony na 50MHz. reszta ustawien : [syntax=c] TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; //Konfiguracja licznika TIM 1 //Ustawienia taktowania i trybu...
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...
Nie wiem w jaki sposób ten wzór mógłby cokolwiek zmieniać w kwestii zaokrągleń - wartość liczbowa USARTDIV odpowiada rzeczywistemu dzielnikowi pomnożonemu przez 16, przed całym wyrażeniem jest drugie "*16" więc całość pięknie się skraca i tyle... Jeśli ktoś chce zaokrąglać "prawidłowo" (a nie "w dół" jak to ma miejsce przy prostych obliczeniach na liczbach...
Przyłącze się do tematu- nie łatwiej wykorzystać przerwanie od przepełnienia timera? Ponizej przyklad realizacji 32 bitowego licznika dla enkodera: // Inicjalizacja timera void TimEncInit(void) { TIM_ITConfig(TIM2, TIM_IT_Update, DISABLE); TIM_EncoderInterfaceConfig(TIM2, TIM_EncoderMode_TI12,TIM_ICPolarity_Fall...
https://obrazki.elektroda.pl/8003230600_... Po umieszczeniu materiału o porównaniu częstotliwości Napiszcie co myślicie o takiej metodzie. Wróciliśmy do tematu https://obrazki.elektroda.pl/3296797900_... Wejście sygnału mierzonej częstotliwości podamy na TIM2 CH2 czyli PA1 na płytce oznaczone jako A1. Nie będziemy...
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...
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);//...
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...
Rejestr AFR odpowiada za wybór alternatywnej funkcji pinu, bo piny często mogą mieć wiele różnych alternatywnych funkcji - patrz post #17. Jak widać na zdjęciu dla PA8 alternatywna funkcja związana z licznikiem ma nr 1 (AF01). Z racji, że każdy pin potrzebuje aż 4 bitów do konfiguracji AF (16 różnych funkcji AF) to w jednym 32 bitowym rejestrze można...
Wydaje mi się, że najłatwiej będzie rozwiązać to w obsłudze przerwania jednego z timerów. I przychodzą mi do głowy dwie możliwości: 1. Zmienianie parametrów pracy timera po każdym "trybie" przebiegu jaki ma być wygenerowany na wyjściu. Tj. przeładowywanie liczby do jakiej licznik powinien odliczyć zanim wygeneruje przerwanie. 2. Ustawienie licznika...
Mam oto Evoluation Kit od Nordica z układem nRF51422. Po wykonaniu wszystkiego co jest opisane w guide (upload najpierw FW ze stosem, a potem konfiguracja adresów Keila). Niestety gdy wywołuję funkcję (projekt z example'a S310) sd_softdevice_enable(..) program nie przeskakuje te funkcji jednak powoduje ona zwiększenia licznika programu od 0 do adresu...
Witam Testowałem wczoraj moduł WIZ550io (spi) Max transmisję jaką uzyskałem w TCP to (wysłanie z modułu do PC) 730 Kbajtów/s (czyli nie całe 6Mbit ) czystych danych bez ramek IP. Moduł ma max 8 socketów TX i tyle samo RX , jeśli ktoś chce używać DNS i DHCP to zostanie tylko 6 wolnych. Nie ma się co łudzić przez SPI można obsłużyć (równocześnie) tylko...
Masz jeden licznik, którego zawartość jest porównywana z 2 rejestrami. Niezależnie od tego co masz ustawione w rejestrach porównujących, licznik wykonuje jeden cykl w jednostce czasu. W jaki sposób dla statycznych wartości rejestrów porównujących mógłbyś uzyskać różną częstotliwość, czyli wielokrotne porównanie na jednym kanale i tylko pojedyncze na...
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...
dea jest taka, że należy skonfigurować Timer1 na FastPWM z rejestrem ICR1 jako Top (czyli licznik będzie liczył do wartości tego rejestru). Należy tak dobrać preskaler i wartość ICR1 by licznik przekręcał się co 20ms a więc np. preskaler 1024 i ICR1 15625 (a raczej 15624 bo licznik liczy od zera). Przy tych ustawieniach otrzymujemy granulację 1,3 µs/tick,...
Funkcja delay ma posłużyć tylko do posprawdzania i zapoznania sie z środowiskiem wiec jest jaka jest (prymitywna). Nie jestem aż tak biegły w programowaniu wiec symulator pod avr przydawał mi się bardzo często. Tutaj mam debuger i chciałbym go używać ale bez jakiegoś licznika jego użyteczność dla mnie spada. Dziwi mnie tez ze ta funkcja tak prosta...
stm32 licznika konfiguracja stm32 stm32 konfiguracja
schemat nawiewu peugeot pralka polar wyczyścić filtr dmuchawa valeo
Pilot nie wyłącza telewizora - diagnostyka i rozwiązania Zamiana tranzystorów GT402 na GT404 w Spidola