dlaczego od wartości Load odejmujemy 1 ? Bo liczniki używają też wartości 0, więc jeśli chcesz mieć przykładowo 5 cykli, to wpisujesz do licznika wartość "5 - 1". Licznik w efekcie odliczy 4-3-2-1-0 - razem pięć (;
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...
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
Chciałbym w jakiś sposób przechodzić w tryb uśpienia, ale potrzebuję też odmierzania czasu z dokładnością do 1ms, i inaczej niż pobieranie SysTick z taką częstotliwością nie potrafię tego rozwiązać, tym bardziej, że chciałbym, żeby drugi stm32 podłączony do tego poprzez moduł RF (na SPI) też tak samo odliczał czas, próbowałem na RTC, ale tam jest dokładność...
W prawdziwym systemie na ogół potrzebujemy coś robić (np. sprawdzać stan guzików, czujników, wyliczać sterowania dla urządzeń) z częstotliwością dużo większą niż częstotliwość migania diod sygnalizacyjnych. W takiej sytuacji mnożenie przerwań od timerów może powodować zwiększenie czasu reakcji lub rozrzutu czasu reakcji na przerwania, co często jest...
Czyli się nie nadaje na odliczanie ?
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...
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...
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....
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...
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....
Jakaś dokumentacja jest w katalogu firmware procka. Są tam też jakieś przykłady. Jest taka fajna pozycja o STM32 z wykorzystaniem CubeMX: https://www.carminenoviello.com/masterin...
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, 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...
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: http://obrazki.elektroda.pl/6696132300_1... - t1 jest czasem pomiędzy zewnętrznym zdarzeniem...
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...
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...
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...
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...
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...
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...
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...
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?
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...
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ć.
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...
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).
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ć ?
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;...
http://obrazki.elektroda.pl/8875559300_1... 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...
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,...
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...
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...
Sprawdzalem, co jest w rejestrach SystTicka: Pod adresem 0E000E010 jest wartosc 07 00 00 00 (po skonfigurowaniu) i 07 00 01 00 (po odliczeniu czasu) - czyli OK Może ktoś ma pomysł o co chodzi? Czy czegoś brakuje? Nie jest OK! Zamiast 07 powinno być 03 ! SysTick control and status register (STK_CTRL) Bits 31:17 Reserved, must be kept cleared. Bit 16...
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...
Odstęp nie będzie miał ściśle określonego czasu, a ani jednego bitu więcej w ramkę nie upchniesz, nawet gdyby miał określony czas, bo nie zmienisz wartości bitu startu ani stopu UARTa. Te 30% "wolnego" czasu procesora zajmie kodowanie danych do transmisji. Ciekawe, czy się wyrobi... - niekoniecznie moim zdaniem, zwłaszcza, że występują tu i dane 12-bitowe...
Jeśli oba mają preemption 0 (a domyślnie wszystkie przerwania tak mają, chyba, że w STM32 jest inaczej niż wszędzie), to nikt nikogo nie może wywłaszczyć. Serdeczne dzięki za wytłumaczenie jak działa mechanizm priorytetów NVIC. Z tego rozumiem, że można zdefiniować maksymalnie 16 przerwań , które mogą się wzajemnie wywłaszczać (grupa 4) ? Subpriorytet...
0. Czy zmieniałeś konfigurację pinów połączonych z JTAG (PA13,PA14,PA15, PB3,PB4)? 1. Jeżeli tak, to ustaw BOOT0 = 1 i BOOT1 = 0 i próbuj się połączyć za pomocą ST-LINK Utility i skasuj pamięć uC. Możesz, jak mówi Freddie, robić to pod sprzętowym resetem. 2. Jeżeli nie będziesz mógł się połączyć w ten sposób, to możesz jeszcze skorzystać z wbudowanego...
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...
Muszę zrobić programowego mastera SPI, Fmax 18MHz. Nie mogę ustawić portów na wolniejsze taktowanie, bo mam na nich kartę ethernetową (zestaw ZL26ARM) i z ARM jest taktowana karta (50MHz). Transmitowane będzie po kilkanaście, kilkaset bajtów co ok 100ms. No ale tak krótkich czasów - dla zegara 18 MHz - przecież nie odliczysz inaczej niż najbardziej...
http://obrazki.elektroda.pl/8861043000_1... 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...
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...
https://obrazki.elektroda.pl/7656017200_... O komputerach jednopłytkowych czy stare komputery były lepsze od współczesnych platform rozwojowych i SBC? Nie lubię Arduino I to jest jak najbardziej prawda. Arduino to platforma, która miała dać łatwy dostęp do programowania elektroniki ludziom, którzy nie znają się ani na elektronice,...
arduino odliczanie czasu odliczanie czasu timer timery odliczanie czasu
termostat płyty grzewczej felgi malowanie odwrócić polaryzacja zwrotnica
elektromechanik samochodowy elektryk samochodowy
Zanik świateł mijania w Toyocie Corolli 2009 Nie działa wyświetlacz dekodera - diagnostyka i rozwiązania