Nie mam zbyt wiele do zgłoszenia, ale jest tak, że P21 musi być podciągnięty wysoko, aby dziennik debugowania mógł wyjść HLK-M50 dostarczony firmware, P21 wysoki, 921600 TX0/IO27 https://obrazki.elektroda.pl/5484529300_... Sflashowałem uarthut_V9_20231014_debugUart1.bin z ftp Hi-Flying HF-LPX30_Compile\tools na 18001000 https://obrazki.elektroda.pl/6317433400_...
Jeżeli nie potrzebujesz dokładnych opóźnień a takich Π•oko, to IMHO delay na pętlach w zupełności wystarczy. Timerów w stm32 niby wiele...ale prawie zawsze, w większych aplikacjach znajdzie się szczytniejsze dla nich zastosowanie. Z drugiej strony stosowanie pętli opóźniających na ARM-ach trąci profanacją :) Jeżeli nie interesuje Cie korzystanie...
Stos dla przerwań ustawiłeś? 4\/3!!
Mógłby ktoś rzucić okien na mój kod funkcji delay. Siedzę nad tym od paru godzin i nie mogę znaleźć błędu. Timer jest 2 razy szybszy nić powinien być. Używam TIM6, skonfigurowanego do ustawiania flagi przerwania przy overflow, ale nie obsługuję tego w przerwaniu tylko w funkcji delay sprawdzam, kiedy flaga zostanie ustawiona. Do prescalera wstawiam...
Dlaczego nie może być po prostu tak: W pętli głównej sprawdzasz polling-iem czy przycisk jest na zero (bez żadnych przerwań), jeśli jest na zero, to wtedy robisz disable Timera, który Ci steruje tym miganiem diody, ustawiasz bit diody na zero - nie świeci. Jeśli jest na jeden to włączasz timer ponownie i tyle. (bo jeśli w przerwaniu od timera masz toogle...
Całość kodu jest dość spora:) Czekam na flagę na pewno, ale nawet jeżeli nie, to zauważ że pomiędzy wywolaniami odczytu adc są spore odcinki czasu. Ano, zazwyczaj w takich sytuacjach używam volatile, tyle że wtym przypadku optymalizacja jest wyłączona. Program w zasadzie skończony, a zajmuje 20kB ze 128, więc optymalizacji nie właczałem. Dodano po 4...
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, mam problem z komunikacją po 1-Wire, termometr DS18S20 odpowiada mi na sygnał reset jednak nie wysyła danych, odczytuje cały czas z magistrali 0xFF. - Termometr działa na 100% - mam inną płytkę z ATmegą 32 w której go sprawdzam - i tam działa wszystko bez problemowo, Oto kluczowe fragmenty mojego kodu: [syntax=cpp] #define SYS_CLK 8000000 //...
Jakim cudem zmiany kodu wykonywanego w pętli głównej mogą mieć wpływ na działanie tego co jest przed nią ?! Może jest coś wspólnego np. funkcja delay_ms() jest także wykorzystywana przed pętlą główną? ;) A jak wygląda delay_ms(): zwykła pętla for czy użyłeś timera?
Witam. Mam pewien problem. Mianowicie - napisałem program który generuje sygnał 100kHz o wypełnieniu 50%. Kod wygląda tak : https://obrazki.elektroda.pl/9658314300_... Czyli po prostu mniejsze wypełnienie. Z moich wyliczeń wynika, że stan wysoki musi trwać 344 cykli zegara, a stan niski 18. Czy jest jakiś sposób aby timer wyzwalał przerwania...
Jakiego typu jest absolutnie absurdalny i perwersyjnie wypaczony pomysł, aby mając OSa robić takie delay'e w wątkach ??? Również o podobną perwersję zakrawa wykonywanie przerwania timera co mikrosekundę tylko po to, zeby zmniejszać tam jakąś zmienną. Wez timer, skonfiguruj go jako one-shot, skonfiguruj mu takt na 1us, do ARR wpisz chciany czas w us,...
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...
Po kilku godzinach program odpaliłem ..... podświetlanie się załącza dopiero po naciśnięciu kilka razy klawisza, monitor pokazuje start i numery naciśnietych klawiszy i to nie za każdym naciśnięciem. nie wiem jak "zatrzymać" dany ekran menu żeby zrealizować inna funkcje np; zmiana stanu wyjścia /* * sterownik który wykończy mnie i innych ..............
We wcześniejszym wątku - [url=http://www.elektroda.pl/rtvforum/to... Co na początek ? zamieściłem program napisany (wsad do LPCXpresso) w asemblerze na twój układ który korzystał z tego timera i dokładnie był każdy fragment kodu opisany - co robi i jaki ma cel i był opis rejestr po rejestrze - opis tych fragmentów...
Na pierwszy rzut oka w Twoim kodzie, jak i u autora, nie ma żadnej manipulacji trybem wyjścia portu - pinu. Po wrzuceniu tego na STM32F722RE okazuje się, że nie ma to znaczenia. Przy ustawieniu trybu pinu na wyjście z open drain, odczytanie rejestru IDR daje poprawne działanie, bez zmiany trybu na wejście. Sprawdziłem to na porcie A i pinie PA0. Nie...
Nie znam się na stm32, ale może uC nie jest taktowany częstotliwością 72 MHz, być może błędna inicjalizacja PLL. Nie uczy się tworzyć delay'ów na konstrukcjach for ponieważ nie wiadomo jaki kod asemblera wygeneruje kompilator. Opóźnienia tworzy się przy pomocy timera.
Proszę o odpowiedź, ponieważ nie mam już pomysłów na możliwość rozwiązania. Pełno tego typu rozwiązań na elektrodzie. Odradzam na początku korzystania z przygłupawych funkcji typu delay_xx(). Marnujesz tylko cykle na niepotrzebne czekanie, milisekundy to wieczność dla tego STM32, szczególnie przy jego maksymalnym dostępnym zegarze. Mały hint: timer,...
Dzięki wielkie za pierwszą podpowiedź jutro sprawdzę sugestię, ale priorytety w NVIC rozumiem : Hmmmmmm... czyli w pierwszej grupie TIM1 ma preemption=0 i sub=2 natomiast systick jest w 0 grupie i ma preemption == sub == 0 czyli wg mnie powinien wywłaszczać. P.S: W timerze delay jest mi potrzebny bo wysyłam dane po rs485 i muszę odczekać czas ze względu...
Nie rozumiem konfiguracji timera w Twoim delay'u i dlaczego prescaler jest ustawiany co wywołanie, także chyba odpuszczę. Poza tym w timerach jestem zielony ;) Natomiast znalazłem coś takiego, prostego na google, zmodyfikowałem i działa: [syntax=c] // Oryginalny kod: http://www.stm32circle.com/forum/viewtop... #define SYS_CLK 24000000 /*...
Z czym może to być związane ? Z tym, że jedna funkcję masz skompilowaną w swoim projekcie a drugiej nie masz. Nie za bardzo rozumiem dlaczego nie jest skompilowana. Fragment kodu: [syntax=c]#include "stm32f10x_lib.h" void delay_ms(); void RCC_Config(); void GPIO_Config(); volatile u32 timer_ms = 0; int main(void) { RCC_Config(); GPIO_Config(); SysTick_Config(72000000/1000);...
Z detektora zera sieci dostaje sygnał jak na obrazku niżej. http://obrazki.elektroda.pl/1251410700_1... Kwarc 8MHz, po PLL 24MHz. No i mam między innymi [syntax=c]NVIC_SetPriorityGrouping(3); NVIC_SetPriority(ADC1_2_IRQn, NVIC_EncodePriority(3, 2, 0)); NVIC_SetPriority(EXTI9_5_IRQn, NVIC_EncodePriority(3, 3, 0)); NVIC_SetPriority(TIM4_IRQn,...
Niech samplowaniem zajmie się lepiej przerwanie od timera i tak jak wspomniał Albert z odpowiednią częstotliwością. Próbki z jaką częstotliwością przygotowane ?
Witam, Jako jeszcze niedoświadczony w programowaniu i całym tym mikroprocesorowym świecie chciałbym rozpocząć dyskusję z której mam nadzieję uda mi się coś wyciągnąć, czegoś się dowiedzieć. Mianowicie pierwsza sprawa to przeklęte delay'e. Czasami trzeba przeczekać na coś ileś tam czasu ale po co marnować go w delay? Jakie mamy alternatywy i jak z nich...
Czy się w to nie bawić i zrobić na delay_us? Ale czemu nas pytasz? Jeśli Twój kod ma robić cokolwiek poza kręceniem się w delayach raczej nie powinien ich używać (zbyt wiele), no nie? (; Mam dwa wolne UART ale są zarezerwowane na Wi-Fi i GSM, przy czym małe szanse, że oba te moduły będą zamontowane równocześnie, jeśli już to jeden z nich. Powiedzieć...
Witam. Wygenerowałem kod w STM32CubeIDE. Problem polega na tym, że gdy debuguje go, to mogę swobodnie przechodzić krok po kroku do kolejnych instrukcji programu. Po wyłączeniu debugowania w celu pozwolenia mikrokontrolerowi działać swobodnie, ten nie chce działać. Znalazłem tako oto radę dotyczącą SysTicka: "You have to be very carefull when using HAL_Delay(),...
Witam, przerabiając poradnik Szczerwunka nie mogę sobie poradzić z obsługą przerwania zewnętrznego, praca jako zwykły licznik działa bez problemu. Program nie reaguję na sygnały na PA8, niżej w programie mam także zakomentowany kod z noty aplikacyjnej, który powinien działać na wejściu CH2 TIM1 czyli PA9. Jednak ani pierwsza ani druga obsługa przerwania...
Cześć. Tak jak napisałem w nazwie tematu posiadam ARM'a STM32F072RB. Podłączyłem kolejno kolumny, później wiersze klawiatury matrycowej 4x3 do portów GPIOC1-GPIOC7. Chcę odczytywać wciskane klawisze na klawiaturze i napisałem jak na razie taki kod: [syntax=c] #include "stm32f0xx.h" #include <stdio.h> volatile uint32_t timer_ms = 0x0; void delay(int...
Witam. Chcę za pomocą płytki STM32F334 DISCO sterować wyświetlaczem 16x2 przez interface 4-bitowy. Połączenie wygląda tak : VSS - GND VDD - 5V VO - NC RS - PB13 RW - GND E - PB15 D4 ... D7 - PA12 ... PA15 A - przez rezystor 220 ohm do 5V K - GND Kod napisany w "System Workbench for STM32" zgodnie z datasheet'em sterownika wyświetlacza. https://obrazki.elektroda.pl/3189253300_...
Hej, Zrobiłem podejście z timerem, polegające na tym, że w przerwaniu DMA TC, uruchamiałem timer, który po chwili miał zrobić latcha. [syntax=c] // DMA1 channel 3 transfer completed void DMA1_Channel3_IRQHandler(void) { //* Clear the DMA tranfser complete interrupt bit DMA_IT_TC3*/ DMA1->IFCR = DMA1_IT_TC3; // start timer to generate delayed latch TIM_SetCompare1(TIM1,...
Witam, mam problem z termometrem DS18B20 gdyż nie chce mi odpowiadać na mój wysłany bit. Chodzi dokładnie o pierwszą funkcję sprawdzającą układ czyli o RESET. Z użyciem warunków presence zawsze wynosi 1, a aby działał poprawnie powinien posiadać wynik 2. Mój kod: [syntax=cpp] uint8_t Reset(void) { uint16_t presence=0; WireOff(); WZDelay::delay_us(480);...
Witam, W celu zrealizowania komunikacji z DS18S20 skorzystałem z następujących kodów dostępnych na forum: Kod od freddiego do konfiguracji GPIO: [syntax=c] #define GPIO_CRx_MODE_CNF_mask 0xf //4 bity - 2 bity na mode i 2 bity na configurację /*-----------------MODE-----------------... #define GPIO_CRx_MODE_IN_value 0x0 #define GPIO_CRx_MODE_OUT_10M_value...
Co do samego programu to co racja to racja. Można było wykorzystać licznik, który dałby większą dokładność, ale to nie było istotą problemu. Koledze chodziło o skorzystanie z timera w celu zmniejszenia poboru prądu przez to twoje urządzenie. Mikrokontroler powinien cały czas spać, bo nic nie robi, do tego powinien chodzić na jakimś niskim zegarze....
Witam Zbudowałem tester wysokiego napięcia który został zamieszczony na tej stronie... https://www.printables.com/pl/model/3471... Układ działa tzn wyświetla jednak na wyjściu B0 nie mam sygnału PWM. Sprawdzane na trzech różnych STM32...
Reasumując: 1. Włączasz zasilanie = nie działa 2. Wykonujesz reset STM'a = działa ? Mógłbyś jeszcze "main'a" pokazać, albo najlepiej odchudź kod do obsługi tylko SPI i wrzuć cały projekt. dokładnie... Wydaje mi sie że SPI po uruchomieniu mikrokontrolera nic nie wysyła, dopiero po resecie. Nie mam oscyloskopu aby to potwierdzić. int main(void)...
Witam, muszę zaimplementować dekoder protokołu RC-5 z pilotów na podczerwień. Zamiast pisać wszystko od początku, postanowiłem skorzystać z gotowego kodu przeznaczonego dla jednej z płytek ewaluacyjnych STM'a - oto paczka z kodem biblioteki i przykładowym projektem http://www.st.com/internet/com/SOFTWARE_...
Chciałbym podzielić się swoim tworem DS18B20 + STM32F4 Discovery po niecałych 2 miesiącach obcowania z poradnikiem. Zaczynając od zera jeśli chodzi o znajomość mikrokontrolerów z podstawową znajomością C. [syntax=c]#include "stm32f407xx.h" void delay(uint16_t time) { TIM2->CNT = 1; while (TIM2->CNT<= time); } static void reset (void) { GPIOB->MODER...
Ogólnie rzecz biorąc udało mi się skonfigurować buttona tak, żeby działał na przerwaniach i timerze. Ale coś zaś musiałem fundamentalnego skopać i wywala HardFault. Tym razem nie mogę uruchomić SysTicka. [syntax=c]int main(void) { volatile uint32_t count, count_max = 1000000; system_init(); pll_start(CRYSTAL, FREQUENCY); SysTick_CLKSourceConfig(SysTick_CLKSourc...
Witam Wysyłam przykładowe ramki z terminala do STM32 przez driver MAX3485 i cały czas sypie mi błędami w odpowiedziach. Nie mam też pewności czy to co wysyłam z terminala do STM32 dociera bez błędów. Poniżej fragment kodu oraz zrzut ekranu. Powinienem otrzymać to co wysyłam. Czarny kolor to odebrane ramki. Proszę o pomoc http://obrazki.elektroda.pl/7456669500_1...
Zapomniałeś tylko dopisać, że ustawiłeś samodzielnie bit UDIS w rejestrze CR1 timera, który właśnie coś takiego powoduje. Nie wiadomo jednak po co go ustawiłeś. Nie potwierdzam, nie zaprzeczam ale faktem jest, że obecnie nie ustawiam bitu UIDS w rejestrze CR1 i bez ustawienia bitu UG w rejestrze EGR preskaler nie działa poprawnie. Poniżej kod jakim...
Witam Mam problem z poprawnym działaniem SPI1 , zamieszczam kod i zrzuty z analizatora , niżej napiszę co nie gra . http://obrazki.elektroda.pl/6540904700_1... Zdjęcie sekwencji http://obrazki.elektroda.pl/6996450100_1... Przez spi chce uruchomić 74hc595 po małej przeróbce kodu działa ale , jak widać zawiesza się , był...
Poczytałem manuala do JTAga i spróbowałem wgrać kod przez OCD. Wywołuje go z parametrami: -f scripts/interface/ftdi/jtag-lock-pick_ti... -f target/stm32f1x.cfg -c "adapter_khz 1000; reset_config trst_and_srst; init; reset init; flash write_image erase C:/ARM/project_eclipse/stm32_timer/out/s... reset run; shutdown;" Otrzymuje błędy:...
Przyczepilem sie optymalizacji itp. opcji kompilatora ale w miedzyczasie wyszlo ze najwyrazniej rdzen zrzuca na stos rejestry r0-r3 i klika innych, wiec problem nie lezy tutaj. Wiem ze gdzies popelnilem blad, nie mam doswiadczenia z ARM-ami. Oczyszcze i zminimalizuje kod aby bylo absolutne minimum powodujace problemy i wrzuce. Systick szczesliwie miga...
Witam, mam problem z komunikacją z czujnikiem ciśnienia HP02S. Szukałem swojego problemu na forum, ale nie znalazłem. Udało mi się bez problemu odczytać dane z EEPROMu. Udało mi się też skomunikować z czujnikiem, ale do czasu. Sekwencja odczytu ciśnienia wygląda następująco (pseudokod): [syntax=c] i2c_start(); i2c_write(0xEE); i2c_write(0xFF); i2c_write(0xF0);...
Witam! Chciałem sobie zrobić prosty Counter zliczający ilość wciśnięć przycisku podpiętego do wejścia PA0. Skorzystałem z przykładu który zamieszczam poniżej. Niestety mój prosty Counter nie zlicza naciśnięć i zmienna cnt cały czas wynosi 0. Mam takie podejrzenie że przycisk nie jest programowo połączony z TIM2 tzn w funkcja TIM_TIxExternalClockConfig(TIM2,...
Dzień Dobry Udało mi się skonfigurować timer i wszystko działa poprawnie tylko mam problem ze świadomym ustawieniem czasu trwania okresu. Wynika to z faktu że nie jest dla mnie do końca jasne: 1. Jaka częstotliwość jest dzielona przez preskaler 2. Jak w rejestrze: [syntax=c] TIM2->ARR [/syntax] ustawić czas trwania okresu świadomie. Załączę mój program:...
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-...
Jest to proste korzystasz z przerwań jakie generuje timer0 podobnie jak to opisał kolega z innego tematu tego fora w bascom napisał '************* Konfiguracja uC ***************** '***************************************... $regfile = "attiny2313.dat" $crystal = 16000000 Config Portb = &B11111111 : Portb = &B11111111 Config Portd = &B11111111...
To jest fragment który sam dopisałem. W cubemx ustawiłem 2 timer na generowanie pwm na kanale 1,2 i 3, prescaler ustawiony na 0, period 89, do tego dma które miało współpracować z kanałem pierwszym. Taktowanie ustawiłem na 72mhz. Początkowo myślałem że problemy sprawia przerwanie od dma, lecz po usunięciu kodu włączającego dma sytuacja się nie poprawia....
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...
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...
delay timer timer delay stm32 delay
gigabyte motherboard nvidia wymiana grzałki podczerwień sterowanie
płukanka silnika płukanka silnika
Wpływ uszkodzonego czujnika wału korbowego na kąt wtrysku w VW LT 2.5 TDI Ekspres Philips: Kod 5 po odpowietrzeniu - co robić?