[syntax=c]void _delay_init() { SysTick->LOAD = 0x00FFFFFF; SysTick->CTRL = SysTick_CTRL_ENABLE_Msk | SysTick_CTRL_CLKSOURCE_Msk; // | SysTick_CTRL_TICKINT_Msk; } void _delay_ms(uint32_t time) { uint32_t ina, inb; while(time--) { ina = SysTick->VAL; do { inb = SysTick->VAL; inb = (ina - inb) & 0x00FFFFFF; } while (inb<72000); } }[/syntax]
Koledzy, czy Wy naprawdę nie widzicie bezsensu tej sytuacji? Dokładnie! Zamiast się tak męczyć, autor tematu mógł sobie po prostu kupić gotowe urządzenie w najbliższej klimatyzowanej galerii handlowej, zamiast się tak męczyć próbując zrobić coś samemu... Bez obrazy, ale Twoje nachalne wciskanie w co drugim temacie Keila jest już męczące. Jak widać...
kaczor90 od razu rzuca się w oczy, że 18 000 000 > ( 16 777 215 = 0xFFFFFF), a SysTick jest 24 bitowy. Jak chcesz mieć 0,5s to wyzeruj bit SysTick_CTRL_CLKSOURCE i przelicz sobie wartości dla częstotliwości podzielonej przez 8. Brakuje jeszcze linii void SysTick_Handler(void) __attribute__ ((interrupt)); bez niej procesor wpada w nieskończoną pętlę.
W ciągu ostatnich dwóch lat w EP pojawił się cykl artykułów poświęconych programowaniu STM32 bez SPL z wieloma przykładami. A i ważna uwaga co do tekstu: w aktualnych, nowych wersjach plików nagłówkowych dla F4 już nie ma BSRRL i BSRRH, a jest BSRR (co powoduje, że programy napisane pół roku temu już się nie kompilują z nowymi plikami nagłówkowymi)....
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...
Czy działa Systick to łatwo sprawdzić w debuggerze. Zresztą wiele spraw można sprawdzić. Ja bym zaczął od tego czy właściwe rejestry podlegają zmianom. To nie jest nic trudnego, w krokowym trybie Też jaka wartość jest SystemCoreClock, to zmienna globalna. Może ląduje gdzieś w HardFault, zaraz po uruchomieniu. EDIT. Często problemem przy kopiowaniu plików,...
Nie zauwazylem zadnej struktury dla SysTicka poza tymi definicjami. Zajrzyj do core_cm3.h , tam jest gotowa funkcja z CMSIS SysTick_Config(uint32_t ticks) i tam też znajduje się odpowiednia struktura w tym headerze. SysTick jest dostarczany z rdzeniem przez ARM. Dlatego konfigurację NVIC, ITM czy SysTick nie szukasz na stronach producenta mikrokontrolera...
Skąd wziąłeś pomysł na wstawki z FLASH->ACR? Czytam RM0401 Jest dedykowany do tego rozdział: 3.4.1 Relation between CPU clock frequency and Flash memory read time Latency zależy od częstotliwości taktowania oraz napięcia zasilania, tak w skrócie. Co do ustawień zegara dla STM32 to warto zapamiętać sobie schemat działania, który wynika bezpośrednio...
Witam, staram sie wykorzystac karte SD do przechowywania danych uzywanych przez wyswietlacz (bitmapy etc). Korzystam z biblioteki FATfs i komunikacja SPI. Aby moc tego dokonac modul FATfs korzysta z sygnalu zegarowego, ktory co 10ms bedzie wywolywal funkcje [syntax=c]disk_timerproc()[/syntax] Do cyklicznego wywolania tej powyzszej funkcji staram sie...
ja pytam o sposób dostępu do tego rejestru, gdzie znajdę to napisane? Czy mam sam przez podobieństwo próbować czy coś takiego zadziała: DMA->ISR=0x......; ? Czy taka jest zasada? Taka jest zasada. Gdzie te nazwy są zdefiniowane? Większość jest w pliku stm32f10x.h . Jeśli używasz Eclipse, to po prostu trzymając CTRL kliknij w daną nazwę, a otworzone...
jeśli chodzi o inne przerwania od układów peryferyjnych to poza ustawieniem rejestrów tego układu muszę włączyć to przerwanie i czy tu wystarczy funkcja z core_cm3 np. NVIC_EnableIRQ( RTC_IRQn ); tak I dlaczego nie musiałem włączyć globalnych przerwań żeby SysTick działał?;] Przerwanie SysTick jest w grupie exceptions, ich się nie da wyłączyć w NVIC....
SysTimer jest wykorzystywany w FreeRTOS jako zegar systemowy. Ale jeżeli potrzebujesz timera(dla zliczania czasu będącego wielokrotnością zegara systemowego) dla jakiejs innej biblioteki możesz wykorzystać vApplicationTickHook(), gdy tylko masz symbol configUSE_TICK_HOOK zdefiniowany na 1 (plik FreeRTOSConfig.h). Funkcja ta jest wywoływana w przerwaniu...
OK, dzieki użyłem gotowca Nie używaj gotowców w takiej banalnej sytuacji. Doczytaj co to jest ten Systick. W dużym skrócie to licznik 24 bitowy - to ważna informacja, może zliczyć maksymalnie do ok. 16 mln (2 do 24). Po doliczeniu do zaprogramowanej wartości zgłasza przerwanie. Do ustawiania wartości można użyć funkcji Systick_Config(), ale najlepiej...
Jednym z układów jest mikrokontroler STM32F407VGT6, który pełni rolę centralnego kontrolera lotu (Flight Control Unit – FCU). Podstawowe dane techniczne Rdzeń i wydajność CPU: ARM Cortex-M4F (z FPU – jednostką zmiennoprzecinkową) Częstotliwość: do 168 MHz DMIPS: ok. 210 DMIPS DSP: tak, rozbudowane instrukcje DSP Pamięć Flash: 1 MB SRAM: 192 KB (112...
Najprościej będzie po prostu usunąć plik stm32l4xx_it.c z kompilacji skoro i tak nie korzysta z "dobrodziejstw" HALa. Tak radziłem w pierwszym poście ale Kolega ma jakis kłopot z tym. Tak że dałem rozwiazania bez ruszania projektu
Tak to jest jak się z tej ogłupiającej biblioteki korzysta. Zajrzałem do core_cm3.h , tam funkcja SysTick_Config(ticks) przyjmuje postać: static __INLINE uint32_t SysTick_Config(uint32_t ticks) { if (ticks > SysTick_LOAD_RELOAD_Msk) return (1); /* Reload value impossible */ SysTick->LOAD = (ticks & SysTick_LOAD_RELOAD_Msk)...
można jeszcze jedno z definicji ustawić z atrybutem "weak" Po co? ale pewnie wymagałoby to dodatkowego uzasadnienia oraz dodatkowej opcji kompilacji, a właściwie chyba linkera... nie wymagałoby
Witam !!! Uruchamiam projekt https://hackaday.io/project/158256-hover... https://github.com/isabellesimova/Hoverb... Projekt jest napisany na STM 32 W swojej desce mam GD32. Po uruchomieniu błąd systemu zgłasza watchdog /* IWDG init function */ static void MX_IWDG_Init(void) { __HAL_RCC_WWDG_CLK_ENABLE(); hiwdg.Instance = IWDG; hiwdg.Init.Prescaler...
Ta linijka chyba ustawia: [syntax=c]SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk[/syntax] [syntax=c]#define SysTick_CTRL_CLKSOURCE_Msk (1UL << SysTick_CTRL_CLKSOURCE_Pos) /*!< SysTick CTRL: CLKSOURCE Mask */[/syntax] Za pomyłkę przepraszam.
Porównaj: SysTickHandler SysTick_Handler 4\/3!!
Przestawiłem ową interesującą mnie linijkę z (1ul << 2) na: [syntax=c] static __INLINE uint32_t SysTick_Config(uint32_t ticks) { if (ticks > SysTick_LOAD_RELOAD_Msk) return (1); /* Reload value impossible */ SysTick->LOAD = (ticks & SysTick_LOAD_RELOAD_Msk) - 1; /* set reload register */ NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS)...
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.
W main.c czarów nie ma , bo stworzyłem nowy projekt golasa na potrzebę uproszczenia szukania problemu. Nie jestem programistą ani elektronikiem ,a do sprawy podchodzę hobbistycznie jako początkujący. Korzystam z System Workbenach for stm32 + Stm32CubeMX z bibliotekami HAL. Cube szykuje wszystko po czym ja tylko dodaję funkcję HAL_SYSTICK_Callback. plik...
Zapoznaje się z STM32 i jestem na etapie I2C. 1. Jak to jest z tym o czym pisałem w poprzednim poście ? 2. Czy SysTick może zakłócać I2C ? (SysTick ma ważniejszy priorytet)
Witam, Bawię się STM32 już od jakiegoś czasu ale właściwie nigdy nie potrzebowałem jakiś super prędkości. Teraz chciałem napisać prostą funkcję do sterowania WS2812b i natknąłem się na dziwny, moim zdaniem, problem. Pomimo, że Timery działają szybko to zwykłe przełączanie pinu (funkcja HAL_GPIO_WritePin) działa niemiłosiernie długo. Najprostszy program:...
Witam, Próbuje skomunikować ze sobą STM32F4 z Arduino UNO po UARTcie. Skonfigurowałem UART1 i płytka komunikowała się bez problemu z Arduino. Lecz do mojego projektu potrzebna jest komunikacja przez UART2 (piny PA2-TX i PA3-RX), po skonfigurowaniu UART2 i podłączeniu do do Arduino nie mogę odczytać żadnych danych. Jeżeli podłącze UART1 z UART2 na płytce...
może popatrz na to: https://stm32.eu/2012/04/11/timer-systic... Nie mam doświadczenia z STM32. Moja odpowiedź raczej dotyczyła licznika 4-bitowego.
Tak czytając ten fragment odniosłem wrażenie że omawiasz opóźnienie związane z reakcją na przerwanie, a nie na reakcje samego wątku. Chodzi o opóźnienie reakcji na "zdarzenie odblokowujące wątek". Przykładowo wątek A czeka na semafor, wiec jest w stanie "zablokowanym". Teraz następuje zdarzenie - semafor zostaje "ustawiony" (przez przerwanie lub przez...
Poczytaj w dokumentacji, sprawa jest tam poruszona. SysTick i PendSV mają być na najniższym, a inne przerwania - które używają funkcji RTOSa - nie mogą mieć wyższego priorytetu (niższego numerka) niż configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIO... lub configMAX_SYSCALL_INTERRUPT_PRIORITY. Obstawiam, że jedna z tych wartości nie jest używana i w ogóle jest...
[syntax=c] #include "stm32f10x_conf.h" #include "stm32f10x_gpio.h" #include "stm32f10x.h" #include "stm32f10x_rcc.h" #include "stm32f10x_flash.h" #include "misc.h" #include "stm32f10x_exti.h" #include "stm32f10x_flash.h" #include "integer.h" //#include "rtc.h" #include "diskio.h" #include "ff.h" #include "ffconf.h" #include "stdio.h" //------- Pin Defs...
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...
Myślę że mocno przeceniasz xmegi. Myślę, że nie. W zasadzie konfigurowalność GPIO w xmega chyba jest nawet lepsza niż w STM32. ADC oczywiście, STM32 w niektórych można użyć interleaved mode i mieć powielony sampling rate. Tego xmega z tego co kojarzę nie ma i raczej mieć nie będzie. Ale tu ~2msps, tam ~2msps per ADC, tu 12 bit, tam 12 bit. Jak dla...
Witam Jestem początkującym w temacie FreeRTOS i mam parę problemów ze zrozumieniem działania tego systemu. Jeśli mam jakąś obsługę przerwania i w czasie jego wystąpienia ustawiam semafor na który czeka jakieś zadanie o niskim priorytecie (albo nie najwyższym) to po wyjściu z tego przerwania to zadanie będzie niezwłocznie wykonywane czy system poczeka...
Rzeczy, które zaznaczyłeś - to stałe zdefiniowane na podstawie lektury manuala - wartości bitów włączających odpowiednie tryby pracy peryferiali. MODER. A to nie powinno być zdefiniowane w pliku "stm32f0xx.h" aby wykorzystać w kodzie programu? Opis, który wkleiłeś plus opis bitów w rejestrach daje komplet informacji potrzebnych do zaprogramowania timera....
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-...
Sam main.c raczej nic nie da ale proszę. /** ****************************************... * File Name : main.c * Description : Main program body ****************************************... * This notice applies to any and all portions of this file * that are not between comment...
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ść...
Witam Mam problem z płytką portem usb w trybie cdc (inne też nie działają) w stm32 z bibliotekami HAL. Próbowałem go uruchomić (używam płytki stm32f429i-disco) ale komputer wogóle nie widzi że został podłączony. main.c [syntax=c] /** ****************************************... * File Name : main.c * Description : Main...
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...
Dzień dobry! Przycisk podpięty do płytki mam w/g schematu: http://arduino.cc/en/uploads/Tutorial/bu... Kod mojego maina: #include <stm32f10x_gpio.h> #include <stm32f10x_rcc.h> #include "stm32f10x_flash.h" #include "misc.h" /* Scheduler includes. */ #include <stdio.h> #include "FreeRTOS.h" #include...
Witam, od kiedy zacząłem porządkować kod, korzystając z funkcji mój program zaczął się źle wykonywać. Dotychczas kod był nie wielki więc wszystko robiłem na if'ach, zaczął się rozrastać więc w systicku zostawiłem if'y ale całe obliczenia do wykonania oraz wysyłanie dałem do oddzielnej funkcji (wysyłanie jest też poprzez wywołanie następnej funkcji)....
Witam! Mam kłopot z uartem w stm32. Wysyła ok, wchodzi w przerwanie od rx uarta i odczytuje jego DR zapisując do tablicy i zwiększając wskaźnik do tablicy żeby był gotowy na następne przerwanie ale ono właśnie nie wystepuje pomimo, że następny bajt przychodzi uartem. Systick co 100ms inicjuje wysłanie zapytania do zewnętrznego urządzenia i urządzenie...
Witam, Mam problem z komunikacją STM32 z komputerem. Moja płytka to STM32L-Discovery [url=http://www.st.com/internet/evalboar... Chciałem napisać sobie najprostszy program do komunikacji z komputerem. Jak na razie nic nie działa. Pisałem program z pomocą książki "Mikroprocesory STM32 w praktyce" Krzysztofa Paprockiego. Musiałem...
Przepraszam , że nie dokończyłem wczoraj ale przysnołem. Nie poszło tak prosto bo nie otrzymuje zapisu na kartę , cały program kompiluje się mi w porządku tzn otrzymuje hex -a, zadaniem poniżej przedstawionego programu jest tylko odczyt jednej wartości z wejścia adc1 oraz zapisanie jej na karcie do pliku o nazwie plik, poniżej przedstawiam listing z...
Dla CM3 interrupt latency wynosi 12 cykli i może być zaimplementowane do 256 priorytetów przerwań. Stellarisy mają zaimplementowane 8, STM32 ma ich 16, a LPC17xx ma ich 32. I nie ważne z kiedy ten dokument jest, jest nieaktualny. [url=http://ep.com.pl/files/2085.pdf]Lin... Wtedy był jeszcze na papierze, ale dokumentacja do rdzenia była dostępna. w tym...
Cześć, czy ktoś z Forumowiczów trudził się z usypianiem mikrokontrolera w zadaniu Idle? Mój problem wygląda następująco: podmieniłem przerwanie dla ticku systemowego z timera SysTick na przerwanie od alarmu RTC. W Idle Hook chcę wprowadzić uC w tryb uśpienia Stop. Na moje oko uC powinien się sam wybudzić po wystąpieniu przerwania od alarmu, a nie robi...
witam ponownie, po dłuższym czasie walczenia z uruchomieniem mikrofonu i odtworzeniem nagranego dźwięku niestety nie udało mi się osiągnąć zamierzonego celu. Po poszukiwaniach w internecie znalazłem pomoc na forum ST pewnego użytkownika jednak również po jego instrukcjach występuje kilka błędów. Instrukacja zgodnie z którą próbowałem uruchomić mikrofon...
BlueDraco-> Dobra uwaga, dzięki. Często faktycznie jak jakiś problem mnie przerasta to go przeskakuje... Wierząc ,że w międzyczasie sam się rozwiąże. Na Keilu pracowałem na funkcjach HAL( Na uczelni również pracujemy na nich niestety...) , które są kombajnami. A mnie na razie wystarczy kosa... Ale jak widać i z nią mam problemy... Wcześniej ustawiłem...
Cześć, od 2 dni zmagam się z modułami NRF24L01 i dwoma płytkami STM32. Płytki STM32 NUCLEO L053R8 i STM32F103 wykorzystujac biblioteki HAL i cubemx. Niby oba układy zwracają poprawne rejestry : https://obrazki.elektroda.pl/1575646300_... Ale sama komunikacja w sobie nie działa. Nie odbieram żadnych pakietów. PYTANIE - czy w biblioteka...
Mikrokontroler to STM32F439 Płytka samoróbka, bo niestety w discovery nie można wykorzystać do ETH. Jeśli chodzi o konfigurację zegara to wykorzystuję do tego program STM32CUBEMX. Tam jeśli coś wykracza poza jakiś zakres do jest zaznaczane na czerwono i nie można wygenerować kodu, dlatego wydaję mi się że konfiguracja raczej "ale nie na pewno" jest...
systick stm32 stm32 delay systick stm32 systick delay
silnik przyspieszać kopcić czarny onkyo cykanie układ sterowania zaworem
Fender Bassman brak lampy 5AR4 – czy wzmacniacz zagra bez prostownika? Tanie programy do dopisywania transponderów IMMO