Nie ma przypadków, proszę o wyjaśnienie, i jak mogę zrobić, żeby moja metoda zadziałała? Jedynym rozwiązaniem jest globalne txt? Przypadek bo stos ci tego nie nadpisał. A o static słyszałeś?
Autor wątku w dziale "początkujący" zadał pytanie o podstawy języka. Po 10 postach mamy już wspomniane atrybuty gcc, "pragmy" kompilatora, wskaźniki na funkcje, zamieszanie związane z słówkiem "inline", sugestie że kompilatory czasem robią wyjątkowo dziwne rzeczy (choć wiadomo że w tym przypadku autor używa gcc). Czekam aż ktoś napisze coś o undefined...
https://www.google.pl/search?q=stm32+uar... Pierwszy link: http://www.st.com/st-web-ui/static/activ... To na prawdę nie są super tajne informacje dla elit ;)
Początek programu FreeRtos wygląda tak: /* Private define ----------------------------------------... #define LED_TASK_STACK_SIZE ( configMINIMAL_STACK_SIZE ) #define LCD_TASK_STACK_SIZE ( configMINIMAL_STACK_SIZE ) #define USART_TASK_STACK_SIZE ( configMINIMAL_STACK_SIZE ) #define LED_TASK_PRIORITY ( tskIDLE_PRIORITY + 1 ) #define...
Witam, Próbuję pożenić template Freddiego (stm32_blink_led) z StdPeriph z racji, że pracuję pod Linuxem i jest to chyba jedyny template jaki działa :) Problem pojawia mi się przy próbie wywołania przerwania od USART1. W pewnym fragmencie kodu ustawiam flagę przerwania: USART_ITConfig(USART1, USART_IT_TXE, ENABLE); Kod obsługi przerwania jest...
Spróbuj te zmienne zadeklarować jako static xHandleTaskLED1, xHandleTaskLED2, xLastFlashTime
Ma jednorazowo wykonać przesłany kod? Zachować go po utracie zasilania? Jeśli tak to IAP [url=http://www.st.com/st-web-ui/static/... [url=http://www.st.com/st-web-ui/static/...
U ST to się chyba nazywa FSMC. (...) Nie wiem na ile musisz pozostać przy ST, LPC sobie radzą z DRAM. STM32F4x9 obsługują DRAM - tam interfejs nazywa się FMC, znikło "S" od "static". Pozdrowienia, m.ki
Przecież na stronie CooCox.org jest [url=http://www.coocox.org/downloadfile/... CoOS User's Guide, a w nim prosty i uniwersalny przykład. Wrzucasz to jak zwykłą bibliotekę, bez specjalnych Makefile. Prosty schemat wykorzystania CoOS, wszystko masz wytłumaczone w manual'u: [syntax=c]// CoOS library // #include "OsConfig.h"...
Masz tu brzydki ale skuteczny delay na Cortex, specjalnie do LCD. Liczba NOPów powinna być o jakieś 3 mniejsza od połowy częstotliwości wyrażonej w MHz: [syntax=c]static void delay500ns(void) { __NOP(); __NOP(); __NOP(); __NOP(); __NOP(); __NOP(); __NOP(); __NOP(); __NOP(); __NOP(); }[/syntax]
Wtedy nie byłoby warninga. Zresztą nawet wtedy umieszczanie w nagłówku deklaracji ze słówkiem "static" jest bez sensu.
int TDelay wyciągnij jako zmienną globalną. Za każdym razem, gdy SysTick wejdzie do przerwania ją tworzy, a to bez sensu, co? :) w końcu nigdy nie doliczysz do 500, skoro będziesz cxo chwile tworzył tą zmienną. wystarczy dodać "static".
Jeśli zmiana rozmiaru buforów powoduje że program przestaje działać oznacza to że prawdopodobnie kończy się pamięć na stosie. Kilka rozwiązań jest. 1. zwiększyć stos 2. zdefiniować bufory jako static albo zmienne globalne wtedy nie trafią na stos 3. jeżeli idea projektu na to pozwala podzielić odczyt na mniejsze paczki i zapisywać po trochu(używając...
Jeśli ma być tak jak ty to opisujesz to wywołanie powinno tak wyglądać static void VtaskINT1( void *pvParameters ) { xSemaphoreTake(xBinarySemaphore,0... while(1) { xSemaphoreTake(xBinarySemaphore,port... // Tutaj twój kod do wykonania } } lub static void VtaskINT1( void *pvParameters )...
I czemu Ty na miłość boską wkładasz całą funkcję w header ? To właściwe miejsce na funkcję "static inline" Albert
A mi się najbardziej podoba pierwsza instrukcja, która włącza HSI. Bez niej procesor w ogóle nie mógłby działać, bo nie ma źródła zegara. Ciekawe, jakim cudem w ogóle ją wykonuje... :) Kod poniżej robi to, o ci Ci chodzi - jak widać, wystarczy 9 zapisów do rejestrów, żeby skonfigurować porty i timer. Nie przezsadzaj z tymi operacjami logicznymi... [syntax=c]...
Sygnał REF_CLK powinien być generowany przez cały czas, gdy chcesz mieć aktywny interfejs Ethernet. Najpierw konfigurujesz układ MAC (zegary, typ interfejsu MII/RMII), następnie aktywujesz taktowanie PHY za pomocą REF_CLK. Gdy zamienisz kolejność (najpierw taktowanie PHY, później ustawiasz w STM interfejs MII/RMII) to program zawiesi się w pętli: [syntax=c]...
Wlasnie zobaczlem: SystemInit z tego co widziałem to już nie ma żadnej funkcji. Mam pytanie odnośnie do funkcji SystemInit(). Sa jakieś wskazówki, jak taka funkcje sie tworzy? Aby to zrobić świadomie?
Proszę bardzo! Wersja minimalna - zapamiętywanie jednej zmiennej na F0. No fakt, aż 36 wierszy. Funkcja getmode() odtwarza ostatnią wartość zmiennej przy starcie, Funkcja storemode() zapamiętuje nową wartość. W tym konkretnym przypadku jest ona wołana z przerwanie zaniku zasilania, więc wartość zapamiętuje się tylko jeden raz w cyklu pracy urządzenia....
Witam. Spadek napięcia jest 0,8 ÷ 1,5V 7 10 mA "Input diode static forward voltage" : http://measure.feld.cvut.cz/groups/edu/o... Alternatywnie można polaryzacją bazy (np. 0,4V) podnieść wrażliwość, no tu nie trzeba. H.
GrzegorzKostka Zadeklarowałem static volatile uint32_t get_counter poza przerwaniem (jako zmiennęglobalną). Ale jak widać na zdjęciu, rejest CCR1 = 0. Powinien mieć inną wartość niż zero.
Możesz. Tylko funkcja static ma zasięg ograniczony do 1 pliku.
static void NVIC_Configuration(void) { NVIC_InitTypeDef NVIC_InitStructure; /* Configure one bit for preemption priority */ NVIC_PriorityGroupConfig(NVIC_Priori... /* Enable the RTC Interrupt */ NVIC_InitStructure.NVIC_IRQChannel = RTC_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemp... = 1; NVIC_InitStructure.NVIC_IRQChannelSubPri...
Przykładowo dla STM32F103: [syntax=c]static void GLCD_FSMCConfig(void){ FSMC_Bank1->BTCR[0] = FSMC_BCR1_MWID_0 | FSMC_BCR1_WREN;/* Control Register, BCR1 */ FSMC_Bank1->BTCR[1] = 0x0a | (0x0a<<8); /* Timing Register, BTR1 */ FSMC_Bank1E->BWTR[0] = 0x0fffffff; /* Write timing register, BWTR1 */ FSMC_Bank1->BTCR[0] |= FSMC_BCR1_MBKEN;...
Próbuje mierzyć częstotliwość sygnału wykorzystując przerwanie i Timer2 Napisałem taki oto kod przy pomocy CubeMX: 249992 Hz i niby ok. Jednak znalazłem kurs STM32 na FORBOT ( 249986 Hz. I teraz nie wiem czy prawidłowo należy skonfigurować timer do tego zadania tak jak zrobiłem czy tak jak w kursie?
[syntax=c]class Foo { public: static constexpr char *Name = const_cast<char*>("asdfg"); };[/syntax]
Chciałbym podzielić się swoim tworem... Ja jestem głęboko uczulony na zasłanianie standardowych identyfikatorów. Trochę to bronisz 'static', ale to nie jest dobra praktyka.
W stosie, który wykopałem ze źródeł mam: [syntax=c]STATIC USHORT usUtlCRC16GetTab( UBYTE ubIdx ) { USHORT usCRC16; USHORT usC; UBYTE i; usCRC16 = 0; usC = ( USHORT ) ubIdx; for( i = 0; i < 8; i++ ) { if( ( usCRC16 ^ usC ) & 0x0001 ) { usCRC16 = ( usCRC16 >> 1 ) ^ 0xA001U; } else { usCRC16 = usCRC16 >> 1; } usC = usC >> 1; }...
(at)miszcz310 jednak widzę, że lubisz się katować. Jakoś przywykłem do pisania w atomie lub vimie i tylko zmapowanymi klawiszami myk. Zainstaluj sobie np. https://marketplace.eclipse.org/content/... i masz vim-a w eclipse. Ale jeżeli już naprawdę chcesz to debugować to wydrukuj sobie informacje dwarf (dwarfdump-em np), zobacz czy te symbole...
Jest gdzieś skrótowa dokumentacja do ustawień CubeMX, aby zaczynający programista się nie zniechęcił? Nawet jeśli korzystasz z CubeMX to zacznij najpierw od jakiejś literatury. "Poradnik Szczywronka" takie rzeczy dość łopatologicznie tłumaczy tzn. podstawy działania timerów (i nie tylko). Na pierwszym zrzucie mamy włączony OPM na drugim wyłączony....
[syntax=c]/** ****************************************... * File Name : main.c * Date : 29/04/2014 14:07:00 * Description : Main program body ****************************************... * * COPYRIGHT(c) 2014 STMicroelectronics * * Redistribution and use in source and binary forms,...
funkcja main zawiera tylko nieskończoną pętlę z definicją zmiennej, aby sprawdzić, czy debugger zatrzyma się na zaznaczonym breakpoincie, niestety tak się nie dzieje. Zdefiniuj zmienną static albo globalną, z atrybutem volatile lub wyłącz optymalizację.
Bo lokalne są odkładane na stosie w trakcie działania programu. To co Ty próbujesz zrobić to wpisać zmienną lokalną w stałe miejsce w pamięci co nigdy nie występuje i jest to bez sensu :) Chyba, żeby była static, co też jest trochę bez sensu.
Witam, Kolego atom1477 z ciekawości uruchomiłem Twój projekt, z tym że zmodyfikowałem tak main-a, że najpierw wypełniam ALGO_TAB jakimiś tam danymi, a później jednorazowo kasuję sektor i te dane zapisuję do FLASH-a i u mnie działa zawsze ok, niezależnie od poziomu optymalizacji. Nie chciało mi się już robić jakiegoś porównywania danych, to co zapisuję...
Zacznij od opisania formatu danych. Po czym odbiorca ma poznać, że zakończono przesyłanie liczby? Tego ne napisałeś powyżej. Odbiór łatwo zrobisz w przerwaniu, pisząc obsługę przerwania w konwencji automatu. Najpierw poczytaj, co oznacza poprzednie zdanie. Potem możesz zacząć pisać automat. Potrzebne tylko dwa stany: - oczekiwanie na 'L' - skanowanie...
zujnik jest podłączony bez rezystorów wzmacniających, ponieważ odczytałem ze schematu, że nie są potrzebne(próbowałem także z rezystorami 4k7). Przy sprawdzeniu bufora z danymi w programie Stm Studio, nic się nie zmienia a flaga busy jest ustawiona jedynie przy odłączeniu kabla SDA od czujnika. Proszę o pomoc w znalezieniu przyczyny braku odczytu i...
Niestety nie pomogło EDIT: Spróbowałem wygenerować za pomocą STM32CubeMX i napisać w HAL'u kod który by wysyłał cyklicznie dowolną ramkę CAN. Oto mój kod napisany w AC6 System Workbench: http://obrazki.elektroda.pl/9453638400_1... Przy okazji: 1. Jak wgrać program przez JTAG'a w AC6? 2. Da się dodać bibliotekę HAL do COIDE CooCox'a?...
Pokaz cale main.c gdzies zadeklarowales ja jako static. HAL wola funkcje nie static która jest w innym pliku. I dlatego Ci nie dziala (tak w uproszczeniu).
Mam na schemacie np. silniki ale są na razie nie podłączone. Mam TB6612 ale niepodłączone (bez zasilania głównego). Mam CP2102. Jeszcze sekcja zasilania. Ale jak mówiłem sprawdziłem w Keilu - działało normalnie. Wklejam ustawienia debugera. http://obrazki.elektroda.pl/1495441700_1... http://obrazki.elektroda.pl/6369576600_1...
Cześć, Potrzebuję wykonać komunikację w 2 strony pomiędzy komputerem PC i mikrokontrolerem przez ethernet. Sprzętowo wybrałem stm32F103 oraz moduł z układem ECN28j60. Układ nie będzie włączony do żadnej sieci, będzie to połączenie punkt-punkt. Znalazłem biblioteki, dostosowałem pod swój mikrokontroler. https://github.com/xaionaro/stm32-enc28j... Generalnie...
Mam również problemy z układem STM32F030 (obudowa TSSOP20). Główny problem polega na tym, że ST-Link (wykorzystuję ST-Link na płytce discovery) łączy się prawidłowo z układem ale nie programuje go. Nie działa również programowanie option bytes. Za każdym razem wyskakuje błąd weryfikacji już na pierwszym adresie flash (0x08000000). Natomiast odczyt pamięci...
Pisałem gdzieś jak się je włącza, na co Freddie napisał, że są funkcje w CMSIS, które z resztą na forum też już wklejałem. [syntax=c]/** * (at)brief Enable Interrupt in NVIC Interrupt Controller * * (at)param IRQn The positive number of the external interrupt to enable * * Enable a device specific interupt in the NVIC interrupt controller. * The interrupt...
Moze trochę nie w temacje, ale kolega Kaczor90 prosił o proste rozwiązanie dla debouncingu, a tu co niektórzy chyba popsują się swoimi umiejętnościami programistycznymi, przekombinowywując jak się tylko da. Prosty przykład obsługi przycisków z uwzględnieniem z możliwością określenia mininalnego czasu wciśnięcia przycisku: [syntax=c] #define BUTTON_DEBOUNCE_TIME...
No dzięki. ściągnąłem sobie i zainstalowałem. Mam teraz jednego ptaszka więcej - (w sumie dla mnie to mała pociecha, ale może żonie przynajmniej się spodoba).... A czy jest jakaś możliwość skonfigurowania sobie kilku dodatkowych pathów żeby były "built in" jak te, które się wyświetlają (+ ew. symboli)? Cały czas tworzenie nowego projektu wymaga masy...
Czasem Arduino do czegoś się przyda Dodano po 2 Możesz dać przykład takiej krytycznej czasowo operacji? Problem jest a raczej był związany z buforem nadawczym uarta. Mam funkcję: Blokuj tylko przerwania od UART.
Właśnie już chyba z 10ty dzień próbuję odpalić wyświetlacz z tym sterownikiem na STM32F103RBT6. Całą bibliotekę przerobiłem odpowiednio z ATmegowej (napisanej wcześniej i na 100% działającej). I za cholerę nie chce odpalić. Sprawdzałem poprawność sygnałów na analizatorze logicznym. Niby jest OK. I teraz zagwozdka, czy wyświetlacz ten zasilany z 5V ruszy...
Witam. Wczoraj jeszcze debugowałem program i jeżeli się wysypuje to zawsze w startupie dokładnie /* Call static constructors */ bl __libc_init_array Zupełnie nie wiem co z tym zrobić ;/
Witam, Mam urządzenie z którym chciałbym się skomunikować. Za pomocą Realterm wysyłam do urządzenia 3 znaki: /#1 i urządzenie odpowiada całą paczką danych. Przepięcie linii USB/RS232TTL do mikrokontrolera sprawiła mi jak zwykle kłopot. A mianowicie wysyłam do urządzenia te 3 znaki z STM32 natomiast urządzenie nie odpowiada.... Może mi ktoś powie jak...
Na moje oko to nie ma prawa działać poprawnie. W tym kodzie praktycznie wszystko jest źle. Funkcja callback jest wołana po odebraniu danych do bufora, wcześniej przekazanego przy wywołaniu Receive. Ty nie bierzesz danych z bufora, do którego zapisała je obsługa przerwania z HAL, za to kolejno wielokrotnie odczytujesz RDR, nie wiedząc, co właściwie z...
Na początku podziękuję za dobry tutorial. A teraz mam prośbę. Próbowałem odpalić przykład z biblioteki STM32_USB-FS-Device_Lib_V3.3.0 (Virtual_COM_Port). Po pewnych bojach udaje mi się wszystko skompilować, natomiast po uruchomieniu program staje w nieskończonej pętli w funkcji static void __Default_Handler(void) z pliku vector.c. Czyli w tym pliku...
Witam Dlaczego przy włączeniu zasilania lub po resecie STM32 zawsze spełniony jest warunek mimo, że nigdzie nie jest wywoływana funkcja osSemaphoreRelease() ? [syntax=c]static void SemaphoreTest(void const * argument) { osSemaphoreId semaphore = (osSemaphoreId) argument; for(;;) { if (semaphore != NULL) { if (osSemaphoreWait(semaphore , 0) == osOK)...
I did some research and discovered that GigaDevices have licensed the design of the STM32F103 from STM , and produced an enhanced version of the STM32F103. (Update. Nov 18th 2015. When I published this article in September 2015, it appeared as if GigaDevices were a “strategic partner’ of STM. See http://www.eettaiwan.com/STATIC/PDF/2015...
Szanowni Forumowicze, Mam problem z Virtual Port COM. Używam procesora STM32F103VBT6. Na nim chcę zrobić taki sterownik uniwersalny kilka wejść wyjść oraz USB do wysyłania komend i odczytu stanu wejść i wyjść. Chcę zrobić to tak że np mam wyjście powiedzmy PA0 i jest tam podłączona dioda i po wysłaniu komendy "LEDON" włączy się. Niestety mając do dyspozycji...
Oczywiście, że można to zrobić bez użycia HAL, czy SPL. Kod, który tu przedstawiłeś wymaga bardzo wielu poprawek. Nie uważasz, że funkcja zapisu do pamięci jest zbyt skomplikowana? Długa na 88 linii, zawiera dziwne stałe typu: 1 << 14, 0xF3. Np co robi ta instrukcja: [syntax=c]FLASH->CR &= 0x1FFE;[/syntax], albo taka: [syntax=c]while(FLASH->SR...
Owszem wiec albo wyłączasz wywalanie nieużywanych, albo dodajesz atrybut USED. Nie działa bez referencji: static const uint8_t xTest[] __attribute__((used)) ="TESTPRJUUU"; Jak zrobię referencje to widzę to w pliku .bin
U mnie w kodzie nie ma ...... /* * sterownik dla Margas * wersja dla NUCLEO STM32F446RE * działa dzieki życzliwości i zaangarzowaniu członków forum ELEKTRODA * wspomagających moją skromną wiedzą programistyczną * za co jestem im bardzo a to bardzo wdzęczny * data xx-xx-2024 */ #include "STM32TimerInterrupt.h" #include "STM32_ISR_Timer.h"...
Podłączenie programatora UART i wykonanie flash read nie zepsuje chipa, ale trzeba by było wlutować RX i TX aby poprawić ślady na płytce. Nie widzę żadnych padów programisty na płytce, twardo. Czy chcesz spróbować? zrobić zrzut oprogramowania bkWriter? Dzięki, spróbuję jak będę miał czas na rozłożenie rzeczy i podpięcie wszystkiego. Te zdjęcia zostały...
Uruchomiłem poniższy kod na CubeIDE na płytce z mikrokontrolerem F407VET i przerwanie od DMA ładnie tu działa. Z F030 muszę niestety jeszcze powalczyć. Zauważyłem, że jak nie dodałem warunku while((SPI1->SR & SPI_SR_BSY) == 0) obraz był przekoszony, czyli były błędy w transmisji. https://obrazki.elektroda.pl/1742074200_...
Ludzie co wy z tymi kombinacjami?... Aby zrestartować transfer DMA w trybie M2M na F1xx wystarczy: - zapisać do CCR zero - wpisać 0xF przesunięte o ((nr_kanału-1)*4) do DMA->ICFR - zapisać do CNDTR ilosc transakcji - zapisać do CCR konfigurację jednocześnie ustawiając DMAEN ...i leci. Jak DMA skonczy, znajduje się w następującym stanie: - CCR !=0,...
Wiec tak.. Pobralem program z poprzedniego linku i go skompilowalem (nie wiem czemu ale nie posiadam cs-make cs-rm ...): $ pwd /home/holekrob/workspace/stm32_blink_led... $ make Size of modules: arm-none-eabi-size -B -t --common out/startup.o out/main.o out/vectors.o text data bss dec hex filename 104 0 0 104 68 out/startup.o 444 0 0 444...
Cześć, Od jakiegoś czasu borykam się z takim problemem: chciałbym odbierać po CANie ramki, wpisywać je w gotowy szablon i dalej wysyłać po USARCie na kompa w kodzie ASCII. Czegoś mi brakuje w tym kodzie i za każdą wskazówkę będę wdzięczny. Z góry dzięki:) To mój main: [syntax=c] unsigned char tx_uart[]=" ID: DL: F: T: DATA: ";//54 char ramka[55]; unsigned...
Witam serdecznie. Początkowo miałem problem z uruchomieniem układu, nawet pisałem do Piotra czy nie ma jakiegoś błędu w zamieszczonym kodzie. Problemy były dwa, po pierwsze używałem płytki testowej na której był umieszczony kwarc, którego z niewiadomych mi powodów zostawiłem. Po drugie istotny jest rodzaj bramki lub konwertera napięcia na wyjściu. Np...
Bardzo wiele zostało już powiedziane (bardzo dobre porady). Moim zdaniem krokiem zero jest jako tako umieć programować w C na PC (jak przebiega proces kompilacji, kod źródłowy podzielony na pliki *.c i *.h, organizacja pamięci i wskaźniki, struktury i wskaźniki do nich, słowa kluczowe register, volatile, static, etc., preprocesor, makefiles i make,...
Witam, próbuje znaleźć dobry sposób na pomiar amplitudy impulsu PWM. Zakres zmian wypełnienia 5 % do 95 %. Czestotliwosc sygnalu sie nie zmienia i wynosi 1 KHz. Mój pomysł polega na tym, że po wychwyceniu zbocza narastajacego odpalam ( w przerwaniu od input capture) timer ktory co 10 us ( 5 % z 1 ms to 50 us) trigeruje pomiar ADC poprzez DMA (czyli...
Cube nie wygenerował odpowiednio kodu funkcji: [syntax=c]static void MX_GPIO_Init(void)[/syntax] na podstawie starannie "wyklikanej" konfiguracji. Funkcja do inicjalizacji GPIO powinna wyglądać następująco: [syntax=c] static void MX_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct = {0}; /* GPIO Ports Clock Enable */ __HAL_RCC_GPIOC_CLK_ENABLE();...
Nie, nie poszło. Plik *.h to tylko nagłówek zawierający deklarację tej funkcji. Implementacja znajduje się w pliku resample.c. Całą bibliotekę można pobrać z: https://github.com/xiph/speexdsp http://www.speex.org/downloads/ Szczerze wątpię aby się udało to uruchomić na STM32. Edit: Samą bibliotekę (dla cortex-m4 z FPU) można skompilować za pomocą komend:...
Temat jakoś umiera śmiercią naturalną. Pozwolę sobie nieco odświeżyć. Hardware: - HY-mini (Cortex M3) - LCD ze sterownikiem ssd1289 (FSMC) - karta sdhc (SDIO) Software: - fatfs R0.10 („testowałem” też wcześniejsze wersje) - „HAL” dla fatfs – silnie wzorowany na przykładach dołączonych do HY-mini i przykładach sugerowanych...
Witam. Czy ktoś może rzucić okiem na mój program i stwierdzić gdzie jest błąd. Siedzę już 3 dni i nie mogę go znaleźć. Posiadam płytkę Butterfly, dolutowałem kwarc zegarkowy i dwa kondensatory o pojemności podanej na schemacie który dostałem z płytką. Po wgraniu hexa do procesora wygląda, że zatrzymuje się podczas konfiguracji RTC. Jak zaremuje część...
Witam, Ostatnio zacząłem przechodzić na mikrokontrolery STM32 i testowałem program zawarty poniżej. Licznik TIM2 zlicza w górę, drugi licznik generuje żądanie DMA od przepełnienia się licznika, wysyłając wartość licznika CNT TIM2 do tablicy, która jest inkrementowana. Powinienem otrzymać w tablicy wartości zwiększające się cyklicznie co tą samą wartość,...
Witam, Konfiguracja projektu oparta o stm32_blink_led autorstwa Freddie Chopin. Układ STM32F103. Uruchomiłem proste przerwanie z UARTa żeby sterować przepływem programu podczas testów. Problemem jest to wywołanie funkcji z przerwania: typedef struct { u8 print_test_1; u8 print_test_2; u8 print_test_3; } sys_flag_t; volatile sys_flag_t sys_flag;...
Będzie czekać aż do następnego wywołania PendSV, który jest aktywowany przez SysTick. Można wymusić przełączenie tasków poprzez "ręczne" wymuszenie przerwania PendSV za pomocą makra [syntax=c]vPortYieldFromISR()[/syntax] lub wg takiego przykładu [syntax=c]X_ISR(void) { static portBASE_TYPE xHigherPriorityTaskWoken; xHigherPriorityTaskWoken = pdFALSE;...
Witam, Tak się składa, że mam kit STM32F4Discovery i mogłem na nim przetestować to DMA, z którym Grzegorz ma problem. Udało mi się uruchomić transmisję. Sprawdziłem to dla UART2 i UART3. Działa też na wszystkich kanałach i strumieniach, jakie są przypisane do poszczególnych UARTów. Problemem chyba było włączanie i wyłączanie wszystkiego w odpowiedniej...
Prosto w HAL, po skonfigurowaniu w CubeMX, możesz tak Dodano po 9 Jak chcesz na przerwaniach to przed pętla główna wywołaj [syntax=c] HAL_ADC_Start_IT(&hadc1); [/syntax] i zadeklaruj [syntax=c] void HAL_ADC_ConvCpltCallback(ADC_HandleTypeD... hadc) { u8 static we; ADC_ChannelConfTypeDef sConfig; switch ( we ) { case 0: odczyt1 = HAL_ADC_GetValue(&hadc1);...
już tak kombinowałem wcześniej, najpierw używałem samego void ale nie działało dlatego dopisałem static lecz też nie pomogło(jak widać nie mogło pomóc). Także z samym void również przechodzi mi do default_handler :( A czy jest różnica gdzie wstawię "SysTick_Config (7813);" ?
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)...
Zademonstruję Ci: Nowy projekt w Atollic for STM32: Bez modyfikowania skryptu linkera: https://obrazki.elektroda.pl/4714547300_... A teraz Twoje przezroczyste przypisanie: https://obrazki.elektroda.pl/8906289200_... Dopiero po dodaniu do skryptu linkera: https://obrazki.elektroda.pl/4995382700_...
static void system_init(void) { SCS = SCS_GPIO0M; // enable Fast I/O MEMMAP = MEMMAP_MAP_FLASH; // vectors in Flash } Gdzie jest opisane makro SCS_GPIO0M ? Jaka powinna być wartość dla GPIO, bo dla FIO jest u Ciebie 1<<0, czyli drugi bit od prawe = 0.
Witam, Na początku chciałem zaznaczyć ze jestem początkujący jeśli chodzi o procesory typu ARM, a tym bardziej o obsługę FreeRTOS. Mam problem z obsługą magistrali CAN pod tym system. Wykorzystuje biblioteki pobrane ze strony www.freertos.org . Niby wszystko ładnie się kompiluje ale na magistrali nic się nie pojawia . Odpaliłem proste zadania typu miganie...
-> BlueDraco Ja to rozwiązałem jako prostą funkcję w postaci FSM, z static 'krokiem' i zmiennymi pomoczniczymi, typu 2 liczniki i CRC... Możesz zaprezentować to rozwiązanie? Ilość przyjętej wiedzy jest tak duża, że powoli się gubię w tym...
Witajcie, Chcę zrobić klawiaturę USB, ale do zastosowań jako klawisze specjalne. Ostatecznie po samodzielnych próbach wzoruję się na: http://elektronika327.blogspot.com/2017/... Mam taki deskryptor: [syntax=c] __ALIGN_BEGIN static uint8_t HID_MOUSE_ReportDesc[HID_MOUSE_REPORT_DE... __ALIGN_END = { /* 47 */...
Od kilku dni próbuję uruchomić FreeRTOS i zamigać diodami na zestawie Hymini z procesorem STM32F103VCT6. Używam Eclipse Juno oraz Sourcery G++ Lite 4.6.3. Projekt kompiluje się poprawnie. Wcześniej program zatrzymywał się na przerwaniu HardFault_Handler. W pliku FreeRTOSConfig.h dodałem więc linie #define vPortSVCHandler SVC_Handler #define xPortPendSVHandler...
Znalazłem kod obsługi wyś 7-segmentowego, pozmieniałem rejestry pod swój mikro procesor (ATmega32). Tylko mam problem z linia " static const uint8_t __flash DIGITS To standardowy błąd eclipse i pluginu do AVR, nie wpływa ten błąd na kompilację, jedynie na "podkreślanie" składni w Eclipse. Rozwiązanie tego problemu znajdziesz m.in. w tym wątku: https://forum.atnel.pl/topic15543.html#p...
Zaprojektowałem i zbudowałem płytkę wyposażoną w procesor STM32F107RCT6 oraz dekoder popularny MP3 VS1003. Jest to kolejna wersja starszego projektu na PIC32, który przenoszę na nowy mikrokontroler. Większa część projektu PCB pochodzi ze starej wersji. Do komunikacji z VS1003 używam popularnej biblioteki Andy'ego Karpova, którą już wcześniej przeportowałem...
Nie wiem o co chodzi, support STM mi powiedział, żebym wgrał kod do ramu oraz wektor przerwań. Cały problem od początku: Zadanie programu jest następujące: ze sterownika sczytuję wartości enkoderów i zapisuję je do pamięci flash. (powinno to być wykonywane timerem co 10ms). Następnie odczytuję te wartości z flasha w celu odtworzenia ruchu i odpowiednie...
A czy Static RAM można normalnie używać na 8 bit na 4 porty? Jak będziesz ręcznie sterować każdym pinem to oczywiście tak. - Ale czy to ma jakikolwiek sens poza edukacyjnym? Szczerze powiedziawszy - chcesz porządne LCD i więcej pamięci to zapomnij o ARV, tylko idź w 32bitowe procesory jak np STM32. Do UI np STM32U5 majacy 4MB FLASH (na rózne elementy...
A jeszcze takie pytanie. uruchomiłem jakąś wersje po "ulepszeniu" i zmieniłem konfigurację na: http://obrazki.elektroda.pl/6693818900_1... Tz że router próbował przydzielić adres 192.168.1.102 ?
Wspomniałeś jeszcze o bibliotece DSP od ST. Mógłbyś coś więcej o niej? Jak byś dysponował linkiem do najbardziej przyzwoitej wersji było by super. (Nie to, że nie chce mi się szukać ale wiadomo jak to się szuka na stronie ST, wyższa filozofia) No tak! Kto by pomyślał, że wystarczy podaną przeze mnie stronę przewinąć trochę w dół i ściągnąć: STM32F4DISCOVERY...
le jeżeli utworzę tablicę globalną jak poniżej: static const uint8_t tablica Nie. Co zrobi kompilator tego nie wiesz, bo modyfikatory static i const nie służą określaniu położenia zmiennych, czy tablic w pamięci. const ci jedynie daje tyle, że próba modyfikacji takiej tablicy powinna zakończyć się błędem podczas kompilacji. Oczywiście w praktyce, na...
Dzięki za odpowiedź. Danych do kodu nie wstawię z powodów, które już podałem. Ale może znasz jakiś prostszy sposób, by użytkownik, nie mający pojęcia o przygotowaniu kodu dla mikrosterownika mógł w nim umieścić duże bloki swoich danych? Moje rozwiązanie dobrze się dotychczas sprawdza, ale chętnie poznam inne możliwości. Tak to wygląda dotychczas w pliku...
No niemoge sobie poradzić i dowiedzieć się jakie są prądy maksymalne jeżeli chodzi o przetworniki DAC i ADC. Szukam i szukam w dokumentacji i nic... http://www.st.com/st-web-ui/static/activ...
kiedyś wrzuciłem kod jak to się ustawia [syntax=c]void EXTI3_IRQHandler(void) __attribute__ ((interrupt)); void EXTI3_IRQHandler(){ //cuś EXTI->PR |= EXTI_PR_PR3; } static void ExtIInit(){ RCC->APB2ENR |= RCC_APB2ENR_AFIOEN; AFIO->EXTICR[0] = AFIO_EXTICR1_EXTI3_PA; NVIC->ISER[0] = NVIC_ISER_SETENA_9; EXTI->IMR = EXTI_IMR_MR3; EXTI->FTSR = EXTI_FTSR_TR3;...
Witam Próbuję teraz zaimplementować funkcję sprintf(..). Dołączyłem pliki nagłówkowe bibliotek stdio.h , errno.h oraz implementację funkcji : caddr_t _sbrk (int size) podaną przez Pana na forum. Program kompiluje się lecz niestety przy wywołaniu sprintf(..) jest wywoływane przerwanie z tablicy vectors.c: static void __Default_Handler(void) {...
w ISR - robię (robiłem): void DMA2_Channel3_IRQHandler(void) { DMA_ClearITPendingBit(DMA2_IT_GL3 | DMA2_IT_TC3); Switch_DAC_Tables(); } miałem złe przeczucia dot. stosu(ów) i faktycznie jeden z problemów był ze stosem. mianowicie źle został zainicjowany PSP. Ostatecznie zrezygnowałem z kombinowania z drugim stosem wrócę pewnie do tego jak więcej poczytam...
Widzę, że nikt się nie skusił na 500pkt.... Pracuję nad tym dzień i noc, teraz próbuję podejść od drugiej strony przerabiając projekt do kamery, pozamieniałem wszystkie wyprowadzenia GPIO aby pasowało to do mojej płytki, ale niestety nie chce działać - wyświetlacz cały biały. Wydaje mi się, że problem tkwi w pliku GLDC.c, ale nie wiem gdzie... main.c...
http://www.st.com/content/ccc/resource/t... lub znajdz funkcję static void low_level_init(struct netif *netif) i tam jest zdefiniowana tablica z adresem. Nazywa się róznie w zależności od wersji (bo to lokalna zmienna)
Witam, Otoz proboje podlaczyc uklad do komunikacji bezprzewodowej NRF24L01 ( TX_Mode(); a w petli znajduje sie nrf_send(sss, 32); Plik NRF24L01.h: [syntax=c] #ifndef _NRF24L01_H #define _NRF24L01_H void SPI1_writeReg(uint8_t reg, uint8_t value); uint8_t SPI1_readReg(uint8_t reg); #define TX_ADR_WIDTH 5 // 5 bytes TX(RX) address width #define TX_PLOAD_WIDTH...
(at)ElektrodaBot Dzień dobry, zmagam się z nietypowym problemem. Zepsuł mi się ostatnio moduł I2S2 MOD podłączony do stm32f407, który zawierał zarówno ADC jak i DAC działający po I2S. Kupiłem coś tańszego - jako ADC PCM1808, oraz jako DAC PCM5102. Wcześniej działałem na full-duplexie, teraz jestem zmuszony działać na half-duplexie. Napisałem prosty...
Witam! Tworzę projekt, który polegać ma na bezprzewodowym połączeniu STM32F303 Discovery i HC-05 z ELM327 (wersja bluetooth). Jestem bardzo początkujący, jeśli chodzi o programowanie a zależy mi na tym projekcie, dlatego postanowiłem zwrócić się o pomoc. Korzystam z STM32CubeMX oraz Eclipse z wbudowanym rozszerzeniem „System Workbench for STM32”....
Odwracasz kota ogonem. Nigdzie nie pisałem, że ta oszczędność do czegokolwiek jest potrzebna. Ale skoro autora to gnębi, to mu odpowiadamy. A poznanie kompilatora może kiedyś się przydać. Piszesz o asemblerze, modyfikatory typu const, static, inline po coś wymyślono. Dobrym nawykiem jest informować kompilator o swoich intencjach, a nie pisać byle się...
http://obrazki.elektroda.pl/4920112900_1... schemat wg. którego podłączam procka (zgodnie z [url=http://www.st.com/st-web-ui/static/... GND , VDD biorę z discovery (nie ze złacza CN3 tylko wyprowadzenia 3V i GND) , ze złącza CN3 - SWDIO , SWCLK , NRST . zrobiłem...
stm32 static library stm32 static inline static routing
przetwornik sprzedać intel motherboard operator maszyny
komora laminarna lodówka liebherr
Głośne buczenie pralki podczas prania - przyczyny i rozwiązania Udrożnienie odpływów wody w samochodzie - porady i narzędzia