Timery i dokładne odmierzanie czasu w różnych miejscach kodu. Zamiast korzystać z kilku timerów, można w różnych blokach kodu konfigurować 1 timer i wstrzykiwać odpowiednią funkcję przerwania. Oczywiście pod warunkiem, że nie będziemy musieli odmierzać czasu dla dwóch bloków jednocześnie. Wygląda na to, że potrzebujesz po prostu callbacka w jednym...
Przeczytać manuał i odpowiednią NOTE od ST. Ale na wewnętrznym cudów się nie spodziewaj.
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ść...
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 Chciałbym na początku zaznaczyć że jestem nowicjuszem w zabawach z programowaniem :) Napisałem program w języku C# na STM32F429I-DISCO pod czujnik HC-SR04. Ogólnie muszę zmierzyć czas od podania na wyjście stanu wysokiego do stanu wysokiego na wejściu. Zrobiłem to jako InterruptPort i obsługę przy zboczu opadającym. endTick . Poniżej wrzucam cały...
Piszę pewną funkcje która ma za zadanie przemielić trochę danych, operacje na macierzach. Mam kilka wersji tej funkcji, każda działa dobrze, ale chciałbym wybrać tą która liczy najszybciej. Jak zmierzyć ile mniej więcej czasu, bądź rozkazów procesora ona zajmuje? Na razie zrobiłem tak, że przerwania od systicka są wywoływane co 1 us a w nim inkrementowana...
Witam serdecznie! Mam Atmege32 i kwarc 8MHz i chcialbym napisac funkcje ktora odmierzyla by mi pewien konkretny okres czasu. Jak cos takiego policzyc? Jak napisac petle zeby odmierzala dokladnie tyle ile potrzebuje? Pozdrawiam i prosze o pomoc! Paweł
Witam, Chciałem zrealizować zegar czasu rzeczywistego, w oparciu o wbudowany w STM32f103 RTC. W chwili obecnej uruchomione mam 1s przerwanie właśnie od RTC w obsłudze którego zajmuję się zwiększaniem sekund, minut, godzin, dni itd oraz również w przerwaniu zapisuje sobie te wartości do rejestrów chronionych (a grupy BACKUP DOMAIN ). Teraz chciałem się...
Witam, Chciałbym opóźnić załączenia urządzenia o 69800us (wartość zapisana w zmiennej) Jak to zrobić z dokładnością do 0.1ms? Rozwiązanie za pomocą pętli for i delay_us odpada bo wprowadzi to dodatkowe błędy związane z wykonaniem pętli for (3 takty zegara). Podzielenie wartości przez 1000 też nie wiele da bo otrzymam 69ms Proszę o rade:)
Używam bibliotek HAL do obsługi wewnętrznego RTC. Po ostatnich zmianach w CubeMX szczęśliwie już nie ma problemu z ustawianiem inicjacyjnej daty i godziny po każdym resecie. Mam inny problem. O ile GG:MM:SS po wznowieniu zliczane są normalnie, to każdy reset powoduje wyzerowanie rejestrów daty (mam 01-01-2000). Na pewno problem jest trywialny, ale muszę...
Robię program składający się głównie z przerwań. Program steruje 6 silnikami krokowymi. Uruchomiłem więc 6 timerów dla kazdego silnika w trybie PWM, wypełnienie zawsze 50%, sterowanie częstotliwością. Żeby każdy silnik mógł wykonać zadaną ilość kroków (a zalezności miedzy silnikami są skomplikowane i nieprzewidywalne), każdy timer po wykonaniu impulsu...
Witam, piszę aplikację, która przez większość czasu będzie spędzać w trybie STOP. Założyłem sobie, że co kilka minut wbudowany RTC będzie wybudzał mikrokontroler, który wejdzie do obsługi przerwania RTC, wykona swoje zadania w przerwaniu i wróci do trybu STOP. Moje pytanie brzmi, w jaki sposób zrealizować to najlepiej/najprościej? Próbowałem już to...
Witam, Mam problem z uzyskaniem dokładnego czasu z timera. To mój kod: [syntax=c] #include "stm32f407xx.h" int main(void){ // flash //FLASH -> ACR |= FLASH_ACR_DCRST | FLASH_ACR_ICRST; FLASH -> ACR = FLASH_ACR_DCEN | FLASH_ACR_ICEN | FLASH_ACR_PRFTEN | FLASH_ACR_LATENCY_5WS; //while((FLASH -> ACR & FLASH_ACR_LATENCY) != FLASH_ACR_LATENCY_5WS);...
Potrzebuję wykonać sterownik czasowy który będzie mi w ustalonym czasie sterował nie zależnie czterema przekaźnikami. Np.: kanał 1 -> co 12h będzie włączał przekaźnik na 1h, kanał 2 -> co 30min będzie włączał na 2min, kanał 3 i 4 podobnie. Chodzi mi o sam algorytm (raczej podpowiedz) jak to mógłbym zrobić czy na układzie RTC czy czterech "tajmerach"...
Witam, Tak jak w temacie - mam w głównej pętli dosyć skomplikowane obliczenia i chciałbym się dowiedzieć ile dokładnie trwa cykl jednej pętli. Jak to zmierzyć?
Mam taki oto kod przerwania od Tim2 [syntax=cpp] void TIM2_IRQHandler(void) { if ( TIM_GetITStatus(TIM2 , TIM_IT_Update) != RESET ) { TIM_ClearITPendingBit(TIM2 , TIM_FLAG_Update); if (TF) { GPIO_ResetBits(GPIOB , GPIO_Pin_10); TIM2->PSC=7200; TIM2->ARR=7500; } else { GPIO_SetBits(GPIOB , GPIO_Pin_10); TIM2->PSC=72; TIM2->ARR=6; } TF=~TF; } } [/syntax]...
Cześć, Chciałbym Was podpytać o najlepsze rozwiązanie. Sterownik na stm32 otrzymuje co kilkadziesiąt godzin czas do aktualizacji RTC w formie unixowej jako zmienna 32bit. Wykorzystywana jest ona następnie do przesyłania do innych urządzeń również jako zmienna 32bit. Pytanie - czy za każdym razem muszę robić konwersję 32bit na BCD do RTC i na odwrót,...
Witam Robię projekt w którym ważne jest precyzyjne odmierzanie czasu lecz jak zrobić by uc odmierzało precyzyjnie czas wyczytałem że można dać kwarc 32768khz czy to prawda I czy trzeba ustawiać coś?? Będzie chodziło?? Ja mówię że nie chcę zegara czasu rzeczywistego ponieważ jest sporo kombinacji itp. Bardzo proszę o pomoc Używam avrstudio+winavr, stk500v2,...
Chciałbym na początek wykonać miganie diodą z częstotliwością 2Hz za pomocą przerwania Timera 6. Poniżej kod: [syntax=c]#include <stm32f0xx.h> void TIM6_DAC_IRQHandler(void); int main(void) { RCC->CFGR &= ~(RCC_CFGR_SW_1 | RCC_CFGR_SW_0); //HSI RCC->AHBENR |= RCC_AHBENR_GPIOCEN; GPIOC->MODER |= GPIO_MODER_MODER9_0; //wejscie GPIOC->MODER...
Witam Potrzebuje odmierzać czas(jak najdokladniej) od 0.01s do max 1s, w zależności od wartości którą otrzymam z zewnątrz. Problem polega na tym, ze timera 16bitowego nie moge wykorzystać bo jest juz uzywany. Program pisze w C pod Atmege8. F_CPU=8Mhz
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...
Witajcie, Mam problem ze zmianą polaryzacji wyjścia timer w locie. Sprawa wygląda tak. Mam dwa timer jeden (TIM1 na CH1) generuje PWM o dużej częst. a drugi (TIM7) zlicza czas w dół i następnie w przerwaniu zmienia polaryzację wyjścia PWM TIM1. Niestety pojawia się wtedy flaga UIF w rejestrze SR, co powoduje przeładowanie TIM1 i wtedy na krótki czas...
To samo co tutaj: https://www.elektroda.pl/rtvforum/topic3...
Kosztem dokładności możesz zrobić to na jednym wspólnym 2-kanałowym timerze i przerwaniu EXTIi (oddzielnym dla każdego czujnika). Dwa kanały służyłyby do odmierzania czasu impulsu startowego i kasowania czujnika - wymuszenia kończenia pomiaru, a okres timera wyznaczałby cykl pomiarowy do kolejnego przeglądanai czujników.
Też nie to, pomiędzy czytaniami jest opóźnienie (w readadc), ale dopisze to tu. W while dalszy kod (kreseczki) wykonuje sie dość długo - obsługa LCD, sama petla while powtarza sie co ok. 200ms. 1. Opóźnienie? A jakbyś tak sprawdzał flagę zakończenia konwersji? 2. delayadc(...)? A jakbyś tak użył do odmierzania czasu timera?
Nie 103 a 107. Cała rodzina F1 jest przestarzała. W STM32F4, F7 i F0 jest do sześciu SPI. Do tego warto dodać, że USART może pracować w trybie SPI w każdym STM32.
Używam RTCa z STM32103ZET6 z rezonatorem 12.5pF. Narazie działa bez zarzutu. Kwarc to jeden z najtańszych z TME 32.768K-20PPM . Do tego dwa kondensatory 10pF też nic nadzwyczajnego. Myślę że problemem będzie tylko nieprecyzyjne odmierzanie czasu. Kiedyś używałem RTCa Dallasa i on miał możliwość przełączenia typu rezonatora. Jedyną różnicą w działaniu...
(at)jorax Sprawdź czy masz dobrze ustawione zegary, bo myślę że nie :( Ustaw sobie któryś timer (może być SysTick) żeby ci odmierzał stały odcinek czasu np. 5s. i w przerwaniu zmieniaj stan diody. Porównaj miganie diody z zegarkiem i będziesz mógł oszacować czy zegary są dobrze ustawione.
Chce osiagnac prawidlowe odmierzanie czasu. ;] Przeczytalem po prostu ze "Dla APB2 f maks to 72MHz, a dla APB1 to 36MHz i jeśli taktowanie jest mniejsze niż te wartości to timery są taktowane z f 2x mniejszą niż magistrale. " Pisownię postu poprawiłem.
No właśnie, Możesz skopiować funkcje którą podałem ci w poprzednim wątku, ta z przerwania odczytująca stan przycisków. Dodatkowo uzbroić ją jak wyżej (at)excray napisał w odmierzanie czasu naciśnięcia. Wówczas odpowiednio ustawiasz kod klawiatury. Algorytm mniej więcej... Zaznaczam w funkcji który guzik nacisnieto, w kolejnych przerwaniach zliczamy...
Mam pytanko. Jaki jest minimalny czas odmierzany przez timer 8-bitowy? bo mi minimum na zegarze 8mhz wychodzi 0.016ms, nawet jak preskaler dam 1 i OCR0 =1. A 16 bitowym mogę mniejsze odmierzyć. według mojej wiedzy powinny minimalny czas mieć taki sam (1/czestotliwość zegara głównego) edit: No i jest problem atmega z zegarem 16mhz jest za wolna. Gdy...
opisz jak w procesorze STM32F411 skalibrować RTC używająć rejestrów. Posiłkuj się Reference Manual i notą aplikacyją AN4759 Wstępna ocena dostępnych informacji Użytkownik prosi o szczegółowy opis kalibracji RTC w mikrokontrolerze STM32F411 przy użyciu rejestrów, opierając się na Reference Manual oraz nocie aplikacyjnej AN4759 . Celem jest precyzyjne...
Ehhh. Sprawa się poniekąd wyjaśniła. Ma być TCCR2 = 0b00001001 zamiast TCCR2 = 0b01000001. WGM21 pomyliło mi się z WGM20. Zamiast CTC był tryb PWM Phase Correct. Teraz wszystko działa bez zacinania. Dalej nie wiem czego w trybie Normal dzieli sygnał przez 4 ale może jakoś przeżyję. Przepraszam za niepotrzebne zamieszanie. Pozdrawiam EDIT: Wystarczy...
Dzień dobry, postanowiłem zacząć przygodę z rejestrami na mikrokontrolerach, skupiam się obecnie na STM32 C011 z racji, że znam już jakieś solidne podstawy HALowskie. I dostałem już niczym strzał z liścia pierwszy problem - mianowicie dioda dołączona do mikrokontrolera na wyjściu nie chce mrugać. Z dokumentacji mikrokontrolera wraz z całą płytką wynika,...
Przepraszam za mało fachowe wytłumaczenie. Chciałbym stworzyć sobie funkcję która pozwoli tak jak osDelay(); odmierzać kawałki czasowe ale w us a nie ms jak systemowy delay. Dokładność odmierzania nie jest tu kluczowa kluczowe jest nie zajmowanie czasu procesora w czasie oczekiwania. Tak jak to robi osDelay(); Dokładność opóźnienia powinna...
(...) by uzyskać częstotliwości 32Hz (okres 0,03125s) oraz 64Hz (okres 0,015625s). Czy możesz ustalić kombinację okresów z tych dwóch dzielników tak aby w ciągu sekundy otrzymać 60? Możesz też zaproponować kod w Arduino generatora taktującego dla TMS3450. Interesuje mnie jak najmniejszy błąd odmierzania czasu. Wprowadzenie Dziękuję za szczegółowe przedstawienie...
Witam, Chcę skonfigurować timer tak aby po określonym czasie zostało wygenerowane przerwanie(jednokrotnie), fragment kodu: [syntax=c]TIM4->PSC = 7200; TIM4->ARR = 10000; TIM4->DIER = TIM_DIER_UIE; TIM4->CR1 |= TIM_CR1_URS | TIM_CR1_OPM | TIM_CR1_CEN; NVIC_EnableIRQ(30);[/syntax] obsługa przerwania: [syntax=c]__attribute__ ((interrupt)) void TIM4_IRQHandler(void)...
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...
Witam. Mam pytanie dotyczące płytki stm32f4 discovery. Dopiero zaczynam z nią prace i jestem przy timerach. Mam np. timer 4. Jaki powinienem dac okres zliczania i preskaler aby uzyskać np. 5 sek??? Czy odmierzanie czasu konfiguruje inaczej???
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...
Mikrokontrolerem można odmierzać okres - jeśli działa z zegarem 1MHz, to można na nim zrobić generator dający się ustawić na 1000Hz, 999.001Hz, 998.004Hz,... przy mniejszych częstotliwościach odstępy będą coraz mniejsze. Nie da się cyfrowo zrobić równych odstępów, jeśli sygnał ma być równym prostokątem. Można natomiast wykonywać dodawania: np. do zmiennej...
Nie wiem, jak się programuje przerwania na RPi, robiłem to na PC - na starym PC/XT dało się wyciągnąć powtarzalny pomiar impulsu z rozdzielczością us, ale na zablokowanych przerwaniach (poza tym, które uruchamiał mierzony sygnał), na współczesnych, nawet niezbyt szybkich, ns pewnie jest do osiągnięcia. Ale jeśli jest obsługiwane przerwanie akurat wtedy,...
(at)kamil94goldman odpowiedź jest prosta - tak samo jak do PSC wpisujesz wartość o 1 mniejszą niż dzielnik który sobie policzyłeś, tak do ARR również powinieneś wpisać wartość o 1 mniejszą. no tak... ;) Walczę z odmierzaniem czasu, nie wchodząc w przerwanie. Opóźnienie chciałem uzyskać dzięki sprawdzaniu flagi przerwania ale gdy program uruchamiam...
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);...
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...
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...
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...
Przez modulację impulsów miałem na myśli przejście z pojedynczego impulsu o czasie trwania t3 na szereg impulsów o większej częstotliwości o łącznym czasie trwania t3 (czyli takie "posiekanie" pojedynczego impulsu). Po przemyśleniu doszedłem do wniosku że mogę uzyskać taki sam efekt stosując sprzętowy pwm w drugiej gałęzi odbiornika (schemat: plus zasilania->...
Witam, problem i zarazem pytanie jak w temacie. Napisałem funkcję obsługi 1-wire z wykorzystaniem bibliotek API STM32 do komunikacji z czujnikiem temperatury DS1820. Funkcja wywoływana jest w przerwaniu od timera. Nie było z nią problemów gdy rdzeń STM-a pracował częstotliwością 168 MHz, przy niższych wstępowały błędy komunikacji. Podejrzewałem, że...
ST w swojej ofercie oprócz STM32 ma STM8 jak i SPC5xx czyli PowerPC z ukierunkowaniem na zastosowania samochodowe co świadczy o braku wywrotności w trudnych warunkach pracy. STM8 często można spotkać w chińskich termostatach i innych małych, uniwersalnych płytkach. Skoro te wszystkie linie kontrolerów sprzedają się, są produkowane to znaczy, że rynek...
Wypadałoby zacząć od podstaw. Przydałoby się przejść jakiś kurs odnośnie komunikacji szeregowej. Tak na początek. 1. Co za kabel USB-DB9 posiadasz? Do jakiego standardu konwertujesz UART? +/-12V? 0/12V? 0/5V? 2. Jeśli na liniach sygnałowych będzie 12V, to możesz uszkodzić analizator logiczny. 3. Saleae Logic analizując sygnał UART zakłada, że stanem...
Konfiguracja przerwania od RTC: RCC_APB1PeriphClockCmd(RCC_APB1Perip... ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Perip... ENABLE); GPIO_InitTypeDef GPIO_InitStructure; /* TIM4 channel 2 pin (PB.07) configuration */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_InitStructure.GPIO_Speed...
Sprzęt dostarcza zamawiający. Bibliotekę obsługi łańcuchów tekstowych dostarcza zamawiający Serwer komunikacyjny dostarcza zamawiający. Opis protokołu wymiany danych dostarcza zamawiający. ........................................... Funkcje sterownika: Praca z wykorzystaniem sygnałów i przerwań od USART i Timera 1sec. kontroler ma przebywać...
odmierzanie czasu timer1 odmierzanie czasu odmierzanie czasu timer1
parametry czynników chłodniczych zlecenie naprawy lista kanał ariva
samsung ue550 skuter elekryczny
BMW X5 G05 2024 – stałe zasilanie 12V pod maską, punkty B+, fuse-tap, bezpieczniki YX8018 – schematy, aplikacje, parametry, lampki solarne, boost, LED, Ni-MH, QX5252F