Spróbuj może przekopiować to do osobnej tablicy znaków (zakończonej znakiem '/0') i użyć funkcji atof() z stdlib.h.
Myślę że bład jest zupełnie gdzie indziej. Parametry są tak przekazywane jak być powinny. Nie szukaj błedu kompilatora. To nie przeszkadza ale 2.454545 o ile nie zdefiniowałeś flagi -fsingle-precision-constant to double a nie float.
Marcys - czytaj RM-a i zrób to na logikę. I2C b. ladnie pracuje z DMA. Zobacz sobie poradnik kolegi szczywronka (jak uzywac generalnie DMA). W pierwszych próbach nie kombinuj z double buffer itp. Jezeli jestes sprawny w C to zzajmie Ci to z próbami godzinkę w najgorszym razie.
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...
Witam Mam problem z prawidłowym skomunikowaniem się z prockiem STM32F100. Używam JTAG-a ARM-USB-OCD i OpenOCD. Inne STM32 mi chodzą bez problemów (testowałem na kilku różnych 103 i 107). Może ma ktoś jakieś doświadczenia z tym związane. OpenOCD pluje : Open On-Chip Debugger 0.4.0 (2010-02-22-19:05) Licensed under GNU GPL v2 For bug reports,...
Globalne (ale nie wątkowe, niektóre funkcje formatujące tak działają), albo jakiś rodzaj zarządzania tymi fragmentami pamięci. W C jest to hardkor, bardzo trudno to eksploatować (łatwo raz użyć źle). Tym niemniej profesjonalny kod w C (linux, drivery itd) potrafi alokować w jednym module, a gdzieś zupełnie inaczej zwolnić (kosztem bardzo precyzyjnego...
To już wiem, że mam zablokowaną pamięć Flash. Chyba nawet domyślam się, że mogłem tego dokonać próbując wgrać binarkę przez vsgui dołączonym do versaloon'a. OpenOCD wypluwa: Open On-Chip Debugger 0.8.0-rc2 (2014-04-15-16:15) Licensed under GNU GPL v2 For bug reports, read http://openocd.sourceforge.net/doc/d... xsvf adapter...
Wszystkie są bardzo pamięciożerne i generują masę nadmiarowego kodu. Działać - działają Czy dla STM, czy dla AVR, arduinowe biblioteki są beznadziejne i nie trzeba się tym przejmować, przynajmniej Arduinowcy się nie przejmują. Jak widać na przykładzie AVR, czy 1 cykl ale z DMA nie skorzystamy. Po co w Arduino DMA? Amatorom się nigdzie nie spieszy,...
Hm w cubie pewnie jest, ale jakoś nie jestem w stanie tego przezwyciężyć. Poziomy abstrakcji są fajne ale zupełnie niepotrzebnie pożerają zasoby uC. Moje urządzenie z kodem keila oczywiście odnajduje USB natomiast ten sam kod "przystosowany" (zmiany polegały głównie na dopasowaniu do standardu gcc) na atollicu ten kod nie działa. Czy oby tylko linker...
Freddie prośba o wytlumaczenie. Mam szybki MCU. Starcza mi mocy więc wrzucam float, double i co tam jeszcze bez namysłu. Czy potrzebne, czy nie i wręcz przeszkadza. I to nazywasz duchem czasu. A zwykły delay nazywasz złym nawykiem. A przecież on jest często też najprostszym rozwiązaniem problemu. Jeśli więc starcza mi mocy ... Dlaczego stosujesz inną...
Witam, Zrobiłem najprostszy program z uruchomieniem jedynie RCC i GPIO. ... Kiedy log10 jest wyłączony komentarzem, LED świeci, kiedy log10 jest włączony, LED nie swieci. Czekam na jakąś odpowiedź od CooCoxa. Jeżeli to co powyżej napisałem nie zadziałało u Ciebie, to nie wiem. Przed wysłaniem poprzedniego postu wprowadziłem ww. zmiany w parametrach...
Witam, Stworzyłem płytkę z mikrokontrolerem STM32F407. Próbowałem ja zaprogramować przykładem "blink_led" ze strony Frediego i nie chciało działać. Oprogramowanie Eclipse + bleeding toolchain + openocd 0.7.0 zostało skonfigurowane wg tutoriala Frediego na Ubuntu. Nie chciało się poprawnie programować, więc próbowałem różnych porad z internetu, ale to...
To znaczy że tak samo nadaje to urządzenie. To po co Ci 7 bitów jak nadawcze daje 8 W razie wątpliwości zawsze patrzymy do dokumentacji Data register (USART_DR) When receiving with the parity enabled, the value read in the MSB bit is the received parity bit.
Poczytałem manuala do JTAga i spróbowałem wgrać kod przez OCD. Wywołuje go z parametrami: -f scripts/interface/ftdi/jtag-lock-pick_ti... -f target/stm32f1x.cfg -c "adapter_khz 1000; reset_config trst_and_srst; init; reset init; flash write_image erase C:/ARM/project_eclipse/stm32_timer/out/s... reset run; shutdown;" Otrzymuje błędy:...
Zwróź też uwagę, że w cytowanym przez Ciebie dokumencie nie ma ani słowa o Cortex, a Cortex jest w tym aspekcie inny od wszystkich dotychczas produkowanych procesorów. Sorry, ale dalsza dyskusja nie ma sensu, skoro twierdzisz że wiesz wszystko o Cortexach, tylko nie to, że są one częścią architektury ARMv7-M... No i jeśli te dodatkowe instrukcje uważasz...
Witam, mam problem z komunikacją z czujnikiem ciśnienia HP02S. Szukałem swojego problemu na forum, ale nie znalazłem. Udało mi się bez problemu odczytać dane z EEPROMu. Udało mi się też skomunikować z czujnikiem, ale do czasu. Sekwencja odczytu ciśnienia wygląda następująco (pseudokod): [syntax=c] i2c_start(); i2c_write(0xEE); i2c_write(0xFF); i2c_write(0xF0);...
o co w tym biega? Pierwszy przykład jaki pokazałeś kompilator najprawdopodobniej optymalizuje, bo wie ile wynosi wynik, więc w ogóle nie ma żadnych wywołań funkcji. Może jakiś przykład który u ciebie działał. Bierzesz z mojej stronki przykład-szablon (ja wziąłem ten dla stm32f103, ale to bez znaczenia - po prostu akurat był pod ręką), wrzucasz do niego...
Sprawdziłem i faktycznie wchodzi w HardFault... W dodatku przy debugowaniu wysypują się jescze takie błedy [syntax=c] Error: MEM_AP_CSW 0x23000052, MEM_AP_TAR 0xb087b8 Error: JTAG-DP STICKY ERROR Error: MEM_AP_CSW 0x23000052, MEM_AP_TAR 0xb087b8 Warn : Block read error address 0xb087b4 Error: JTAG-DP STICKY ERROR Error: MEM_AP_CSW 0x23000050, MEM_AP_TAR...
double buffering rozwiąże tylko problem z jednoczesnym wyświetlaniem, jednak zdecydowana większość ciekłokrystalicznych wyświetlaczy graficznych ma tak żałosne odświeżanie, że jak chcesz zmieniać na nim parametry całościowo częściej niż nawet co sekundę to będzie smużył
Nienazwany "STM32" może to robić softwarowo w setkach cykli Nazwany - H7 ma FPU operujące na double Uprzedziłeś mnie. Unia jest idealnym narzędziem do tego tematu. Nie jest.
Dzięki za odpowiedzi! Zainstalowałem najnowszą wersję OpenOCD v0.5. Trochę zmieniły się komunikaty, jednak błąd jest cały czas podobny... Poniżej wklejam treść: Info : only one transport option; autoselect 'jtag' 1000 kHz adapter_nsrst_delay: 100 jtag_ntrst_delay: 100 Info : clock speed 1000 kHz Info : JTAG tap: stm32.cpu tap/device...
Witam. Poskładałem Jtaga ze strony Freediego Chopina. Niestety nie mogę zaprogramować targeta(płytka HY-Mini z STM32F103VCT6). Wszystko jest konfigurowane wg tutoriala. To pokazuje mi konsola eclipse: Open On-Chip Debugger 0.5.0 (2011-08-09-23:26) Licensed under GNU GPL v2 For bug reports, read http://openocd.berlios.de/doc/doxyge...
W wyglądzie powinno działać. Radzę kupić debuggera. Ponieważ łatwiej jest pracować. https://ru.aliexpress.com/item/ARM-Emula... To prawda, że istnieją ustawienia niuanse https://www.segger.com/nxp-lpcxpresso.ht... ale warto.
Witam, a więc działam sobie na płytce ZL31 z kamami, w wersji z odłączonym st-linkiem, za programator i debugger służy mi jtag-arm z andtechu, jest to urządzenie na bazie ft2232. Soft to toolchain skonfigurowany podług tutka freddiego chopina. Wszystko ładnie działało jak trzeba do dzisiaj, gdy w którymś momencie zauważyłem, że skompilowany program...
Witam, próbuję uruchomić program napisany przez Freddie'go Chopin'a, na procku STM32F103R wlutowanym w moduł MMstm32F103R http://www.propox.com/products/t_174.htm... na płycie ewaluacyjnej EVBmm http://www.propox.com/products/t_183.htm... Zainstalowałem oprogramowanie, sterowniki, Eclipse, openocd itp. według instrukcji umieszczonej na stronie Freddiego....
Wielkie dzięki za odpowiedź, faktycznie jest to dobry pomysł. Pogrzebałem też w dokumentacji i okazuje się, że DMA w stm32 ma sprzętową realizację podmiany buforów. Nie spotkałem się z tym w żadnym przykładzie, każdy jakoś kombinuje a to na prawdę działa, więc tak dla potomnych: Do konfiguracji DMA dopisujemy te 2 linijki: [syntax=c] DMA_DoubleBufferModeConfig(DMA1_Stream7,...
Zieleń stąd, że metoda jest błędna. Chcąc dokonać takiego przekształcenia musisz dokonać konwersji RGB na szarość, lub liczyć każdą składową oddzielnie. Bo w Twoim wypadku różnica otrzymana we wzorze double p = p1 - (p2 + p3 + p4 + p5); jest zależna od koloru. Załóżmy, że tylko p2 różni się od p1. Jeśli różni się składowa G to wynik jest zupełnie inny,...
Remove capacitor on NRTS? CPU is new, never programed? Yes, it's new MCU, freshly mounted after ariving from farnell. I refered to http://www.st.com/st-web-ui/static/activ... while designing reset button, is it wrong and the capacitor needs to be removed? I just look on discovery schematic, it's...
W CodeSourcery (a raczej w newlibie) nie ma dtostr() tak samo jak nie ma np. itoa(). Są inne funkcje konwertujące double/float to stringa, ale są równie rozbudowane jak sprintf() (syscalls). 4\/3!!
Data packing When the data frame size fits into one byte (less than or equal to 8 bits), data packing is used automatically when any read or write 16-bit access is performed on the SPIx_DR register. The double data frame pattern is handled in parallel in this case. At first, the SPI operates using the pattern stored in the LSB of the accessed word,...
Ale bez tych flag linker wywala błąd, bo libc,libgcc je potrzebują. Zresztą kompilator nie używa instrukcji vfp, bo gdyby używał to miałbym błąd związany z brakiem koprocesora. A tu operacje zmiennoprzecinkowe nie działają wtedy, gdy argumentami są liczby double inicjowane w sekcji .data. Na liczbach całkowitych działają poprawnie.
Niby dla ARM double i float to to samo a jednak nie to samo. Chyba Ci się pomyliło z AVR... Typ double na ARM jest pełną 64-bitową liczbą zmiennoprzecinkową podwójnej precyzji. volatile float f = 123.5434; f *= 123.123 też nie przejdzie przez koprocesor. Wyżej napisałem dokładnie o tym - bez końcówki "f" (albo rzutowania), to są liczby typu double,...
Ja nie wiem co tu kogo dziwi. Tablicę do której formatujesz dane masz na stosie w przerwaniu. Tablicę tą przekazujesz do nieblokującej funkcji, która rozpoczyna transfer przez UART. Następnie wychodzisz z przerwania, tablica przestaje istnieć, a UART sobie dalej z niej odczytuje dane... Dodano po 30 Nie wiemy nic o typie uC. Jeśli nie jest to Cortex-M4,...
Trochę nie składnie to napisałem, ale przy pow() mam ten sam błąd. Jakby ktoś chciał to mała funkcja na pierwiastek: float moje_sqrt(float a) { double x=1; int i=20; while(i--) { x=(x+a/x)/2; } return (float)x; } Ale nie podoba mi się ten błąd :/
Jeśli rozwiązałeś problem, to wrzuć rozwiązanie - dla potomnych i dla sprawdzenia. Co do szybkości - problemem jest to, że rysujesz wszystko piksel po pikselu. Aby to przyspieszyć musisz np. odczytać cała linię do tablicy (jedno wywołanie f_read()) i następnie całą tą linię wyświetlić jakąś funkcją (taką która przyjmuje tablicę i jej rozmiar). Rozmiar...
Twój problem polega na tym że no jakby ominąłeś problem. Coś mi się nie chce wierzyć ze codesourcery było z niedokompilowaną biblioteką libc.a, a yagartoo działa. Miałem taki sam problem co Ty ale tyle że z STM32, ja korzystam z Linuxa i przekompilowałem sobie kompilator, ale później sprawdziłem codesourcery i pracuję aktualnie na codesourcery jest...
Korzystam z gotowca Freddie'ego Chopin'a dla uC stm32f103 i używam CodeSourcery. Mam następujący problem: Próbuję obliczyć splot korzystając z funkcji: Linking target: out/stm32_blink_led.elf arm-none-linux-gnueabi-g++ -mcpu=cortex-m3 -mthumb -TSTM32F103xB_rom.ld -g -Wl,-Map=out/stm32_blink_led.map,--cref,... -Wl,--gc-sections -nostartfiles...
Mój kod: [syntax=c] vel = (double) (encoder_count - last_encoder_count) / dt; vel = (vel / ENCODER_MAXVAL) * 2 * M_PI; last_encoder_count = encoder_count; [/syntax] Jedyne czego nie rozumiem to iloczyn bitowy z 16383. Co to daje? Jakie jest jego zadanie?
Witam, mam problem z odbieraniem danych przez i2c z użyciem mikrokontrolera stm32f103. Sytuacja wygląda tak, że potrafię przesyłać dane po i2c, (wysyłam adres, czujnik odpowiada, wysyłam mu komendę wykonania pomiaru, wiem że go wykonuję ponieważ wtedy "mruga" diodą), niestety mam problem z odbieraniem danych. Testowałem już wiele funkcji z sieci, ale...
Sprawdziłem bibliotekę do JPEG, o której pisałem w pierwszym poście: [syntax=c]//1999 Cristi Cuturicu //#pragma hdrstop #include <stdio.h> #include <stdlib.h> #include <string.h> #include "datatype.h" #include "stm32f4xx.h" struct Parametry_JPG { char ile_pikseli_Vert_pola; char ile_pikseli_Hor_pola; char *p_bufor_YUV_pola; int numer_konwertowanego_pasa;...
Mam mały problem z DMA podczas pracy z DCMI. nowydamian-a . Zwiększa wskaźnik na bufor i ponownie włącza DMA. Różnica jest w tym że resetowanie wskaźnika mam w przerwaniu od DCMI. Dzięki temu każda kolejna ramka obrazu powinna zaczynać się od pozycji zerowej bufora (obraz zawsze powinien być w tym samym miejscu, nawet jak po drodze któraś rama straci...
Napisane jest: Szukajcie, a znajdziecie. [url=http://www.st.com/st-web-ui/static/... Przyjemnej lektury :)
Witam, walczę z mikrokontrolerem STM32F051K8T6. Urządzonko, które buduję, to system mierzący odległość na podstawie odstrojenia generatora LC - zbieram częstotliwość i amplitudę. Częstotliwość jest mierzona przez TIM2, na który wchodzą impulsy, a TIM6 co 20ms odczytuje jego zawartość i zeruje. Amplituda - wiadomo, przetwornik A/C. Z tablicy 50 próbek...
Witam. Łącze ze sobą IMU na MPU6050 po I2C z stm32f100rb. I2C jest skonfigurowane, funkcja testowa komunikacji zwraca pozytywną wartość. 60 razy na sekundę wywołuję sobie funkcję : [syntax=c]void mpu6050_updateQuaternion() { int16_t ax = 0; int16_t ay = 0; int16_t az = 0; int16_t gx = 0; int16_t gy = 0; int16_t gz = 0; double axg = 0; double ayg = 0;...
Witam, Jestem dość początkujący jeśli chodzi o STMy dlatego proszę o wyrozumiałość. Do pamięci flash procesora wrzuciłem kod, który prawdopodobnie zawiesza procesor. Od tego momentu nie mogę się połączyć z uC używając OpenOCD. Komunikat j/n: D:\ARM\openocd-0.5.0\bin>openocd-... -f interface/olimex-arm-usb-ocd.cfg - f target/stm32f1x.cfg...
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...
Nie możesz zmieniać adresu źródłowego dla DMA podczas transferu. Jeżeli nie używasz podwójnego buforowania, a chcesz zmienić bufor/obszar, z którego DMA ma pobierać dane, to należy zatrzymać DMA, zaczekać na potwierdzenie (bit DMA_EN == 0), zmienić adresy, ilość bajtów do transmisji i na nowo wystartować transfer. Łatwiej pewnie będzie użyć Double Buffer...
zwiększenie rozmiaru powoduje błąd kompilacji z powodu niewystarczającej ilości pamięci To na początek zacznij od poznania różnicy między sin() a sinf(), potem do rozważań dodaj też to, że M_PI jest typu double, podobnie jak wszystkie inne stałe w formie "x.y". http://en.cppreference.com/w/c/numeric/m... 16 kB RAM i 128 kB flash to oczywiście nie...
Or redefine TX_DS as 5 instead of (1<<5). Or do it any other way, just don't perform this double shifting. :)
Pytanie, co z ta liczbą 64 bit zrobisz? Konwersja sprintfem nie wypali. Sprintf obsługuje int i float. Double traktuje jak float wiec nie wyświetlisz tyle cyfr ile byś chciał. Bawię się w kalkulator i mam własne procedury wyświetlania/wprowadzania longów. Jednak, jak widzę, użycie "po łatwiźnie" procedur matematycznych dostarczanych z Arduino ogranicza...
double stm32 stm32 double buffer float double stm32
czujnik spala peugeot drzwi lodówka zawias pompa glikol
fantom mikrofon grafika jakie studia wybrać
Cieknący zawór trójdrogowy w Junkers ZW 14-2 Bosch WAS28741PL - Diagnostyka i Usterki Pralki