Ale takie coś już działa :wink:. float a; uint8_t b; a = 20; a/=3; a*=10; b = a; Chodzi generalnie o jawne rzutowanie typów.
Poszukuję uC z komplementarnymi PWM + obliczenia zmiennoprzecinkowe o podwójnej precyzji. Idealny by był: STM32H745ZI. Znalazłem STM32G431KB. Trochę duży rozrzut masz. Obudowa PQFP144, a obudowa TQFP32, to zupełnie różne światy. Jeżeli ten pierwszy jest idealny, to ten drugi nie ma szans go zastąpić. Ale... Ten drugi pochodzi z rodziny zaprojektowanej...
W czym programować najlepiej w asemblerze, jeżeli masz zamiar robić w przyszłości poważne projekty! To chyba jakieś żarty :D Kto poważny dzisiaj poważne projekty pisze w asemblerze? Kto się w takim olbrzymim kodzie połapie? Kto po przerwie będzie wiedział "co robił ten fragmencik kodu"? Kto w prosty sposób przeprowadzi obliczenia zmiennoprzecinkowe...
Hej, mam całkiem spore doświadczenie z SoC'ami (FPGA + Processing System). Jest to o tyle lepsze rozwiązanie że masz od razu w jednej kości połączone możliwości procesora aplikacyjnego (takiego który uciągnie Ci embedded linux'a np. Ubuntu) oraz dodatkowych peryferiów które ty sam dodajesz do FPGA. Nie wiem jak duże masz doświadczenie z FPGA oraz z...
Siemka! Musisz wziąść pod uwagę fakt, iż zmienna single przechowuje wartości zmiennoprzecinkowe ze skończoną dokładnością i to może być zauważalne przy niektórych operacjach na tego typu zmiennych. Poszukaj w helpie od Bascoma i poczytaj o kodowaniu liczb zmiennoprzecinkowych i wszystko Ci się wyjaśni:) Pozdrawiam!! Widzę że dałeś kod.:) Mi się wydaje...
Podejrzyj kod asemblera i zobacz czy na pewno wykonują się zmiennoprzecinkowe instrukcje. U mnie dodatkowo trzeba było włączyć optymalizację oraz podlinkować libm i libg z katalogu fpu kompilatora i tak zauważyłem, że sporo zależy właśnie od wersji kompilatora. Mnożenie wykonuje od razu sprzętowo ale do pierwiastkowania trzeba go zmusić. A pozwolę też...
No zajrzałem do noty ale nadal zachodzę w głowę dlaczego używasz do tego zaraz tak kosmicznego nieporozumienia jak liczby zmiennoprzecinkowe w Bascomie albo w ogóle na AVR. Najlepiej zawsze od nich uciekać jak tylko się da - a można to często bardzo łatwo zrobić - tą ucieczkę ;) szczególnie w takich prostych przypadkach: masz tam przykładowy wzrór z...
https://obrazki.elektroda.pl/8663544600_... We współpracy z TME testujemy i uruchamiamy nowe Integracja Pico2 z Arduino jest bardzo prosta, otwieramy File > Preferences -> Additional Boards Manager URLs i dodajemy url https://github.com/earlephilhower/arduin... https://obrazki.elektroda.pl/1149548700_...
To mu działa. Ale chce wyeliminować obliczenia zmiennoprzecinkowe ze względu za prędkośc wykonywania programu
napisz w języku C funkcję, która dzieli dwie liczby zmiennoprzecinkowe mające długość do tysiąca cyfr w zapisie dziesiętnym Zadanie to przekracza możliwości języka C i zwykłych typów zmiennych, które nie są w stanie pomieścić tak dużych liczb zmiennoprzecinkowych. Aby rozwiązać ten problem, należy skorzystać z bibliotek matematycznych, takich jak GMP...
Jaką rozdzielczość ma dac 8-bitów? Jaka jest częstotliwość pracy przetwornika - sampli/sekundę? Jak generujesz sinusa? funkcja z C i obliczenia zmiennoprzecinkowe czy coś mądrzejszego?
Gdybyś przeczytał [url=http://www.nongnu.org/avr-libc/user... tej funkcji, to byś wiedział, że korzystają one z arytmetyki zmiennoprzecinkowej. Bez optymalizacji to procesor (zamiast kompilatora) będzie musiał wykonać obliczenia zmiennoprzecinkowe - a to oznacza dołączenie kodu obsługi liczb zmiennoprzecinkowych....
Już z Piotrek.pxf doszliśmy do wniosku że również celerony są doskonałe w swojej niedoskonałości gdyż zaokrąglają obliczenia zmiennoprzecinkowe i najprawdopodobniej dzięki temu się nie wiesza. Ale problem dalej istnieje.... :(
Obliczenia zmienoprzecinkowe są znormalizowane w normie ieee754. Na '51 bedziesz musiał sobie zasymulowac obliczenia zmiennoprzecinkowe software'owo. Do tego masz materiały wprowadzające: http://www.cs.berkeley.edu/~wkahan/ieee7... http://iridia.ulb.ac.be/~fvandenb/miniSS... http://www.cse.ucsd.edu/classes/su02/cse...
Z tego co widzę tutaj: [url=http://www.ideone.com/]ideone to Twój kod poprawnie wyświetla wartość Celcjuszy. Myli się z Fahrenheitem, ale to wina napisanego kodu. 9/5 jest równe 1 dla maszyny. Albo wymuś obliczenia zmiennoprzecinkowe (wstawiając wcześniej (-1*)) albo zmień kolejność operacji (dziel na końcu)]Link
Przerwanie co 8ms (ze względu na to że stosuje bascom i liczby zmiennoprzecinkowe nie mogę zejść niżej) ... Całość pisana jest w bascomie, w przerwaniu nie mogę zejść z czasem niżej bo dużo czasu zajmują obliczenia na zmiennych zmiennoprzecinkowych. No to nie stosuj zmiennoprzecinkowych obliczeń oraz zrób krok do przodu i zmień język na C. Co do samego...
Twoja zabawka jest cool, tak czy owak. W sumie to forum amatorów/pasjonatów, mimo wszystko, trzeba patrzeć na toto, troszkę 'poważniej', bo to praca. Z definicją robota nie ma co dyskutować, jakby w tą stronę iść , to wszystko co samo się rusza, byłoby robotem :D Podobna historia ze stabilnością. Gotowe asic-i znajdzesz w googlach, to nie problem. W...
Witam żeby to przeliczyć w sterowniku musisz znać rozdzielczości wejść sterownika. Przykład dla założenia że rozdzielczość wejść wynosi 12 bitów i wejścia PLC są również 4-20mA . dla ciśnienia 0 w PLC 0 , Dla ciśnienia 30 bar w sterowniku 4095 funkcja liniowa ( zakładam taką charakterystykę czujnika ) y=ax+b wyznaczasz a i b w tym przypadku b=0 a=0,00732600...
Wz = 31,5-((255-n)/2) wystarczy pomnożyć przez 10 10Wz = 315 - ((255-n)*5) Teraz masz już całkowite. Przecinek wstawiasz podczas wyświetlania na LCD. Ustawiasz kursor na pozycji drugiej, wyświetlasz liczbę - w twoim przypadku 10x większą. Teraz dzielisz liczbę przez 10 tak aby wynik zawierał liczbę pełnych dziesiątek (bez części ułamkowej), ustawiasz...
No cóż, wygląda więc na to, że używasz biblioteki standardowej C, która nie obsługuje %f. Może w dokumentacji środowiska/kompilatora jest opisane, czy da się to włączyć i jak. Gdyby się nie dało, to - o ile same operacje zmiennoprzecinkowe działają - można użyć czegoś w stylu printf("%u.%03u", x/1000, x%1000); A jak nie, to trzeba się pobawić w obliczenia...
Stałej F_CPU nie definiuje się w kodzie. Robi się to w ustawieniach kompilatora, szczególnie, że korzystasz z opóźnień za pomocą funkcji _delay_ms(). http://mikrokontrolery.blogspot.com/2011... Dodatkowo, jeśli chcesz, żeby procesor taktowany był zegarem 16MHz, to taki kwarc zewnętrzny musisz podłączyć oraz ustawić odpowiednie...
Witam! Jestem w trakcie pisania softu 3. wersji sterownika do akwarium (1. w ogóle nie wyszła, 2. była bardzo awaryjna). Przesiadam się z Bascom'a na C, przez co mam sporo problemów z nowym językiem programowania. Mój problem polega na tym, że zamierzam zdefiniować 4 piny w tablicy. A mianowicie: #define DEVICE_PIN[4] {2,3,4,5} Jak...
(at)szymon122 Dziękuje za odpowiedź. Wiem o tym, że overlocking zwiększa pobór prądu oraz zmniejsza niezawodność. Czasem zdarza się różnica w cenie płyty na poziomie 100/150 zł tylko wtedy możliwe jest przetaktowanie. Najczęściej dostanie się wtedy również lepszą sekcje zasilania oraz radiatory. (pomijając sprzęt z dopiskiem gaming) Znalazłem test:...
Witam, Zrobiłem VI w Labview do komunikacji z Atmegą32 przez RS-232. Atmega wykonuję obliczenia zmiennoprzecinkowe i wysyła w czterech bajtach dane typu float. Labview zaś po otrzymaniu czterobajtowych danych typy string, powinno konwertować je na dane float przy pomocy funkcji Scan from string. Niestety, ale nie wiem czemu labview widzi gdzieś problem...
Kompilator powinien przede wszystkim wypluć ostrzeżenia o implikowanej deklaracji funkcji czekaj_us() w pliku xxxx2.h (o ile to z niego wywoływana jest ta funkcja). Druga rzecz - jeżeli funkcja wywoływana jest z pliku .c, to czy w tym pliku, lub pliku przez niego include'owanym znajduje się deklaracja tej funkcji jako extern ? Jeżeli nie - patrz punkt...
Bash nie umie robić obliczeń zmiennoprzecinkowych. Potrzeba do tego np. `bc` [syntax=bash] LICZBA=`tail -c 6 ./text.txt` echo $LICZBA WYNIK=`echo "100-$LICZBA" | bc` echo $WYNIK [/syntax] Separatorem ułamka dla bc musi być kropka a nie przecinek.
Witam forumowiczów! Co wypada korzystniej: zakup AMD Phenom II X6 (1055 T, 2.80GHz, 6 MB cache) czy zakup Intel Core i7 (920, 2.66 GHz, 8 MB cache) ? Pytam nie tylko o procesor, ale o cały zestaw, bo płyty pod AMD socket AM3 są sporo tańsze od płyt pod Core i7 socket 1366 (różnica kilkuset złotych). Pamięci DualChannel też są trochę tańsze od TrippleChannel....
Nie ma potrzeby przełączać pomiędzy refami. Zrobię jednak tak, że AREF = AVCC i tyle. Przy tak małych dokładnościach i tak wielkiej inercji grzałki nie będzie to przeszkadzać. Hm.. Ile wytrzyma LM? Nie mam pojęcia :) w teorii ma wytrzymać do 150 wiec może podziała trochę w niższej... A jaki inny sensor proponujesz do takiego zastosowania? Może coś na...
Ja np. na 30kB zmieściłem bardzo skomplikowane obliczenia zmiennoprzecinkowe używane do wyliczania trajektorii dla dwóch silników krokowych (oczywiście JEDNOCZEŚNIE), do tego oczywiście inne drobnostki jak jakieś diody, inne układy (potencjometry cyfrowe, ...), timery, scheduler funkcji, interpreter poleceń przesyłanych UARTem (z FIFO w dwie strony)....
Wydaje mi się że przez serial wysyłasz bajt (np. char lub uit8_t właśnie) więc nie powinno być żadnego problemu pod tym względem. Do obliczeń możesz wykorzystać int (zależy co będziesz robił ale z reguły dużo wygodniejszy) lub float, jeżeli potrzebujesz zmiennoprzecinkowe (na avr float jest bardzo ciężki, są triki które pozwalają na jego ominięcie,...
Uwagi zostały wymienione. Ja dodam ze skoro już stosujesz zmiennoprzecinkowe zmienne pamiętaj o rzutowaniu argumenty nie wyniku. Bo obliczenia które stosujesz nie dość ze są blednę, to przez promocje typu ich wynik będzie całkowicie zły.
Czyli co mam zrobić? Przemapuj ograniczony zakres ruchu i traktuj to jako pełny(!) W Arduino isnieje do tego funkcja 'map'. e marcus Fizycznie działa to identycznie, jak opisałem. Chociaż prawdopodobnie wewnętrznie funkcja ta nie wykorzystuje obliczeń zmiennoprzecinkowych. Tutaj jest to opisane: [url=https://www.arduino.cc/reference/en...
Hunterhouse ten sposób z liczeniem liczby modulo jest genialy :) Sam na to wpadles?? Na koncu jest jeszcze obliczany pierwiastek,tez to jest dosc czasochlonne dla procka , zastanawiam sie czy na niego nie ma podobnego sposobu :) Czyli beta przyjmuje wartosci od 0- 31, i zmienia sie w zaleznosci od k ,ale caly czas w zakresie 0-31 . Jak dokladnie obliczone...
double func( double A Hmm.. A jak 64-bitowa liczba double została zmieszczona w czterech 8-bitowych rejestrach? Magia się dzieje :) A co do pisania w ASM, moje zdanie jest takie, że dzisiejsze kompilatory są na tyle dobre, że przy włączonej optymalizacji naprawdę trudno jest samemu napisać lepszy kod. Oczywiście, tam gdzie jest potrzebna większa kontrola...
Kilka sprostowań: 1. W kompilatorach C na AVR typ float jest tożsamy z double i jest 32 bitowy. Moze to się zmieni w przyszłych implementacjach. 2. Mantysa w 32 bitowej reprezentacji liczby jest 23 bitowa a w 64 bitowej jest 52 bitowa. Jako, ze na jedną cyfrę dziesiętną jest potrzebne ok 3.32 lcyfr binarnych (dokładnie log(2)(10) <-podstawa 2 ) to...
Przyznam, że nie rozumiem także... W procesorze wszystkie operacje zmiennoprzecinkowe przeprowadzane są z największą możliwą precyzją (ona jest możliwa do ustawienia dla FPU!), a wyniki automatycznie przeskalowane na typ taki, jaki był użyty. Owszem, można dokonać rzutowania wszystkich typów na taki o największej dokładności, aby wyniki jednych działań...
Chyba żartujesz? Masz wbudowany kontroler do matryc U mnie w Keilu dla ubogich wszystko działa normalnie. Natomiast gdy korzystałem z jakiś wartości w programie które nie były ani zdefiniowane ani w formie zmiennych/stałych to musiałem je rzutować na float bo domyślnie kompilator traktuje je jako double (kompilator w formie warninga informuje o domyślnej...
Należ porównywać np. takie parametry jak: - czas trwania typowego cyklu programowego, - czas reakcji sygnału wejście/wyjście, - max. liczba wejść i wyjść, ewentualnie max. liczba obsługiwanych modułów lub podstawek, - wielkość pamięci przeznaczonej na program i dane oraz typ stosowanej pamięci, - możliwość wykonywania obliczeń zmiennoprzecinkowych,...
W zasadzie wszystko opanowałem ,ale mam problem z takimi działaniami : 1/x gdzie np x=3900 normalni wychodzi 0.0002564 ja potrzebuję wyciągnąć to 2564 tak aby zmieścić się w liczbach przy obliczaniu do 65535. potem rozdzielę sobie 25 i 64 B.
Witam Czy ktoś wie czemu zmienna single=0,0103 przy wyświetlaniu przyjmuje wartość 0,010299978 ??? Po to stosuje się zmienne zmiennoprzecinkowe żeby mieć dokładność a nie jakieś bzdury. $regfile = "m8def.dat" ' typ procesora $crystal = 8000000 ' czestotliwosc kwarcu Config Lcdpin = Pin , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.5...
Cuda się dzieją i to niesamowite : Watt.c #define F_CPU 1000000UL // 1 MHz #include <avr/delay.h> #include <avr/signal.h> #include <avr/interrupt.h> #include <avr/io.h> #include <inttypes.h> #include <stdlib.h> #include <math.h> #include "Watt.h" #define REP_ADC 64 /*first array element is leftmost...
Domyślam się, że X jest to zmienna. Jakiego typu ona jest? Pewnie całkowitoliczbowego (np. int). Spróbuj zamienić X na typ double. Dodatkowo kompilatorowi można zasugerować, że ma do czynienia z obliczeniami zmiennoprzecinkowymi przez pisanie stałych liczbowych z przecinkiem, np 100.0 Drugi pomysł jest taki: Z wyliczeń wynika, że podany przez Ciebie...
:arrow: hunterhouse Dobrze, ale nie wszystko, nie zgadza się z algorytmem :( W sumie to się zgadza, ale tylko dla 3 próbek, ale te 3 próbki to za mało. aby zapisać sygnał 31 Hz (najniższa częstotliwość filtrowana) przy próbkowaniu 44.1kHz potrzebujesz aż: 44100/31=1423 próbki. Do atmega można chyba podłączyć pamięć zewnętrzną (ale nie wiem, bo nigdy...
Po co ci ta sekcja krytyczna w EXTI9_5_IRQHandler ? Czy jeszcze jakies przerwanie korzysta ze zmiennych ktore chcesz chronic ? Jesli jest faktycznie potrzebna )w co watpie) to obliczaj pierwiastek poza nia, skopiuj wynik do zmiennej lokalnej i dopiero w sekcji krytycznej przekopiuj zmienna lokalna do globalnej. Nieliniowe funkcje biblioteczne potrafia...
Jaki więc najlepiej zastosować epsilon dla porównywania liczb o dokładności 2 miejsc po przecinku? 0.005 Dodano po 3 Temat porównań zmiennoprzecinkowych jest powszechnie znany (przynajmniej w pewnych kręgach) ... ta brzydka teoria, która rzekomo niczemu nie służy .... okazuje się, że teoretyczny podkład z numeryki, czy obliczeń zmiennoprzecinkowych...
Tło projektu Step1 Niedawno opublikowałem na Githubie oprogramowanie open-source o nazwie "Yunhan Grill Master". Adres repozytorium kodu: https://obrazki.elektroda.pl/3144397700_... . To oprogramowanie do grillowania zostało zaprojektowane z uwzględnieniem układu RK3399, w tym zarówno dużych, jak i małych architektur rdzeni CPU i GPU...
A sprawdziłeś czy wygenerowany kod nie przekroczył rozmiaru pamięci? Funkcja _delay_us() jest przewidziana dla stałych wartości dzięki temu w trakcie kompilacji preprocesor wykona te wszystkie obliczenia na zmiennych zmiennoprzecinkowych dzieki temu rozmiar takiej funkcji zajmie kilka bajtów. Gdy wstawisz zmienną to kompilatror musi wygenerować kod...
Z tego co widzę, to jest wykorzystywana gotowa biblioteka Tak, stąd: https://github.com/kosme/arduinoFFT Zabawne jest to, że do obliczeń zmiennoprzecinkowych używany jest typ double, którego faktycznie nie ma w Uno czy Nano. Dodano po 15 Jeżeli już ktoś się upiera do wykonywania tego rodzaju obliczeń na poczciwym Uno czy Nano, z jeszcze bardziej poczciwym...
No coz, bedac szczery to zle trafiles. Ten procek jest bardzo przedpotopowy. Dlatego reklamowano ten notebook w 2007 jako laptop za 100 papierow. No coz, widac procek byl bardzo tani nie bez powodu. Nie posada zadnych ukladow wspomagajacych multimedia, jave czy obliczenia zmiennoprzecinkowe. Wiec ze swoja moca obliczeniowa nadaje sie raczej tylko jako...
Ja tylko chciałem zwrócić uwagę na pewien szczegół, nagminnie ignorowany. a = pow(sin(dlat/2),2) + cos(lat1) * cos(lat2) *pow (sin(dlon/2),2) c = 2 * atan2(sqrt(a), sqrt(1-a)) d = R * c Ja bym to zrobił tak: a = sin(dlat/2)*sin(dlat/2) + cos(lat1) * cos(lat2)...
liczby zmiennoprzecinkowe dzielenie zmiennoprzecinkowe atmega zmiennoprzecinkowe
chrysler radio kostka adresacja statyczna aktualizacja firefox
zg40c zwrotnica zg40c zwrotnica
Hisense 32A4BG Remote Control Not Working: Troubleshooting Guide BLUETEC BC 9000: Czy posiada funkcję MEMORY?