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...
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ś?
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...
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.
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.
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...
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...
KEELOQ + rolling code można wykorzystać w swoim projekcie DIY bez przeszkód? Oczywiście. Dodano po 33 Mogę zainteresowanym podać kod KEELOQ dla pilota i odbioru , oczywiście z innymi danymi pilota ;). PILOT: Dodano po 10 Bardzo ciekawy i użyteczny projekt, właściwie to prototyp, który może przekształcić się w produkt. A czego mu brakuje żeby już nie...
Programuję z wykorzystaniem AI ale i ona się już poddaje nie bardzo mam punkt zaczepu. Mianowicie zrobiłem captive portal aby z początku móc łatwo się podłączać do nowej sieci. Wszystko idzie dobrze dopóki w haśle wifi nie ma specjalnych znaków typu &%$^. Jak są ESP nie łączy się i przechodzi w znów w tryb uruchamiania portalu. Na początku okazało...
Dzięki za odpowiedź, dopiero mogłem do tego usiąść i coś pogrzebać. Skorzystałem z tego linku: https://obrazki.elektroda.pl/2068690200_... https://obrazki.elektroda.pl/2683163900_...
Po kilku godzinach program odpaliłem ..... podświetlanie się załącza dopiero po naciśnięciu kilka razy klawisza, monitor pokazuje start i numery naciśnietych klawiszy i to nie za każdym naciśnięciem. nie wiem jak "zatrzymać" dany ekran menu żeby zrealizować inna funkcje np; zmiana stanu wyjścia /* * sterownik który wykończy mnie i innych ..............
(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...
W platformIO nie ma niestety C011. Odnośnie odczytywania rejestrów, o ile dobrze zrobiłem to wszędzie zastosowałem takie coś: RCC->IOPENR |= RCC_IOPENR_GPIOAEN; // odczytano bit = 1 if(RCC->IOPENR & RCC_IOPENR_GPIOAEN){ status = 1; } else { status = 2; } status = 0; Zapisałem sobie w komentarzach wartość statusu i wszędzie...
Spróbuj te zmienne zadeklarować jako static xHandleTaskLED1, xHandleTaskLED2, xLastFlashTime
Tak naprawdę to mogę zgadywać w czym piszesz i na co piszesz. Więc jeśli byłoby to na STM32F103 i używałbyś ST'mowego HAL'a to można filtrować jak poniżej [syntax=c] static void MX_CAN_Init(void) { (...) /* USER CODE BEGIN CAN_Init 2 */ CAN_FilterTypeDef filter = {0}; filter.FilterIdHigh = 0x008 << 5; filter.FilterIdLow = 0x201 << 5; filter.FilterMaskIdHigh...
Witam Zaczynam się bawić z moim stm32 discovery i mam problem z konfiguracją przerwania. [syntax=c] #include "stm32f0xx.h" #define zapal GPIOC->BSRR|=(1<<9);//zapal diode #define zgas GPIOC->BSRR|=(1<<25);//zgas diode int main(void) { RCC->AHBENR |=(1<<19);//wlacz port C RCC->AHBENR |=(1<<17);//wlacz port A GPIOC->MODER...
Przez 40 s procek włącza się Chyba szybciej będzie przylutować proca na STM32 Zastanawiające jest to że jak włączę w confif.h #define CALIBRATION //comment out when not in use to kalibracja silników działa. Myślę, że tu jest rozwiązanie tylko nie bardzo wiem jak się do tego zabrać Clock init Starts from internal 8MHz oscillator and then uses its PLL...
[syntax=c]class Foo { public: static constexpr char *Name = const_cast<char*>("asdfg"); };[/syntax]
Cześć, chciałbym debugować Hard Faulta w STM32 w ten sposób żeby mieć call stack w momencie jego wystąpienia. Czy ktoś robił coś podobnego? Niestety internet nie jest pomocny - skopiowany kod nie działa, tzn. są jakieś adresy z flasha, ale nie te które bym się spodziewał. Czy ma może to związek z tym że w Hard Fault używany jest inny stos niż podczas...
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]...
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...
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?...
Witam, Od razu przyznam ze jeśli chodzi o STM32 to jestem początkująca, także proszę o wyrozumiałość. Mój procesor to STM32F100RB – który mam na płytce ewaluacyjnej STM32-Discovery. main.c /* Includes ----------------------------------------... #include "stm32f10x_i2c.h" #include "stm32F10x.h" #include...
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”....
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ż...
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...
No dobra, zlituję się. Kod obsługi przerwania UART z wykrywaniem "OK", bez bufora, bez HAL, za to krótki i działający. Wcześniej trzeba zainicjować UART z przerwaniem RXNEIE - bez HAL 3 linie kodu. [syntax=c]volatile _Bool ok_det; void USARTx_IRQHandler(void) { if (USARTx->ISR & USART_ISR_RXNEIE) { uint8_t c = USARTx->RDR; static uint8_t wait4 = 'O';...
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...
Przeczytaj dokładnie to co napisałem, Przeczytaj jeszcze raz dokładnie to, co napisałem - w swoim teście z postu #6 nie włączam wielokrotnie pliku nagłówkowego do różnych plików źródłowych. Gdybym tak zrobił tzn. włączył plik .h do więcej niż jednego pliku plik .c, a tylko w jednym z nich byłaby definicja funkcji statycznej, otrzymałbym następujące...
Witajcie, Potrzebuję zrealizować wizualizację danych o małej zmienności, które pochodzą z kilkunastu sensorów. Autorskie rozwiązania typu TFT+GUI+TP odrzuciłem ze względu na brak kompatybilności z różnymi systemami i dodatkowe koszty związane z opracowaniem sprzętu. Po analizie dostępnych rozwiązań padło na Domoticz + MySensors ze względu na możliwość...
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 ?
Nie mogę ogarnąć problemu swoim umysłem. Próbo odczytu rejestru WHO_AM_I = 0x0F na STM32G071RBTx daje zero https://obrazki.elektroda.pl/2872036300_... czyli źle. Na Arduino jest poprawnie https://obrazki.elektroda.pl/6309542200_... Przy odczycie rejestrów na STM32 mam zera, na Arduino ok. Sprawdzałem oscyloskopem efekty...
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);" ?
po skoku do Aplikacji z Bootloadera pojawia się dziwne zachowanie: zaczyna się wykonywać kod main() który jest przerwany i widzę w debugerze wykonywanie konstruktorów obiektów globalnych. Możesz pokazać jak to wygląda w debuggerze? Te konstruktory wykonują się jakby z main() czy jakby z przerwania? W Bootloaderze przed skokiem, robię __disable_irq(),...
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;...
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...
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...
[syntax=c]/* USER CODE BEGIN Header */ /** ****************************************... * (at)file : main.c * (at)brief : Main program body ****************************************... * (at)attention * * <h2>© Copyright (c) 2020 STMicroelectronics. * All rights reserved.</h2>...
Witam Pracuje aktualnie nad obsługą diod WS2812 za pomocą mikrokontrolera stm32 (nucleo-f401re i stm32f0discovery). Komunikacja odbywa się za pomocą SPI z DMA. Problem w tym, że diody zachowują się praktycznie losowo. Zazwyczaj świecą się na biało. Nie jestem także w stanie kontrolować ich ilości. Poniżej udostępniam kod. https://obrazki.elektroda.pl/6687811200_...
1. Przyjmij że kompilator działa jak należy i przekazuje parametry do funkcji poprawnie. Gdzie pokaż jeszcze wywołanie funkcji. Optymalizacja -O0 nie zawsze Ci pokaże wszystkie zmienne lokalne. Przy debugwaniu w takiej sytuacji lepiej -Og. Ale wtedy różnica w szybkości prgramu może być 2-3 krotna. Wywołanie: static uint8_t str[12]; float32_t...
GPIOA->BSRR |= GPIO_BSRR_BS5; To nie źródło problemu ale tak się tego rejestru nie używa. To jest write only rejestr czyli tylko samo przypisanie Zgadza się, dzięki :) Co do głównego problemu, punkt 1. Użyj debugera okazał się bardzo pomocny :) Założyłem, że skopałem coś w Makefile (np. brakuje jakiejś flagi) i podczas debugowania nic ciekawego...
Tutaj masz kawałek kodu. Niestety jest on wyciągnięty z większej całości więc nie licz na to że zadziała copy-paste. [syntax=c] static int test_bus(const struct twi_soft_obj *sgio) { int sda, scl; sgio->w->cfg->scl_set(1); sgio->w->cfg->sda_set(1); twi_udelay(1); sda = sgio->w->cfg->sda_get(); scl = sgio->w->cfg->scl_get();...
Witam! Od jakiegoś czasu pracuję na stm32 - ucząc się o protokołach I2C współgrając z modułami magnetometru i ciśnieniomierza. Chciałbym dołączyć do tego moduł GPS jednak obsłużyć go przy pomocy UART'a. Sensor to NEO-7, wraz z podłączeniem zasilania GPS wysyła dane *żyje swoim życie*. Próbuję zrealizować to w następujący sposób i niestety nie wiem gdzie...
static volatile DWORD Timer1, Timer2; z kolei DWORD to: typedef unsigned longDWORD; probowalem tez wpisywac dokladnie takie same wartosci ja Ty w Twojej funkcji i nic nie pomogło pozatym do obslugi przerwania ustawilem migajaca diodke, jesli sie nie myle od razu po wywolaniu funkcji: SysTick_Conf(); powinno to przerwanie sie generowac co 10ms a wogole...
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:...
Witam, męczę się z pisaniem prototypu programu do falownika 1 fazowego. Wykorzystałem tim1 mikrokontrolera f103rb, wygenerowałem (najpierw) na jedym kanale 2 komplementarne sygnały PWM. Po przepuszczeniu przez filtr RC dostałem sinusa. Problem jest w tym że ustawiając jakąkolwiek wartość deadtime (wiem, że odpowiednio się ją wylicza) efektów nie widzę...
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:...
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?
Taka maszyna stanu to, szczerze mowiac, smiech. Jak przyjdzie napisać ci parsery albo stosy co poniektórych protokołów jak chociażby TCP to wtedy zacznie się jazda... W szczególności, że, z tego co widzę, wykonywanie się sekwencji jest ciągłe i nie istnieją zdarzenia "wstrzykiwane" z zewnątrz które muszą natychmiast zmienić stan maszyny przerywając...
Faktycznie! Jeśli nie przekroczę 4 breakpointów to nic się złego nie dzieje. W kail-u wyświetla się okienko informujące że nie można dodać kolejnego breakpointu (max to 5). Dzięki Freddie! Mam jeszcze jedno pytanie. Chciałem użyć w projekcie kontenerów z biblioteki standardowej C++ (konkretnie vektora i kolejki) jednak gdy program chciał wykonać którąś...
stm32 static library stm32 static inline static routing
zawieszone średnie spalanie prawie energetycznym moduł perkusji elektronicznej
dekoder esperanza samsung le22c350
Wyświetlanie obrazu z telefonu przez soczewkę powiększającą Kocioł Ogniwo Eko Pellet 18 kW w instalacji otwartej