Wykorzystując timer 16-bitowy oraz preskaler 65535 chciałbym wywołać przerwanie co 1 minute(59,6 sekundy) i w efekcie naprzemiennie zapalać i gasić diodę: [syntax=cpp] void Clock_init(void); void GPIO_init(void); void Tim1_init(void); int main(void) { Clock_init() ; GPIO_init(); Tim1_init(); while(1){;} } void Tim1_init(void) { TIM_TimeBaseInitTypeDef...
Witam, Napisałem program, w którym do odliczania czasu używam SysTick'a i przerwania od niego. Gdy skompiluję i zapiszę program do pamięci Flash, program ten działa jak należy i możliwe jest jego debugowanie. Jeśli skompiluję i wpiszę program do pamięci RAM, to program nie działa poprawnie, a debugować go można jedynie do momentu wystąpienia przerwania...
Cześć Próbuję połączyć enkoder absolutny Fanuca do STM32F373. Problemem jest dla mnie odbiór danych z enkodera, ze względu na to iż przesyła on dane szeregowo, asynchronicznie z prędkością 1 Mbps. Ramka zaczyna się od bitu startu, a następnie 76 bitów danych jednym ciągiem. Próbowałem użyć UART, ale bezskutecznie - UART wymaga co 8 lub 9 bitów bitu...
Witam. Właśnie próbuję napisać obsługę hd44780 ale mam problem że funckaj delay_ms nie odlicza odpowiednio czasu. Stm32 podłaczony do kwarcu 8 MHz i taktowane na 72Mhz. Proszę o wskazanie w czym jest problem, oczywiście dalej sam będę poszukiwał problemu. Pozdrawiam
Cześć! Korzystam z płytki Nucleo-STM32L476RG, do której podłączyłem sobie czujnik DS18B20. Chcąc go uruchomić potrzebuję opóźnienia rzędu 1us. Napisałem sobie funkcję "delay_us" niestety liczy ona dwukrotnie za szybko. MCU pracuję z częstotliwością 80MHz. Wykonałem test z użyciem SysTicka (zakomentowane linie kody w programie) i odliczanie 1 sekundy...
A może coś takiego (w załączniku)? I przykładowy programik mrugania dwiema diodami... [syntax=c] #include "stm32f10x_io.h" #define LED GPIOA__ODR void TIM1_UP_IRQHandler(void) { if (TIM__UIF(TIM1)) // przerwanie 'update'? { TIM__UIF(TIM1) = 0; // zerowanie flagi LED[0] = LED[1]; // zmiana stanu LED0 LED[1] = ~LED[1]; // zmiana stanu LED1 na przeciwny...
Po ponad tygodniowej przerwie STM32 znowu zagościł na moim biurku. Aktualnie walczę z Timerem, na szybko skonfigurowałem go tak aby odliczał do góry, teraz chciałbym aby było z niego wyzwalane przerwanie. Z tego co wyczytałem w przeróżnych manualach udsotępnianych przez STM trzeba to zrobić w rejestrze ISERx, pytanie tylko co podstawić za x i pod którym...
Witam, Chciałbym zapytać jaka jest zależność RTC i Systicka. O ile tak owa jest? - Kwarc 12Mhz (HSE_VALUE=12000000 , #define SYSCLK_FREQ_HSE HSE_VALUE) - Kody źródłowe poniżej - Keil - RTC zasilam z HSE (LSE nie trybi z przyczyn fizycznych) - STM32F103RBT6 - STMF4_Discovery jako debugger po SWD Problem: 1) A więc problem jest taki iż po wgraniu programu...
Jeżeli używasz HAL, to musisz też uruchomić LSE albo ręcznie przerobić kod na używanie LSI. HAL używa LSE do odliczania czasu przy korzystaniu z FatFs. Gdybyś pokazał jak skonfigurowałeś interfejsy, zakładka Configuration, to wtedy można powiedzieć coś więcej. Możesz też próbować okrężną drogą i poszukać w sieci materiałów z ubiegłorocznych warsztatów...
Witam, chcę zrobić urządzenie które będzie miało niski pobór prądu bo chcę, żeby było zasilane z baterii(prócz klawiatury i karty SD chcę podłączyć jeszcze mały wyświetlacz i transmiter RF). Chciałem na razie uruchomić to na bibliotekach HAL.. Dla próby mam Nucleo z uC STM32L452RE. Zdecydowałem się na niego, bo ma port SDIO, przez który chciałem podłączyć...
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...
Ok sprawa się nieco wyjaśniła. Mikroklocek nie idzie spać po użyciu WFE ale za to robi to po wywołaniu WFI. Ostatecznie mój kod, który wprowadza rdzeń w uśpienie wygląda tak jak poniżej i w tej formie to działa [syntax=c] /** * Entering STOP2 power save mode. In this mode all clocks except LSI and LSE are disabled. StaticRAM content * is preserved,...
W takim razie napisz port STM32 samemu. W katalogu /demo/BARE znajdują się 2 pliki portserial oraz porttimer, musisz uzupełnić implementacje funkcji w nich zawartych (w komentarzach jest opisane co dana funkcja ma robić). Nie jest to trdune bo są to funkcje konfigurujące usart i timery, zatrzymujące i startujące transmisje/odliczanie, więc napisanie...
Witam, Od razu pisze że nie jestem mistrzem w pisaniu programów, a z stm zaczynam swoją przygodę. Chce wyłączyć przerwanie od EXTI na przykład po obsłudze tego przerwania: Do wyłączenie/wyłączenia przerwania np. od Timera jest TIM_ITConfig(TIM3, TIM_IT_Update, ENABLE); //TIM IT enable Generalnie chodzi mi o to że muszę zrobić detekcje sekwencji...
Do tego celu (odliczania czasu) użył bym raczej timer'a. Kto wie jak kompilator zoptymalizował twój kod? (Pytanie retoryczne)
Witam, Na wstępie zaznaczam, iż nie miałem do tej pory dużo wspólnego z układami ARM, stąd też taki mogłoby się wydawać banalny dylemat. Do rzeczy: -Na 6 wyprowadzeniach (PB10 - PB15) mikrokontrolera STM32L152RBT6 uzyskać chcę przebieg jak poniżej: - t1 jest czasem pomiędzy zewnętrznym zdarzeniem (zielona linia), a pierwszą serią impulsów. Ten czas...
Witam, Przymierzam się do napisania sterownika na popularny termometr DS18b20 i chcę stworzyć funkcję generującą opóźnienia opartą na timerze. Wszystko pięknie, ale mam problem z flagą: Dodano po 16 Okey, problem rozwiązany- niepotrzebny był nawias w warunku w pętli while. Przepraszam za zaśmiecanie- temat do kosza albo do zamknięcia :) Dodano po 26...
Co do drugiego - cytat z manuala F4: "The counter is blocked while the auto-reload value is null" Jeżli chcesz mierzyć czas - niech timer odlicza czas. Możesz np. użyć funkcji capture - wtedy timer "zmierzy" np. długość impulsu podanego z zewnątrz.
A co to za funkcja? :-) I w którym miejscu kodu powinienem ją wywoływać? W żadnych przykładach nie widziałem aby ktoś jej używał no chyba, że gdzieś jest zaszyta. Może się pozmieniało odkąd ostatnio używałem FatFs, ale kiedyś ta biblioteka potrzebowała (przede wszystkim do odliczania timeoutów), aby zdefiniować jakąś własną obsługę przerwania od timera...
Witam, Napisałem prosty kod w Keilu: Oscyloskop: 2 V /DIV 0.05 us /DIV
W jakim celu pisać ręcznie po rejestrach, jeżeli wystarczy wywołać jedną krótką funkcję z core_cm4.h?? Jeżeli już to konfiguracja chyba powinna wyglądać tak: [syntax=C] SysTick->LOAD=(100*72) - 1; //100us (at)clk=72MHz NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1); // set Priority for Cortex-Mx System Interrupts SysTick->VAL...
Chciałbym poprosić o informację w jakim dokumencie znajdę opis jak zmienić ustawienia w skonfigurowanym i działającym RTC w STM32F103ZE? Dodam że RTC działa i odlicza czas. Chciałbym teraz po konfiguracji RTC zapewnić możliwość zmiany daty i godziny. Dziękuję i pozdrawiam
Witam, chciałbym stworzyć funkcję delay za pomocą sprzętowego timera. W tej chwili mój kod wygląda tak: main , czyli standardowe miganie diodą. [syntax=c] delayus(10000); GPIOC->BSRR=GPIO_BSRR_BS9; delayus(10000); GPIOC->BSRR=GPIO_BSRR_BR9;[/syntax] Funkcja delay_us: [syntax=c] void delayus(unsigned int us) { TIM3->ARR = us; // Auto reload value TIM3->CNT=0;...
Jedyny błąd jest w Twoich założeniach, że rozkazy z tego pseudo-opóźnienia wykonują się w jednym takcie zegara. Przy okazji w Twojej pętli nie wiadomo po co dwa razy pod rząd ustawiasz pin na stan niski, co też raczej nie służy precyzji odliczania czasu.
DSB gwarantuje zakończenie poprzedniej operacji. Problem z RCC nie wynika z niezakończenia operacji, a z tego, że po jej zakończeniu moduł RCC potrzebuje pewnego czasu na to, aby zapis poskutkował uruchomieniem peryferiala. Ten czas jest związany z szybkością RCC, a nie rdzenia, więc odliczanie opóźnień na rdzeniu jest ciut mało sensowne. Nigdy nie...
To wychodzi na to że w warunku muszę dodać odliczanie czasu 3,5 znaku ? jeśli przekroczy ten czas to wchodzi mi do tego ifa , tak ? Tylko w jaki sposób to zrealizować ?
Cześć Problem polega na tym że ADC1 współgra z DMA2 w trybie Injection, czy to jest związane z tym że nie nie ma sensu czegoś takiego robić, ze względu na to że w tym trybie wszystkie dane trafiają do różnych rejestrów JDRx, i nie ma "zagrożenia" overrunem? Konfiguracja wygląda następująco ADC1 w trybie Injection, wyzwalany zewnętrznie przez sygnał...
Ale w czym problem? Wpuszczasz sygnał z DHT na wejście timera i mierzysz czasy trwania impulsów - to b. proste. Timer zgłasza przerwanie capture przy zmianie poziomu na linii danych. To jest rozwiązanie problemu, a nie pisanie kodu, który programowo odlicza czas i wyklucza możliwość robienia czegokolwiek innego podczas transmisji.
Witam, chciał bym prosić o rade szanownych kolegów mianowicie nie mogę uruchomić nadawania modułem nrf24l01 z pełną szybkością z użyciem przerwań od pinu "IRQ" już wyjaśniam, w trybie polingu nadawanie pakietu 32 Bajtów trwa 156us i wszystko ładnie śmiga odbieranie udało mi się uruchomić z wykorzystaniem przerwań oraz DMA, lecz gdy próbuje wysyłać za...
Mi dotychczas nie udało się zmusić timera do wygenerowania jednego impulsu na wyjściu (czyli zaświecenia diody przy starcie i zgaszenia po osiągnięciu danego czasu w trybie one-shot. Tak? One-shot chyba po to jest by wygenerować impuls o zadanej długości? Zakładam że LED jest na którymś wyjściu timera a nie na dowolnym pinie. aby po uruchomieniu odliczył...
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...
Ustawienia kanałów CC nie mają bezpośredniego wpływu na pracę timera. Jeśli timer ma odliczać do jakiejś wartości, używa się do tego rejestru ARR (PSC dla dzielnika). Zasadniczy tryb pracy timera określa CMS oraz DIR z rejestru CR1, od przepełnienia timera można ustawić przerwanie UI. Jeśli kanał CC jest ustawiony jako compare (praca jako wyjście),...
Witam, Oto wszystko poniżej wg dokumentacji , ale nie działa. W symulacji nie następuje zmiana stanu kanału 4 mimo, że licznik odlicza. Taktowania oraz GPIO oczywiście ok . W czym może tkwić problem? TIM1->CR1=0xA0; //ARPE, CMS=01 TIM1->CCMR2=13<<11; //OC4M=110(PWM MODE 1) OC4PE=1 TIM1->CCER=1<<12; //CC4E =1 TIM1->PSC=0;...
No tak widzę, bo jest jeden wspolny rejestr ARR. Czyli muszę zapuścić 6 timerów. Dam radę:) Dzieki za pomoc i nastepny stopień "rozjaśnienia";) To jeszcze jedno pytanie - linijka "TIM4->CR1 |= TIM_CR1_DIR;" jest zbędna, to znaczy że w tym trybie kierunek odliczania jest ustalony zawsze w dół? Albo nie ma znaczenia?
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....
Niby można i tak, ale normalnie robi się to inaczej - programujesz SysTicka na jakąś ładną, okrągłą częstotliwość, np. 100 lub 1000 Hz, a w przerwaniu odliczasz programowo i co ileś przerwań coś robisz. Wrzucam Ci program na STM32F0, który miga dwiema diodami przy użyciu SysTick, co pół sekundy. [syntax=c] /* STM32F0DISCOVERY SysTick-based blinker gbm,...
Aby nie zakładać specjalnie nowego tematu to spytam się jeszcze tutaj. Czy powyższa metoda może zostać wykorzystana do odmierzania czasu rzędu 1 mikrosekundy. W teorii tak, ale nie jest to chyba najlepszy pomysł... Wejście i wyjście z przerwania to - z tego co pamiętam - 18 cykli. Do tego sama obsługa przerwania to też kilka instrukcji, powiedzmy więc...
A co to jest ? [syntax=c] SysTick_Config(SysTick_FREQ/1); [/syntax] SysTick to 24 bitowy licznik, SysTick_Config służy do zaprogramowania wartości od której odlicza on w dół, po przejściu zero generowane jest przerwanie i SysTick odlicza znowu od wartości wcześniej zaprogramowanej u ciebie jest to (SysTick_FREQ/1).
Ale ten delay na pętli for jest nieistotny. Nie mam włączonej optymalizacji kodu i jakoś procek wykonuje tą pętlę. Chodziło mi tylko o dowód na to, że coś jest z tym moim delay'em na systick'u. Zauważyłem, że gdy używam delay'a na systick'u i zmieniam delay'a (przy sprawdzaniu czy bajt został dobrze wysłany do sterownika HD44780 - zamiast busy flag)...
SysTick jest chyba najprostszy, jedna linijka kodu aby 'zapuścić'. Obsługa przerwania SysTick nie wymaga niczego - żadnego kasowania flag itp. dlatego w prostych projektach jest najczęściej używany jako timer delaya. Nie wymaga także skomplikowanych obliczeń - tylko zegar, podział przez 8 lub brak podziału, podział przez wartość odliczania - i koniec....
Wejście w procedurę obsługi przerwania, wykonanie paru instrukcji i powrót - to min. 50..60 cykli procesora. Przerwania zgłaszasz tak często, że procesor zajmuje się wyłączueni ich obsługą i obsługuje je wolniej, niż są one powtarzane. Proste? Zamiast odlicczać prpgramowo dwa miliony przerwań, przeprogramuj timer np. na 1000 Hz i odliczaj 1000 lub 500...
Polecam na początek zerknąć tu: (strona 90 i następne) Skoro nie używasz PLL to sygnał zegarowy 25MHz powinien docierać (przy wszystkich prescalerach ustawionych na 1) do wejścia taktującego timer. Tak więc APB1 = 25MHz. Dalej (czytając ten manual od góry) zadajmy sobie 2 pytania: 1. Czy pod ten procesor można podłączyć kwarc 25MHz? Od razu powiem nie...
Witam, już dobrych kilka godzin zastanawiam się, dlaczego timer 1 nie działa tak jak chcę. A chcę, poprzez poniżej przedstawione funkcje włączać żarówkę po odliczeniu przez timer na czas też odliczany przez timer. Konfiguracja timera 1: void Tim1_config(void) { RCC->APB2ENR |= RCC_APB2ENR_TIM1EN; TIM1->CR1 |= TIM_CR1_ARPE; TIM1->CR1...
Dziękuję za szybką odpowiedź, podpowiedź :) Na TIM1 mam zrobiony timer do odliczania opóźnień, ale widzę, że niestety trzeba pozmieniać program i zamienić funkcje TIM1 i TIM2. A swoją drogą to faktycznie PB3 i PA15 mają funkcję JTAGA i pewnie dlatego mi nie generują PWM'a. Czy da się jakoś wyłączyć JTAGA jak np. w AVR'kach?
(at)rafz i czym się różni czekanie na zmianę stanu na pinie RW od czekania aż licznik skończy odliczać? Oprócz faktu że w tym drugim nie używamy pinu RW.
Witam, mam problem z obsługą popularnego wyświetlacza ze sterownikiem HD44780. Nie działa on zgodnie z moimi oczekiwaniami, po wyłączeniu i włączeniu zasilania albo nic nie wyświetla albo wyświetla zadany tekst gubiąc przy okazji litery, tutaj podam przykład: do wyświetlenia napis "Test", na wyświetlaczu: "Tst" lub "TWt". Wydaje mi się że problemem...
A po co chcesz łączyć nóżki? Nie wystarczy w przerwaniu od RX-a uruchomić sobie odliczanie na timerze?
Nie należy odliczać na timerze sprzętowo 5 sekund, bo i tak musisz odliczać na timerze czasy krótsze do innych celów - 5 s odliczysz programowo w przerwaniu timera zgłaszanym np. z częstotliwością 100 lub 1000 Hz. Preskaler wygodnie jest ustawić tak, żeby okres zegara wejściowego timera wynosił np. 1 us lub 10 us - wtedy łatwo liczy się i programuje...
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...
Zrobiłem zegarek na uC STM32F0 dokładnie na płytce Discovery. Wszystko fajnie działa, ale źle odmierza czas. Mianowicie liczy tak: 0 1 2 3 6 7 8 9 11 itd. - co 4s dodaje gratis sekundę więcej. Nie wiem co może być powodem takiego stanu rzeczy. Może dlatego że odlicza mi bez kwarcu 32k tylko na tym wbudowanym w uC. Moja konfiguracja RTC: [syntax=c]RCC->APB1ENR...
Witam, pomysł z SysTick wydaje się dobry a ja go rozwinę tak jak ja to widzę. Systick generuje przerwanie co określony czas. Definiuję sobię 8 zmiennych "volatile int": P1,D1,P2,D2,P3,D3,P4,D4 i ustawiam wartości początkowe (P1 - "przekaźnik 1", D1 - "przekaźnik 1 działa") Zmienne Px odpowiadają za odliczanie czasu pomiędzy aktywacją przekaźnika, zmienne...
Prosty timer z nastawą czasu. 0. Elementy: * wyświetlanie na 3 cyfrowym 7 seg. wyświetlaczu * krańcówka * triak * eeprom * buzzer * 2 przyciski 1. Zasada działania Nastawa zapisana w pamięci eeprom, przy włączeniu zasilana wczytana z powrotem. Przy rozwartej krańcówce: *rozłączony obwód triaka *nastawa czasu 1-999 sekund za pomocą + oraz -. Przy zwartej...
Częściowy sukces. Metodą prób znalazłem gdzie tkwi problem. Okazuje się, że nie działa prawidłowo funkcja Delay_ms(). Procek zamiast odliczać krótkie opóźnienia zapętla się w nieskończoność. Na chwilę obecną rozwiązałem ten problem wklejając kod tego dema do innego programu w którym prawidłowo działa podobna funkcja opóźnienia i program w końcu ruszył....
oba przerwania wykonują się z taką samą częstotliwością, niezależnie od tego co wpiszę w Pulse Nic dziwnego :) Przecież oba mają tę samą podstawę czasu, czyli rejestr TIM1->CNT. Jedyna różnica jaką mógłbyś zobaczyć, to moment przełączenia wyjścia lub pojawienia się flagi przerwania. Ale nie zobaczysz, ponieważ niezbyt szczęśliwie dobrałeś czasy 0 i...
System Workbench for STM32 mam zainstalowany, zależy mi na programie startowym kolegi Freddie Chopin bo w SWFstm32 ma własną inicjalizację zegarów i odliczanie czasu systic nie zgadza się z tym co jest w programie a chcę uruchomić hd44780 gdzie potrzebuję dokładnych czasów. Chyba że koledze chodzi o coś innego? Pozdrawiam
Najprościej - odliczasz impulsy w przerwaniu timera. I tak przy każdym kroku masz zmieniać okres timera, więc każdy krok musisz programwo obsłużyć.
Witajcie, Z nowym rokiem nowe wyzwania :) Zwracam się do Was z pytaniem, czy moja koncepcja jest słuszna... Otóż, potrzebuję zbudować urządzenie, które będzie zasilane bateryjnie (docelowo 2xAA), które ma tylko zliczać impulsy zewnętrzne w ciągu każdej godziny działania urządzenia. Po odliczeniu godziny ma te informacje przesłać po rs485 dalej.Tych...
Ok już mam, nie chodzi o nazwę przerwania (dziękuję za zgryźliwość ;) ) tylko o to, że chciałem użyć TIM1_CC, a zadziałało TIM1_UP. Ponadto ono się wywołuje od razu po starcie timera (TIM1->CNT==0), a ja w przerwaniu od razu go wyłączam, przez to nie widziałem efektu przerwania. Już sobie poradziłem - w przerwaniu odliczam dwa wywołania i dopiero za...
Wyżej już napisałem, jak prosto sprawdzać przyciski niezakłócane i zakłócane. W pierwszym przypadku patrzymy na dwa stany - obecny i poprzedni. W drugim - na trzy, z "poprawkami" przy wykryciu pojedynczego innego stanu. To wszystko - nic więcej nie trzeba, żadnych "delay", odliczania do 50 takich samych stanów ani "trybu debouncingu".
Witam, Podłączyłem baterię do Vbat aby podtrzymać zegar RTC, jednak po wyłączeniu i włączeniu zasilania zegar kontynuuje odliczanie od czasu w którym zostało odłączone zasilanie. Kod został stworzony w CubeMX i zmodyfikowany przeze mnie aby nie wpisywał po uruchomieniu stałego czasu wygenerowanego przez CubeMX. Co trzeba zmienić w kodzie HAL żeby po...
Niestety kolega autor nie używa FSa z Cuba a ze strony podanej w pierwszym poście. Chyba udało się poprawnie skonfigurować FATfs z Cuba, ale pojawił się problem. Pliki zapisuje na SD, ale z niepoprawną datą (starą). Gdzie trzeba to zmienić, aby zapisywał z datą aktualną? PS. RTC odlicza poprawną datę.
Witam wszystkich po raz kolejny. Potrzebuję rady doświadczonych kolegów na temat wydajności kodu. Otóż pracuję nad kodem w którym będą istnieć nawzajem różne procesy - adc, uart itd. Aktualnie piszę kod do obsługi SPI, w celu komunikacji z urządzeniem. Potrzebuję wysłać przynajmniej 7 bajtów do urządzenia a potem odczytać odpowiedź. Wszystko gra i komunikacja...
Z pomocą angielskiej strony udało mi się stworzyć sinusoidę za pomocą PWM. Zrobione to zostało w ten sposób, że jeden timer co jakiś czas odlicza czas w którym DMA wysyła wartości wypełnienia do drugiego timera. Tablicę również znalazłem gotową, zawierała ona 128 wartości, czyli próbek. Po przefiltrowaniu przebiegu PWM przez filtr RC dostałem sinusa....
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ć)....
Witam wszystkich serdecznie. Wraz z kolegą od kilku dni głowimy się nad pewnym problemem i nie potrafimy znaleźć idealnego rozwiązania. Naszym zadaniem jest zaprogramować układ STM32F4 Discovery tak, aby działał jak alarm. Otóż wymyślona przez nas zasada działania mówi, że po wykryciu ruchu (wciśnięciu przycisku) układ powinien odliczać 10 sekund dając...
Więc doświadczalnie to sprawdziłem i zarówno HSE oraz LSI nie jest podtrzymywane bateryjnie. Jedynie gdy "dorobiłem" LSE do stm32f4discovery to vbat podtrzymał odliczanie rtca ; )
Witam, Otóż od pewnego czasu męczę się nad poprawnym ustawieniem wbudowanego zegara RTC w STM32f401re. Korzystam z płytki Nucelo więc podejrzewam z dość dokładnych oględzin płytki i ścieżek, że część hardware'owa jest OK. Jednakże pomimo tego i ustawień błędy występują przy odliczaniu czasu. Przede wszysktkim sekundy odlicza następująco 1,2..9,16,17,19,21...
Witam, zaprojektowałem soft-start 3-fazowy sterowany mikrokontrolerem stm32. Steruje poprzez odliczanie po przejściu przez zero sinusoidy na trzech fazach. Gdy mam połączone żarówki w trójkącie to wszystko działa ok. Tzn. płynnie steruje jasnością. Natomiast gdy podłączę silnik indukcyjny to przy pewnej wartości czasu wpada w wibracje, taki jakby rezonans...
I Opis ogólny urządzenia: Chciałbym przedstawić mój projekt bazujący na mikrokontrolerze STM32 dokładnie na modelu STM32F11RET6 . Jest to sterownik dla urządzenia popularnie zwanego „wytrawiarką” przydatnego podczas prototypowania płytek PCB, czyli przyrządu podgrzewającego nadsiarczan sodu (B327) do temperatury 40 stopni i utrzymującym...
Chciałbym przedstawić mój projekt na konkurs świąteczny bazujący na płytce Nucleo 64 z mikrokontrolerem STM32 na modelu STM32F411RET6 WiFi komunikujący się z telefonem z systemem Android do coraz bardziej popularnych diod WSRGB2811 zamontowanych na świątecznej choince. Dokładnie to łańcuch choinkowy 150 szt. diod LED do nabycia na znanym portalu aukcyjnym....
Do poczytania Azymut (kąt kierunku w jakim porusza się obiekt w stopniach) można wyłuskać z ramki GPRMC, Odbiornik sypie danymi przez UART po włączeniu zasilania. Wystarczy ze strumienia ramek wydobyć interesujące nas dane. W praktyce czekamy na odpowiedni znak i jeśli się pojawi odliczamy odpowiednią ilość znaków (przecinków) i odbieramy to co po nich...
Wkleiłem projekt do Eclipse.... kompilacja Make.... 50sekund, tup... 22sekundy (i7 2,9GHz) Jak włączysz w opcjach projektu kompilację wielowątkową, to w make skompiluje się z podobną prędkością jak w tup. Prędkość tup można w Eclipse nieco poprawić - przynajmniej u mnie różnica była znaczna - Choć to w sumie zależy też od tego, czy masz włączony indekser...
Przede wszystkim nie widać, jak dźwięki są generowane - robi to procedura biblioteczna. I robi to w sposób dość prymitywny, jaki był stosowany na PC - programuje się podział częstotliwości, tylko na PC to było około 1.2MHz, a tu (2/3)MHz. O ile dobrze pamiętam, na STM32F1xx można dzielić 72MHz - uzyskując ~100X lepszy wynik. Na PC można było wpisać...
Rozumiem że Microchip został użyty jako przykład, w dodatku poradnik przetłumaczony. Nie mam nic przeciwko, bardzo dobra robota, nie dziwi mnie brak komentarzy bo co tu komentować? Świetnie opisane, nic tylko używać... Ale popatrzyłem na to i zapytałem siebie czy mnie jara, coś by trzeba skomentować i jedyne co uwiera podczas lektury to Microchip i...
Zaczynam powoli pisać taką najprostszą obsługę ADC. Chciałbym dokonywać konwersji w pętli while w main. Generalnie jest może jakiś algorytm postępowania w trakcie inicjalizacji przetwornika? Widzę że są pewne różnice odnośnie AVR i nie jestem tego w stanie zrobić przez całkowitą analogię... Przedstawię to co zrobiłem: main: [syntax=c] #include <stdint.h>...
Dzień Dobry Chciałem zapoznać się z konfiguracją przerwań zewnętrznych. I mam pewien problem. Wydaje mi się, że rejestry skonfigurowałem dobrze. Założenie jest takie, żeby wygenerować sygnał prostokątny na pinie następnie podać ten sygnał na pin który będzie odpowiedzialny za przerwanie zewnętrzne. W przerwaniu chciałbym zmieniać stan diody. Przykład...
Witam, chciałbym zaprezentować Wam czujnik wilgotności mojej konstrukcji, a właściwie to bardziej sposób jego wykonania. Czujnik jest częścią większego Dużym plusem takiego rozwiązania jest nieznaczna zmiana wyników pomiarów spowodowana zmianą napięcia zasilania, przy rozładowującej się baterii co jest dużym ułatwieniem przy urządzeniach zasilanych...
WSTĘP Chciałbym podziękować wszystkim pomocnym mi użytkownikom z działu "Mikrokontrolery ARM" którzy przyczynili się do powstania tej pracy. W szczególności Freediemu Chopinowi :) Cześć, Dzisiaj chciałbym wam zaprezentować urządzenie które powstało w ramach mojej pracy inżynierskiej na Politechnice Rzeszowskiej. Pełny temat pracy brzmiał: "Rozwiązania...
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....
Tylko tak jak na stronie Arduino pisze Jest napisane. , funkcja pulseIn() "Works on pulses from 10 microseconds" co daje 100Hz bez dzielnika a z dzielnikiem tylko 400Hz. Więc jak to rozwiązać? Już napisałem, sygnał mierzony dajesz na wejście licznika. Tak można mierzyć częstotliwości do częstotliwość_taktująca_mikrokontroler / 2. W nocie katalogowej...