Rozumiem, ze jak mam 3 zadania/watki/taski, to bajer polega na tym, ze wszystkie zmienne uzyte w danym watku, sa zrzucane/zapamietane - kontekst. Dotyczy to tylko zmiennych automatycznych. Zmienne statyczne są "wspólne" (istnieje tylko jedna kopia, niezależnie od ilości wątków). A co jak sie zadeklaruje jakas tablice TAB Generalnie nie da się zadeklarować...
[syntax=c]//volatile uint32_t count; int main(void) { volatile uint32_t count, count_max = 10000000; fpu_enable(); pll_start(CRYSTAL, FREQUENCY); stm32f429discovery_SDRAM_init(); gpio_pin_cfg(LED_GPIO, LED_pin, GPIO_OUT_PP_25MHz); while (1) { for (count = 0; count < count_max; count++);// delay LED_bb = 1; for (count = 0; count < count_max; count++);//...
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...
Na pewno funkcja delay zlicza takty zegara? Jak ona wygląda? Wykorzystałeś jakiś timer, przerwanie, pokaż ją.
Witam, Mam problem z obsługą wyświetlacza 128x64 zgodnie z ks0108 na mikrokontrolerze STM32F4 . Po poprawnym przyłączeniu do układu wyświetlacza, zabrałem się za oprogramowanie tego mikrokontrolera. Mój schemat podłączenia wyświetlacza wygląda tak : RS (Di) - PB1 R/W - PE7 E - PE9 CS1 - PB2 CS2 - PE8 RST - PE10 Data - PA0 do PA7 I mam sterownik: [syntax=c]...
Witam. Oto mój kod: while (!(ADC1->SR & ADC_SR_EOC)); Zgodnie z moimi wyszukiwaniami na temat bitu ADC_SR_EOC : This bit is set by hardware at the end of the conversion of a regular group of channels. It is cleared by software or by reading the ADC_DR register. Czyli DMA w momencie odczytania wartości z rejestru DR także kasuje...
... Kod producenta wygląda następująco: 1. Nie wiem czego producentem jest autor takiego interfejsu i2c, ale radziłbym tego nie kupować i unikać jak ognia. Ten delay to już jakaś patologia :/ 2. Na pewno nie jest to kod producenta mikrokontrolera (ST), bo ten jest znany i ogólnie dostępny. 3. Jeżeli chcesz się dogadać z układem, to wykorzystaj sprzętowy...
Witam Odbierając dane w stm32 nie udało mi się zgubić żadnej danej nawet jak dam po każdym odebranej ramce 50ms Delay na testy. Max Transmisja jaką miałem to 4Mbit Akurat używam TCP to przesyłania programu wykonywalnego do STM32. Mam telegramy które wysyłam z PC do STM32 a on na nie odpowiada. Zapytania i odwiedź mam na jednym porcie Chciałem teraz...
Witam. Mam taki problem z którym walczę od ponad tygodnia. Posiadam wyświetlacz 3.2cala LCD TFT ze sterownikiem SSD1289. Chcę go podłączyć pod płytkę DISCOVERY STM32F4 (uC F407). Myślę, że płytka dobrze znana. Wyświetlacz pochodzi z płytki Landtiger z LPC1768. Jednak odrzuciłem prace na lpc. STM jak dla mnie ma lepiej i bardziej zrozumiale napisane...
Witam Od kilku dni staram się uruchomić pewien tajwański tani szmelc o nazwie HY_TFT320_262K ze sterownikiem (rzekomo) ili9320. Problem w tym, że cała dokumentacja i przykładowe programy, które do niego dostałem są w krzaczkach lub całkowicie nie dotyczą mojego modelu wyświetlacza. Stąd swoją wiedzę i większość kodu czerpię z odmętów internetu i staram...
Witam ponownie Na początek sugerowałbym przetestować samą poprawność działania SPI, można np. zapętlić MISO z MOSI. Albo odczytywać z peryferiala rejestr ID. Dopiero w następnym etapie uruchamiać obsługę właściwą. Nie analizowałem Twojego programu ale podeślę mój 'bliźniaczy' i działający na STM32F429_DISCO, odczytuje on i wyświetla rejestry GYRO L3GD20....
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...
Musiałem na pewien czas odłożyć problem, jednak teraz powrócił. Dziękuję za wszystkie odpowiedzi. W dalszym ciągu nie udało mi się rozwiązać do końca problemu. Jaką wartość mam wpisać do rejestrów TIM1->CCR4 i TIM8->CCR2 aby pomiar ADC wykonywać dokładnie w wierzchołku trójkąta tzn. połowie zliczania timera (0-ARR ARR-0). Chodzi mi dokładnie o to, że...
Witam ostatnio dostałem wyświetlacz HY28a (ILI9320). Od tygodnia próbuje coś na nim wyświetlić lecz bez skutecznie. W internecie znalazłem kod pod LPC, doszedłem do wniosku że po lekkich modyfikacjach powinno zadziałać na stm32f4 discovery. Poniżej przedstawiam kod pod LPC na którym się bazuję. [syntax=c]/*****************************...
Witam Mam problem z pamięcią SDRAM. Ustawiona jest wedle zmodyfikowanego lekko przykładu ze strony en.radzio.dxp.pl (porty definiowane innymi funkcjami). Wyglada to aktualnie tak: sdram.h [syntax=c]#ifndef SDRAM_H_ #define SDRAM_H_ #include "inc/stm32f4xx.h" // SDRAM base address for Bank 2 #define SDRAM_BASE 0xD0000000 // SDRAM size is 8MB #define...
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...
Zwiekszylem stos do 4096 lecz dalej się wywala może coś źle skonfigurowalem LcdConf.c [syntax=c]/*****************************... * SEGGER Microcontroller GmbH & Co. KG * * Solutions for real time microcontroller applications * ****************************************... * * * (c) 1996...
Chciałem zobaczyc jak mikroprocesor działa na full szybkości bez delay'i. No i zobaczyłeś :) Przeskok z końca while(1) na jej początek też musi potrwać. Przeanalizuj program na debuggerze w trybie krokowym to zobaczysz skąd te przerwy.
No i ten "delay" na pętli for... 4\/3!!
Można timer zatrzymywać i startować po ustawieniu TIM3->CNT i time_ms. Ja także staram się zawsze mieć odpowiednią rozdzielczość argumentu, tak aby nie używać np. delay_us(3); ale delay_ns(3000); itp. dzięki temu błąd +- 1 nie ma znaczenia (poza czasami krytycznymi np. do pomiarów itp.).
Hmmm... U mnie ten projekt po rozpakowaniu się skompilował od razu, nawet nie otworzyłem Makefile żeby zobaczyć co w nim jest... [syntax=bash]>make Assembling file: startup.S arm-none-eabi-gcc -x assembler-with-cpp -c -mcpu=cortex-m4 -mthumb -mfloat-abi=h ard -mfpu=fpv4-sp-d16 -ffast-math -g -ggdb3 -Wa,-amhls=out/startup.lst -DSTM32F 4XX -MD -MP -MF...
Witam, Mam problem z zainicjalizowaniem SPI dla kodeka VS1011. Mam już zainicjalizowanego SPI da karty SD i tam działa bez zarzutu, jednak po tym samym SPI kodek nie chce ze mną wogóle gadać. Poniżej zamieszczam fragment inicjalizacji moje SPI, zgóry dziękuje za pomoc. void SPI_SD_Init( void ) //inicjalizuje SPI dla SD i MP3 { RCC->AHB1ENR |= RCC_AHB1ENR_GPIOEEN;...
Witam, od dłuższego czasu walczę z tym problemem i nie potrafię znaleźć rozwiązania. Mam projekt, który pochodzi z anglojęzycznego tutoriala: [url=http://www.mind-dump.net/configurin... Wrzucony do Keila i skompilowany działa jak powinien. Problem w tym, że próbuję przenieść go na wykorzystanie bibliotek HAL, z których...
Witam, Wczoraj przyszedł mój niedawno zakupiony STM32F4Discovery. Do programowania wybrałem CooCoxa 1.7.5 (ToolChaina oczywiście załadowałem). Zabawę zacząłem od napisania prostego programu migającym naprzemiennie diodami: #include <stm32f4xx_rcc.h> #include <stm32f4xx_gpio.h> void Delay(void) { volatile uint32_t i; for (i...
Działa bez problemu (F446RE) [syntax=c] GPIO_InitStruct.Pin = GPIO_PIN_0; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_OD; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); while(1) { HAL_GPIO_WritePin(GPIOC, GPIO_PIN_0, GPIO_PIN_SET); HAL_Delay(2000); HAL_GPIO_WritePin(GPIOC, GPIO_PIN_0,...
Dzień dobry, Pracuję nad projektem dotyczącym pomiaru temperatury za pomocą czujnika DS1820 i wyświetlaniem jej na wyświetlaczu z użyciem STemWin. Na razie testowałem te moduły osobno w osobnych projektach - działanie STemWin na przykładowym projekcie dołączonym do paczki STMCube i DS1820 na projekcie ze strony "stm32f4-discovery.com/2014/05/13-readin...
Okej, zatem spróbujmy przystosować bibliotekę, którą mi podlinkowałeś do moich ćwiczeń ;-) Skopiowałem pliki EVE.h, EVE_commands.c, EVE_commands.h, EVE_config.h, EVE_target.c, EVE_target.h do odpowiednich folderów w projekcie. Teraz tak: W pliku EVE_target.h trzeba wybrać i włączyć jedną z konfiguracji. Jeśli dobrze myślę to mnie interesuje ta konfiguracja,tak?...
Pokaż jeszcze tą magiczną funkcje _delay_ms() (najlepiej wraz z assemblerem). Przy okazji: FMC_NORSRAMInitTypeDef FSMC_NORSRAMInitStructure; FMC_NORSRAMTimingInitTypeDef FSMC_NORSRAMTimingInitStructure; Jeśli nie jesteś 100% pewny, że "wypełniłeś" _WSZYSTKIE_ istniejące pola tych struktur, to powinny być one zainicjalizowane zerem ("... = {0};"), albo...
Podałem kod czekania z delayem poniżej ale zdaje się tu jest całkiem inny problem... Nie związany z rejestrami [syntax=c]i =0 while(((PWR->CR & PWR_CR_DBP) == 0) && (i++<10)) Delay(1);[/syntax]
Najprościej można zorbić delay na tim Pogratulować pomysłu.
[syntax=c] RCC->AHB1ENR |= RCC_APB1ENR_PWREN; /* zapis do AHB1ENR zamiast APB1ENR */ /* brak opóźnienia, patrz errata 2.1.13 Delay after an RCC peripheral clock enabling */ PWR->CR |= PWR_CR_DBP;[/syntax]
Wyłączenie optymalizacji to będzie raczej ficzer kompilatora, nie języka. W GCC jest jakiś atrybut, który pozwala zdefiniować poziom optymalizacji dla konkretnej funkcji - coś w stylu NOP does nothing. NOP is not necessarily a time-consuming NOP. The processor might remove it from the pipeline before it reaches the execution stage. Please note that...
Witam. Posiadam STM32F4-discovery, do którego chciałbym podłączyć kartę SD poprzez interfejs SDIO. [syntax=c]#include "stm32f4xx.h" // Device header int main(){ //////////////// SDIO ////////////////// // USED: // PORTC -> AF12 -> PC[12:8] // PORTD -> AF12 -> PD[2] ////////// GPIO CONFIG ////////// ///// Enable clock for SDIO ports RCC->AHB1ENR...
Hej, dzieki za odpowiedź. Wklejam kod, powycinałem części odpowiedzialne za komunikację po rs232, żeby nie zaciemniać, myślę że nie mają wpływu na resztę kodu. suma_x to zmienna typu uint32_t [syntax=c]#include <stm32f4xx.h> #include <misc.h> // I recommend you have a look at these in the ST firmware folder #include <stm32f4xx_usart.h>...
Ja mam taką funkcję od opóźnienia zrobionego na podstawie SysTick'a, nawet działa. Korzystam z niej podczas komunikacji 1wire i wszystko pięknie śmiga. W funkcji delay_init( 168 ); wpisujesz częstotliwość zegara w MHz np. dla STM32F4. [syntax=c_loadrunner]#include "../lib/stm32f0xx.h" #include "delay.h" static uint8_t fac_us = 0; void delay_init( uint8_t...
A delay between an RCC peripheral clock enable and the effective peripheral enabling should be taken into account in order to manage the peripheral read/write to registers. This delay depends on the peripheral’s mapping: - If the peripheral is mapped on AHB: the delay should be equal to 2 AHB cycles.
A jeśli zmniejszysz wartość tego paskudnego delay np do 40000 z odkomentowanymi liniami to jak się program zachowuje?
To ja wklejam swoje, co mam: Inicjalizacja SPI, GPIO i PWM dla podswietlenia: [syntax=c] //--------------------------------------... void LCD_Configuration(void) { RCC->APB2ENR |= RCC_APB2ENR_SPI1EN; SPI1->CR1 = SPI_CR1_SSM | SPI_CR1_SSI | SPI_CR1_MSTR | SPI_CR1_SPE; //SPI1->CR1 |= 0b0000000000011000; GPIO_Config(GPIOA,5,AFPP_OUTPUT_50MHZ);/...
Nie dodawałem struktury oraz tablicy do której jest odwołanie w pętli, bo jest spora i nie jej problem dotyczy. [syntax=c]#include "stm32f4xx.h" static volatile uint16_t wyniki[3]; static void MX_DMA_Init(void); static void MX_ADC1_Init(void); while (1) { DP[0].wartosc = 5.f*(wyniki[0])/4096; } static void MX_ADC1_Init(void) { RCC->APB2ENR |= RCC_APB2ENR_ADC1EN;...
Wiem, że ogarnięcie ARM i jednocześnie C może być trudne, ale ja chciałbym na początek zrozumieć chociaż miganie diodą, a tu się okazuje, że to nie takie proste;-) To jest bardzo proste. Po prostu w AVR by migać diodą robisz 1 include io.h (no dobra, 2, bo jeszcze util/delay.h), ustawiasz 1 flagę kompilatora (np. -mmcu=mega8) i definiujesz jedną wartość...
Witam, Z tego co ja zdążyłem zauważyć (u siebie), problem może wynikać z miminalnego czasu "inactive time" czyli 50ns pomiędzy transmisjami (CSN 1). Zważywszy, że w przypadku STM32F4 szybkość wykonywania instrukcji jest kilkukrotnie (co najmniej) szybsza, powoduje to naruszenie czasu, jaki staruszek nRF potrzebuje na otrząśnięcie się po ostatniej transmisji,...
Dla danych do których dostęp jest nie tylko z poziomu programu, lecz realizowany także przez sprzęt, w tym przypadku DMA, volatile jest obowiązkowe, bo kompilator nie wie, że tablica dane jest gdzieś jeszcze wykorzystywana, więc z punktu widzenia optymalizacji zapis do niej w pętli, po wywołaniu HAL_UART_Transmit_DMA nic nie robi, więc optymalizator...
A ta funkcja do wysyłania stringa korzysta z RTOSa? Bo jeśli tak, to raczej cieżko przypuszczać żeby się wykonała gdy task w którym występuje problem i ma wyższy priorytet jest w nieskończonej pętli... Jeśli nie masz debuggera, to lepszą opcją zamiast nieskończonej pętli byłoby coś na styl vTaskDelay(portMAX_DELAY); 4\/3!!
Witam! Otóż moje następujące pytania: Czy to, co tutaj jest napisane ma prawo działać prawidłowo? Głównie mi chodzi o to, czy jest to w miarę dobrze zaprogramowane( aktualnie brak możliwości sprawdzenia, z powodu braku rezystora). Drugie pytanie, jeżeli mam funkcje USART_puts, jak zrobić, by temperatura zostawała przekazywana właśnie przez tą funkcję?...
Witam, Zaprojektowałem płytkę PCB z procesorem STM32F405RGT6, w fazie projektowej postanowiłem, że do wgrania programu na procesor użyję bootloadera. Po zlutowaniu podłączyłem procesor pod komputer, uruchomiłem program "Flash Loader Demonstrator", wgrałem mu następujący program: #include <stm32f4xx_gpio.h> #include <stm32f4xx_rcc.h> GPIO_InitTypeDef...
Tak jest na nucleo 3,3V ale zasiliłem 5V, ponieważ w nocie INA jest Vs w granicach 3-5,5V więc myślałem, że to bez znaczenia jakie napięcie podam, ważne żeby w tym przedziale. Usunę Delay oraz zmienię Timeout na 100. Czy może powiedzieć mi jak sprawdzić to HAL_OK ?
Witam. Po ogarnięciu portów i/o chciałem przejść do konwersji ADC. Początkowo zakładam, że nie korzystam z przerwań, nie korzystam z DMA. Screeny z Cube: http://obrazki.elektroda.pl/6506556500_1... http://obrazki.elektroda.pl/5974943000_1... http://obrazki.elektroda.pl/2033015600_1... Plik main: /** ****************************************...
Przejrzałem jeszcze raz cały kod i nigdzie nie znalazłem błędu. Wydaje mi się że w przypadkowym fragmencie pamięci nie byłoby za każdym razem takich pasów poziomych. Dodałem jeszcze przed wykonaniem zdjęcia ustawienie wartości przesłony na 2000 ale także to nic nie pomogło. [syntax=c] MT9D111_WriteReg(PAGE_SELECT_REG, 0x0); // Select Page 0 - Sensor...
Udało mi się skompilować kernela w wersji 6.7(https://github.com/maniekx86/linux_m... Trochę zabawy z tym było, bo najpierw próbowałem 6.1 jak z tego filmiku, ale się nie chciał skompilować za pomocą gcc 12.2. Wogóle pierwszy raz coś robiłem z architekturą MIPS. Zawsze dla mnie to był archaizm, którego nigdy nie spotkałem....
Najpierw ustawiasz pracowicie wszystko (już pomijam dwukrotne włącznie w RCC - dla pewności?), aby potem: RCC->APB1RSTR |= RCC_APB1RSTR_SPI2RST; delay_ms( 10 ); RCC->APB1RSTR &= ~RCC_APB1RSTR_SPI2RST; Genialne... Czytałeś w ogóle do czego jest ten rejestr i te bity? 4\/3!!
stm32f4 funkcja delay delay pamięć delay pamięć funkcja delay
naprawa biosu compaq programowanie pilotów alarmu skoda maksymalna długość przewodu
Falownik Focus błąd 197 - przyczyny i rozwiązania Napięcie w gniazdku w piwnicy po założeniu zabezpieczenia