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 ;)
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/...
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
Podczas kolejnego dnia walki orżnąłem kod praktycznie ze wszystkiego. Doprowadziłem do sytuacji odwrotnej - by działał 2 kanał PWM dla TIM1 należy zainicjalizować TIM3! W dodatku, zmiana wartości delay() w main również powoduje zaprzestanie działania PWM (podobnie jak wyłączenie TIM3). Kompletnie nie wiem, co robię źle. Wymieniłem już nawet uC na egzemplarz...
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
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.
Możesz dać gotowca jak masz i przeanalizuje to. Gotowca (źródła), który działa prawie identycznie (inne częstotliwości migania ale to drobny szczegół) jak Twoje założenia projektowe, masz u siebie na dysku. Jest to program demo wgrywany fabrycznie do płytek Nucleo i znajduje się w repozytorium programu STM32CubeIDE. Gdzie akurat u Ciebie na dysku jest...
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...
Czytam czytam. Potrafię odebrać 1 lub 2 bajty. Mam problem z odbiorem >2. Poniżej to co w dokumentacji: http://obrazki.elektroda.pl/6163417900_1... http://obrazki.elektroda.pl/8829802900_1... Czyli jeśli to rozumiem lub też nie, powinno to wyglądać tak? : 1. Czekam aż w data register się coś pojawi. 2. Pobieram zawartość...
Funkcja SystemInit jest wywoływana w obu przypadkach na początku main. Podałem ją w kodzie. Może tutaj faktycznie jest problem. Pliki startup.s Keila i Cube się różnią. Zauważyłem, że funkcja SystemInit jest wywołana w pliku dla Cube. Niestety te pliki to dla mnie czarna magia. Czytałem o nim artykuł waszego kolegi z elektrody. https://www.elektroda.pl/rtvforum/topic3...
Błędy są tylko przy linkowaniu to log. Z tego co kojarzę to -flto ma być czymś lepszym niż -fwhole-program. arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 -ffast-math -Os -flto -Tstm32f4_flash.ld -static -Wl,-Map=out/Rejestrator.map,--cref,-u,R... -Wl,--start-group...
Witam, cały dzień męczę się z obsługą przerwania od odbioru danych w STM32103RB. Korzystam z biblioteki HAL. Po całym dniu dalej nie wiem jak to ma wyglądać, dostępne example robione są w STM32CubeMX, a ja z tego nie korzystam. W dokumentacji chyba nie potrafię się poruszać bo nie wyiskałem z niej co po kolei trzeba wywoływać aby obsłużyć to przerwanie....
[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; }...
Spora szansa, że problemem są priorytety przerwań. We FreeRTOS (w sumie w większości RTOSów) przerwanie które używa funkcji systemu musi mieć priorytet niższy lub równy wartości którą sobie skonfigurowałeś jako progowa w pliku FreeRTOSConfig.h. Ponieważ zwykle w tym pliku jest to skonfigurowane tak głupio, że nie wiadomo nigdy o co chodzi, na szybko...
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]...
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...
Ja rozumiem ze mozna szarpać się z darmowymi toolchainami, ale zeby z keilem?... Postawienie darmowego toolchaina trwa minute :)
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;...
Widać że pin ISP_MISO jest jako wejście, powinno być dodatkowo jako AF_PP? Źle coś konfiguruję w Cube? pokaż ustawienie https://obrazki.elektroda.pl/6592274000_... Dodano po 4 W static void MX_SPI2_Init(void) masz hspi2.Init.Direction = SPI_DIRECTION_2LINES;
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.
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...
Cześć, mam problem z połączeniem się z akcelerometrem ADXL345 po SPI. Moduł jest na pewno sprawny bo napisałem sterowanie na I2C, ale ze względu na projekt nie mogę tego interfejsu wykorzystać. Próbując odebrać adres DEVICE ID, MISO ciągle zwraca 0. Sprawdzałem już połączenia, GPIO, SPI też działa poprawnie. Może ktoś miał podobny problem i byłby w...
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...
No i kurczę już nie wiem czym to się różni: Tutaj jak się kompiluje za pomocą freediego: (...)(at)(...)-jacek:... make Assembling file: startup.S /home/(...)/arm/gcc-arm-none-eab... -x assembler-with-cpp -c -mcpu=cortex-m3 -mthumb -g -ggdb3 -Wa,-amhls=out/startup.lst...
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...
50 kB na taki projekt to przecież nie jest jakoś specjalnie dużo. uyheeyeyyyyy, nie? 24kb na biblioteki (c) wydaje mi się dość sporo... wynik takiej oto komendy - `arm-none-eabi-nm -ClS --radix=d --size-sort tutaj-nazwa-twojego-pliku.elf` To bardzo fajna komenda, wklejam końcówkę bo Elektroda nie puszcza: [syntax=bash]536876876 00000001 B Appli_state/home/maciej/dron2/output//.....
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.
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...
(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...
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"...
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ć ;/
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...
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...
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)...
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
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...
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...
Witam, chciałbym zczytać dane z enkoderu, mam jeden podłączony do PB6 i PB7,a drugi do PB3 i PA15 i posiadam STM32f103RE Robisz coś bardzo dziwnego i niepojęcie skomplikowanego. A przerwania to już w ogóle nie wiem po co... Odkopałem swój projekt używający enkodera z początków pracy z STM32 - jeszcze stosowałem SPL. Inicjowanie to trzy instrukcje (ja...
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,...
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. Szkole się w programowaniu zacnych STM32 i od razu na poczatku mam problem z funkcja printf(); Po wywołaniu tej funkcji procesor się zawiesza. Mam zrobiony proste nadawanie i odbieranie danych przez UART. Używam Keila MDK ARM V5 biblioteki HAL wygenerowane w STM32CUBEMX. Korzystam z płytki Kamami Zl27ARM. Na razie chcę uzyskać następujące efekty:...
Cześć Od razu nadmienię, że jestem w tym początkujący. Posiadam mikrokontroler STM32F100C4T6B oraz moduł GY-50 L3G4200D. Próbuję nawiązać połączenie za pomocą interfejsu I2C i wyświetlić informację na komputerze kominukując się po UART, który na pewno działa. Jeżeli chodzi o połączenie to jestem na 99% pewny, że jest dobrze. Korzystam z programu STM32CubeMX...
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:...
Cube nie wygenerował odpowiednio kodu funkcji: Dodano po 1 Zmodyfikowałem funkcję: [syntax=c]static void MX_GPIO_Init(void)[/syntax] dodając: [syntax=c]__HAL_RCC_I2C1_CLK_ENABLE();[/... oraz: [syntax=c] GPIO_InitStruct.Mode = GPIO_MODE_AF_OD; GPIO_InitStruct.Pin = GPIO_PIN_8 | GPIO_PIN_9; // SCL, SDA GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed...
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...
Szybki rzut oka na RM i... L051 ma ADC bez ustalania kolejności konwersji, kanały skanowane są w ich "sprzętowej kolejności" (wybierasz tylko czy kanał ma być konwertowany czy nie). Wiec nie wiem po co rangi kiedykolwiek w Cube były do tego MCU. Kod do obsługi ADC i DMA z iloma tam kanałami chcesz, dla F030 ale powinien pod L051 działać: [syntax=C]static...
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_...
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....
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...
-> 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...
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:...
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...
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...
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ę...
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...
Poniewaz wszystkie wczesniejsze #define masz w warunku #if 0 #endif czyli niespelnionym. Zreszta w CubeIde powinienes miec to zaznaczone na szaro (wylaczone). A czy to nie powinno być zrobione tak, że ja powinienem zamienić #define EVE_EVE3_50G z linijki 119 na #define EVE_RVT35 zamiast linijki 104? https://obrazki.elektroda.pl/8326677800_...
1. Co będzie jak nie wyrównam stosu, kiedy natknę się na problem? Zasadniczo problem występuje praktycznie tylko przy przekazywaniu 64-bitowych zmiennych do funkcji o zmiennej ilości argumentów, takich jak printf() (tutaj od razu uwaga - 32-bitowy float dla takich funkcji zawsze jest konwertowany do 64-bitowego double). Ze względu na to jak zdefiniowane...
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...
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ść,...
Jechałem debugerem i nie wchodziło w SysTick_Handler... Kod poniżej: [syntax=c] /************************* * stm32 uart main.c *************************/ #include "stm32f10x.h" #include "stm32f10x_flash.h" #include "stm32f10x_gpio.h" #include "stm32f10x_rcc.h" #include "stm32f10x_usart.h" #include "stdint.h" #include "misc.h" #define CLK_FREQ 72000000...
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;...
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)
Najlepszego w Nowym Roku i w następnch (rokach też). Proszęż uprzejmież : [syntax=c] #ifndef NOUVOTON_SD_CARD_H_INCLUDED #define NOUVOTON_SD_CARD_H_INCLUDED // #include "NouvotonSDCard.h" #define __IO volatile typedef struct { __IO uint8_t CSDStruct; /* CSD structure */ __IO uint8_t SysSpecVersion; /* System specification version */ __IO uint8_t Reserved1;...
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...
W sumie to nie wiem czy to właściwie problem z MCU, GCC czy zrobiłem gdzieś jakiś banalny błąd, który mnie teraz prześladuje, ale wnioskując z tego, że na F103, F107 i x86 działa poprawnie, chwilowo obstawię jakiś związek z MCU. Bo ten wyjątek istnieje tylko na STM32F030. [syntax=C]static void fnSensRead(uint8_t cbData, uint8_t *ptr) { uint32_t *pSmp...
Ok, z niechęcią pokażę jeszcze trochę kodu. Od razu wyjaśniam - ten kod to tylko taka tymczasowa partyzantka celem sprawdzenia i wykrycia takich sytuacji jak ta powyższa. Docelowo to będzie zupełnie inaczej zorganizowane. Dane są zbierane do RAMu przy pomocy DMA do podstawy 5-5ms/kratkę. Powyżej już są wyświetlane na bieżąco. Niemniej w obu przypadkach...
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ę...
Jak dodać do tego schematu optoizolację? Między procesorem a transeiverem? Tak, właśnie tam. Możesz użyć np. [url=http://www.analog.com/static/import... Digital Isolators. ADuM1200/ADuM1201
http://obrazki.elektroda.pl/1009897900_1... STMicroelectronics rozszerza ofertę płytek deweloperskich STM32 Nucleo o nowe moduły z mikrokontrolerami w 32-pinowych obudowach. Nucleo-32 to seria małych płytek deweloperskich ukazujących możliwości 32-pinowych układów wchodzących w skład rodziny mikrokontrolerów STM32. Nowe produkty posiadają...
Dobra, zrozumiałem swój błąd <: Może taka tablica wektorów - też jest w C <: static void __vectors(void) __attribute__ ((used, naked, section(".vectors")... static void __vectors(void) { asm volatile( " ldrpc, Reset_Vector \n"// "Reset" vector " ldrpc, Undefined_Vector...
Jak mogę obsłużyć przerwanie tak, aby sygnał wykonywał się zadaną ilość impulsów. Np 10 impulsów i sygnał kończy gnerowanie Liczyć w przerwaniu do 10 i np wyłączyć je (znam dwa sposoby, przez NVIC lub wyłączyć timer). Można też w przerwaniu przestać robić to co robiłeś czyli "tachlować" GPIO i skończy się "gnerowanie" impulsów. Do liczenia użyj zmiennej...
Witam, Nie bardzo wiem co robię źle w związku z czym zwracam się z prośbą o pomoc do szanownych Kolegów. Mianowicie mam taki oto prosty kod: [syntax=c] static int16_t count = 0; float dd = count * 1.0f; ... [/syntax] W chwili rzutowania procesor się zwiesza, tzn. nie przechodzi do wykonywania dalszego kodu. Oczywiście próbowałem również...
Witam. Mam mały problem z I2C, otóż nie działa mi funkcja do odbierania danych przez DMA. Nadawanie chyba działa - nie mam jak tego sprawdzić. Pisane na podstawie http://www.st.com/st-web-ui/static/activ... oraz RM Działający kod na końcu.
Witam, Mam problem z nawiązaniem komunikacji między dwoma zestawami STM32F103ZET6+nRF24L01. Bazowałem na informacjach z tej strony: "[url=http://maniacbug.github.io/RF24Net... Ściągnąłem odpowiednie pliki z klasami RF24 i RF24Network, oraz klasą SPI(wykorzystywana przez poprzednie klasy), przerobiłem je pod STM32, po czym spróbowałem...
Witam, chciałbym zrobić projekt w postaci pianina na mikrokontrolerze. Posiadam kontroler midi Behringer SWING, którego podłączam do mikrokontrolera STM32-Nucleo-F303RE z nakładką midi (MIDI OUT na klawiaturze do MIDI IN na nakładce). Klawiatura midi jest zasilona za pomocą usb z komputera. Chciałbym prosić o pomoc w przesłaniu sygnału midi z klawiatury...
Witam, Napisałem prosty programik z Systickiem i przyciskiem: [syntax=c] #define MAXFAL 8 static __IO uint32_t TimingDelay; uint32_t X1, dX1; uint8_t ktory,SWT; void SysTick_Handler(void) //podprogram przerwań { if (TimingDelay != 0x00) TimingDelay--; GPIO_ToggleBits(GPIOA, GPIO_Pin_5); X1 +=dX1; DAC_SetChannel1Data(DAC_Align_12b_R, wav[ktory][X1>>22]);...
Witam! Wykonałem prototyp z stm32f030 oraz wyświetlaczem na uc1601. Wyświetlacz nie chce wystartować. Gdy ustawię wszystkie piny 32f030 na "floating input" i podłączę inną płytkę do pinów sterujących (spi) to wyświetlacz działa. Używam prawie identycznego kodu z tym że w CM3 używam bitbandingu co linii CS i CD. Na płytce z CM0 (zamawiana, cienkie ścieżki,...
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 ?
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...
Witam, podłączyłem do mojej płytki 2 moduły nrf odpowiednio odbiornik do SPI1 a nadajnik na SPI2. Niestety mam problem z obsługą tych układów, nie zgłaszają mi one przerwań na pinach który ustawiłem jako wejściowy z pull-up oraz triggerem reagującym na zbocze opadające (sprawdzałem piny zwierając je do masy przerwanie zostało wywołane poprawnie). Funkcje...
Witam serdecznie, Z racji tego, iż nigdzie nie znalazłem satysfakcjonującej odpowiedzi na moje pytanie, chciałem je zadać tutaj. Mianowicie chce wyzwalać przetwornik A/C za pomocą Timera (nie określę jakiego gdyż nie chce się koncentrować na konkretnym). Piszę póki co programy przy użyciu wspomnianej w tytule biblioteki firmy ST. Z tego co już zrozumiałem,...
Witam, Korzystam z płytki HY-RedBull. Wyprowadzenia PB8 i PB9 - standardowe dla serwera CAN w procesorach STM32F103 - podłączone są do transceivera CAN MCP2551. Sprawdzałem działanie serwera CAN w trybie loopback i wszystko działa jak należy. Niestety po przełączeniu w tryb normalny procesor nie wystawia żadnych danych na PB8 i PB9. Poniżej zamieszczam...
stm32 static library stm32 static inline static routing
przepływomierz odpowiada polsat cyfrowy lista kanał sharan schemat wiązka
toshiba firmware update wyłacznik krzyżowy
Podłączenie magnetowidu Panasonic NV-HD635 do telewizora Samsung DV3 HD SRS Jak zmienić język w drukarce HP PSC 2210?