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.
Spróbuj może przekopiować to do osobnej tablicy znaków (zakończonej znakiem '/0') i użyć funkcji atof() z stdlib.h.
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...
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...
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,...
Zadziałało bez nowego workspace :) Dziękuję wszystkim za pomoc! :) Chyba coś jest nie tak z adresami pamięci, bo wyskakują w konsoli takie monity. Zaraz spróbuję to jeszcze raz odpalić i może wtedy pójdzie :) Konsola wypluwa coś takiego: 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...
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...
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, 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...
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);...
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...
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...
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.
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...
Witajcie, Po raz kolejny mam problem ze środowiskiem programistycznym. Otóż piszę sobie program, chcę kompilować i dostaję taki komunikat o błędzie: c:/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.5.2/... robot.elf section `.text' will not fit in region `rom' c:/codesourcery/sourcery g++...
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.
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...
Oto cały kod C# [syntax=csharp]using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Data; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging;...
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!!
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.
Napisane jest: Szukajcie, a znajdziecie. [url=http://www.st.com/st-web-ui/static/... Przyjemnej lektury :)
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 :/
No i wyszło szydło z worka. Tak ja mi doradziłeś zrobiłem nowy projekt i tylko wstawiłem te dwie funkcje. Okazało się, że jak kod wygląda jak niżej to jest ok, program kompiluje się prawidłowo double test1 = acos(0.5); double test2 = sqrt(0.5); a jak tak to zaczynają się problemy i błędy jak wcześniej double temp=0.5; double test1 =...
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...
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, piszę program do przetwarzania obrazu on-board na STM32F103x, taktowany 72MHz. Robię aktualnie testy i mam obrazek 320x240, monochromatyczny, konwertowany ze standardowego RGB (rgb888) na RGB565 czyli 16-bitowe czego wymaga wyświetlacz podłączony do ARM`a. Obraz początkowo wczytany jest do pamięci flash jako tablica unsigned int short o wymiarze...
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...
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...
Witam serdecznie Kolegów! Aktualnie jestem w trakcie pisania gry typu labirynt z kulką na procesor ARM STM32F103VCT6. Wszystko mam pięknie i ładnie obsłużone (symulacja odbić od powierzchni płaskich, detekcja kontaktu z otworami) no ale zostało jeszcze najważniejsze - symulacja odbić kulki od kantów prostokąta. I tu niestety zaczynają się schody. Z...
Or redefine TX_DS as 5 instead of (1<<5). Or do it any other way, just don't perform this double shifting. :)
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...
DMA przed każdym użyciem wymaga, przynajmniej częściowego, powtórnego zaprogramowania - napewno długość bloku, być może też adresy. Ty tego nie robisz. Rozumiem, że po zakończeniu transmisji DMA należy ją zaprogramować jeszcze raz, ale akurat w tym przykładzie chce dane wysyłać tylko raz, inicjuje ją w Board_Config(); Więc dla pierwszego razu jest...
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...
Witaj! [syntax=c]void ADC1_2_IRQHandler(void) [/syntax] Nie trzeba w tym czyścić flagi przerwania ? Taki rozrzut pomiarów, hmmm masz tam parę przerwań włączasz je wyłączasz i timer strzela przerwaniami nie tak jak trzeba. Gdyby ta częstotliwość była zawsze mniejsza niż te 200 to było by proste, a że jest mniejsza/większa to znaczy że coś zupełnie sie...
Witam od dłuższego czasu piszę sobie spokojnie projekcik na STM32f429. Z racji że projekt dość szybko rośnie w i C zaczął zajmować pół mega postanowiłem skurczyć go przy użyciu C++. Konwersja poszła gładko jednak ADC przestał mierzyć... Siedzę nad tym już 3 dzien i doszedłem że w momencie gdy mamy coś takiego: [syntax=c]class TempSensor : public Core::Cortex...
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....
Bezpośrednie wywołanie funkcji termf ("double - %d", 1.35); powoduje błędne wyświetlenie. Bo parametr %d nie określa liczby zmiennoprzecinkowej. Trochę pobawiłem się biblioteką (STM32) i jak pisałem wyżej, funkcja termf nie działa prawidłowo gdy brakuje w jej wywołaniu wskaźnika do tablicy (nie wiem dlaczego) Trzeba go dodać: int termf (char *ptr,const...
Witam Zgodnie z poradami ze .text .global _start _start: (at) Label, not really required mov r0, #5 (at) Load register r0 with the value 5 mov r1, #4 (at) Load register r1 with the value 4 add r2, r1, r0 (at) Add r0 and r1 and store in r2 stop: b stop (at) Infinite loop to stop execution Nastepnie kompilujemy: $ arm-none-eabi-as -mcpu=cortex-m3...
W sumie w trybie 8-mio bitowym możliwe że by poszło (double buffering), bo pamięci jest na obraz 18-to bitowy. Oczywiście pod warunkiem że wtedy pamięć jest wykorzystywana jako 8-mio bitowa. Nie wgłębiałem się. Najgorzej jak nadal jest 18-to bitowa a konwersja 8-->18bitów jest robiona w locie podczas zapisu do tej pamięci. ten lcd jest wogóle jakiś...
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...
Kiedyś w poszukiwaniu taniego źródła przetworników AD i DA zawędrowałem na płytę główną PC-ta. Można na niej znaleźć zintegrowaną kartę dźwiękową zamkniętą w jednym układzie scalonym, całość ma jedną zasadniczą zaletę, w internecie można znaleźć PDF-a z dokładnym opisem tych scalaków. Takim doskonałym przykładem jest ALC202: --Single chip audio CODEC...
[syntax=c]double* xcorr_table = malloc(Na*Ma*sizeof(double));[/syntax]
stm32 double float double stm32 stm32 double buffer
stanowisko praca hitachi lampa kompresor rozruchowy
Schemat elektryczny Citroën Jumper 2013 2.2 HDI Honda Civic gaśnie na zimnym silniku - przyczyny i rozwiązania