Cecha EA = -22 Cecha E6 = -26 wg algorytmu który podałem w moim pierwszym poście 0100 0000 0000 0000 0000 0000 * 2^(-22) 01,00 0000 0000 0000 0000 0000 = 1.0 kg -1kg 1100 0000 0000 0000 0000 0000 * 2^(-22) wniosek: najstarszy bit określa znak liczby, 1 - ujemna, 0 - dodatnia 0.1 kg 0110 0110 0110 0110 0110 0110 * 2 ^ (-26) 0,00011001100110011001100110...
Zapominasz, że w tej pamięci nie tylko te "floaty" siedzą (ściślej - ich obsługa) ale również obsługa uarta oraz ADC. To że masz 3 zmienne typu float o niczym nie przesądza. Przy jednej miałbyś podobnie. Oprócz tego procedura zamiany float-->str - też zajmuje swoje. W twoim przypadku wystarczyłoby abyś mnożony wynik, zapisał do liczby typu int. sprintf...
Musisz mnożenie zrobić na liczbach rzeczywistych. float f; f = pomiar1; f *= 0.244; pomiar1 = (long) f;
Witam, napotkałem w swoim projekcie na dziwny wręcz dla mnie nie wytłumaczalny problem dotyczący mnożenia liczb zmiennoprzecinkowych. Poniżej kod który generuje problem: [syntax=c]float error = ( tutaj podaję różne wielkości z przedziału -100 do +100 ) float dana = error * 4.0f; [/syntax] Następnie zmienną dana wyrzucam sobie rs232 na komputer i otrzymuję...
(unsigned int)(((float)stala)*0.58 ) ; powinno wystarczyć (unsigned int)( (float)stala * 0.58 ) '(float)stala': deklarujesz, że Twoja 'stala' jest zmiennoprzecinkowa mówisz w ten sposób kompilatorowi aby potraktował wyrażenie '(float)stala * 0.58' jako mnożenie dwóch liczb zmiennoprzecinkowych. Dzięki temu, wynik tego mnożenia również jest zmiennoprzecinkowy....
uruchomiłem ten program bez kompilacji - jak podaję liczby całkowite to wszystko okej a jak podam liczbe zmiennoprzecinkowa, np. wpisze "3.45" (kropka jest w srodku oczywiscie) to program nie przyjmuje wiecej liczb tylko od razu wyswietla olbrzymie liczby nie wiadomo skad wzięte - więc jeżeli ten program nie działa w dev c++ to nie bardzo :/ coś jest...
1. Round() dostaje argument całkowity, zamienia go na float, a następnie z powrotem na int. Operacja ta nie robi nic, za to zajmuje zapewne grube setki cykli procesora. 2. Te pętle while() działają tak: tak długo, jak jest spełniony warunek, zapalaj (już zapaloną diodę) i czekaj - ciut bez sensu. Dlaczego nie: if (NORTH() < SOUTH()) zapal; else zgaś;...
Freddie Chopin: Ale przecież użycie fixed point to nie żadna premature optimization. Raczej zastanowienie się nad sensem obliczeń i wyborem optymalnego algorytmu. To imho przypomina raczej wybór pomiędzy uint8_t a uint16_t. Podałeś przykład z mnożeniem niedostosowanych do FFP liczb, to ja podam kontrprzykład: for(float i=0;i<10;i+=0.00000001); Zadziała...
No w DSP (takich srogich jak np LTE i nie tylko) arytmetyka fixed point jest podstawą i float jest tylko ostatecznością. Ja tam i FFT i atan2 liczę na fixed point i jeszcze dzielenie algorytmem babilońskim co by przypadkiem nie użyć działania dzielenia, co robi zamieszanie w kodzie: https://github.com/marcinszajner/Driver/...
Najprościej: 1. mnożysz float *10, powstaje np zmienna "liczba"; 2. następnie "liczba" dzielisz przez 10 - masz zmienną "całe"; 3. na "liczba" wykonujesz dzielenie modulo 10 i masz ulamek. W przypadku całkowitych można też od razu rzutować na int, tak jak pisał kolega wyżej. Poskładać to do kupy z kropka pomiędzy za pomocą itoa() i już.
Witam, Kolega tmf ma całkowitą racje, na AVR unikamy operacji float jak ognia. Nie dość że koszmarnie wolne to jeszcze zjadają sporo flash. Lepiej zrobić kilka operacji mnożenia i dzielenia niż jedną na typie float. Poza tym AVR GCC nie obsługuje liczb typu double, traktuje ją tak samo jak float (tyle samo bajtów w pamięci zajmuje double co float) mimo...
Polecam książkę "Wprowadzenie do cyfrowego przetwarzania sygnałów" Lyons, Richard na podstawie, której powstał poniższy kod. Poniżej kod implementujący filtr FIR. F0 - częstotliwość odcięcia filtru Fs - częstotliwość Nyquista próbkowanego sygnału. Jeśli częstotliwość próbkowania wynosi 1Mhz to częstotliwość Nyquista wynosi 500kHz dolnoprzepustowego...
Wszak podany program robi ją właśnie używając tylko mnożenia. Inaczej już się nie da... (pomijam rekurencje, które są bardziej złożone w tym przypadku). Ale nie możesz tutaj używać float! Silnia jest określona wyłącznie w zbiorze liczb naturalnych!
Mnożąc zmienną typu WORD przez stałą CONST wychodzi niedokładny wynik. Np: WORD = 200 x CONST = 0.0025 = SINGLE = 0.499999933. Dokładność obliczeń zmiennoprzecinkowych jest kwestią długości (i formy) reprezentacji liczb zmiennoprzecinkowych. Z oczywistych względów w ośmiobitowych procesorach z małą pamięcią reprezentacja FP nie może być zbyt długa...
Wszystko pięknie ładnie ale wolałbym wiedzieć jak jest to zrobione, że on liczy takie liczby. Oczywiście nie chodzi mi o notacje otwartą tylko o samo podanie dwóch liczb z duża precyzja i wykonanie na nich operacji np. odejmowania. Dodano po 4 Jak dodać bibliotekę ap float do DEV C++ jeżeli nie ma tam pliku z rozszerzeniem .a ani .lib
Składni nie będę sie już czepiał choć to trochę jak z zamkiem centralnym. Nikt nie broni używac klucza :P Dżyszta słowo chyba bardzo tu pasuje:) Ile jest 79 podzielone na 1000? Oczywiście to pytanie rytoryczne. Ja bym zaokraglając do dwóch miejsc po przecinku powiedział, że 0.08. Program proponowany przez Krashan7 powie jednak, że to 0.07. Różnica około...
Wygląda nieźle, przy czym jeśli dobrze widzę (a nie znam simensa) mnożysz liczbę z zakresu 0-25 przez 10 a potem oczekujesz 2500, to mi się nie zgadza. Chyba że konwerter float->int wstępnie też mnoży przez 10 (pomija przecinek) Ten tasiemiec liczników dobrze jest rozbić na pojedyncze wiersze, jak trzeba to dodać bity pomocnicze, chyba że jesteś na...
Zgadzam się że może być przydatne trzymanie liczb skalowanych jakąś potęgą 2 itd... I tak się w praktyce robi gdy obliczenia na float-ach są za wolne (zarówno softowo jak i czasem również hardware-owe operacje na float-ach mogą być za wolne). Zapoznaj się z formatami Q. Format Q jest też dokładniejszy od float gdy na część ułamkową przeznaczymy ponad...
a nie mówiłem...drugi zajmie jeszcze więcej :) Drugi pomysł używałem na Atmega16, lecz nie wywoływałem fprintf_P(); tylko kilka razy. Jeśli wiesz jak będzie wyglądał wynik tzn ile będzie miał miejsc po przecinku i w sumie ile cyfr to zawsze możesz użyć pomysłu kolegi: elektronik12z Możesz też bawić się w dzielenie, mnożenie, odejmowanie i modulo (czyli...
Edit15 -> Text = IntToStr( StrToInt( Edit30->Text + // dodawanie textu to rozumiem... konkatencja Edit31->Text * // ale mnożenie wyrazu przez liczbe? ( StrToInt(Edit9->Text) / ( StrToInt(Edit8->Text) + // tu chyba powinien być znak odejmowania StrToInt(Edit9->Text) ) ) ) ) sprubój:...
witam, mam zadanie z programowania w Delphi 7, jestem kompletnie zielony, miałem 3 laborki z programowania z PROSTYCH przykładów, a na zaliczenie muszę wykonać taki o to program: (nie studiuje żadnej informatyki). program który wykonuje mnożenie dwóch liczb zespolonych podanych jako część rzeczywista i urojona (nie ma wyboru sposobu podawania liczb...
Tego help'a znam, dość często go przeglądam, jednak wielu funkcji nie ma w nim opisanych. Funkcja write_float_eeprom była opisana (w sumie to była tylko zmianka o tym) w którymś z przykładów na stronie, stąd też wiedziałem że znajduje się w pliku internal_eeprom.c. Zawartość pliku poniżej. [syntax=c]//////////////////////////////...
Nie można w ten sposób, bo short int jest typem całkowitym. Jeżeli nie wykonasz rzutowania go na float i nie przechowasz wyniku jako float to otrzymasz liczbę całkowitą. Lepiej powiedz jakie masz zadanie do rozwiązania.
_pieczas zauważ iż modyfikujesz tylko 1 element tablicy, liczenie za każdym razem sumy z całej tablicy nie jest potrzebne. Pseudokod: Ta podpowiedź pozwoliła mi skrócić czas obliczeń do tego stopnia, że wg symulacji procesor wyrobi się w czasie poniżej 0,5ms. Zasadniczo minimum już jest spełnione, ale skoro można wyciągnąć więcej to spróbuję. Dziękuję...
Wielkie dzięki! Wybrałem mnożenie x1000 i odpowiednio ujarzmiłem wyświetlanie przecinka. W każdym razie conajmniej ciekawe jest aż tak dramatyczne zwiększenie kodu programu po użyciu typu float. Pozdro
przy czym najwięcej problemów sprawiło mi "fused-multiply-add" i związane z nim cuda. Dokładność przy liczbach zmiennoprzecinkowych jest różna, zależy od rodzaju sprzętu oraz rodzaju instrukcji. Przeważnie mnożenie z dodawaniem może mieć większy błąd, niż wykonanie tych instrukcji z osobna. Dokładność też może być różna w zależności od rodzaju użytego...
Brawo za to, że dzielisz się tym co napisałeś. Ale niestety to przykład jak robić grafikę wolno. Użycie liczb zmiennoprzecinkowych, dzielenia, mnożenia nie wspominając o trygonometrii to podstawowe błędy. Tutaj przykładowo kod rysowania linii bez float, mnożenia i dzielenia. Używane są dane typu int, bo funkcja pracowała na 32 bitowym ARM, ale możesz...
[syntax=c]//liczy liczby zespolone, dodaje i mnoży #include <iostream> using namespace std; struct TComplex { float Re; float Im; }; void zmienne() { TComplex a,b,suma,iloczyn; cout<<"Podaj 1 liczbe zespolona: "<<endl; cin>>a.Re; cin>>a.Im; cout<<a.Re<<" j"<<a.Im<<endl; cout<<"Podaj 2 liczbe...
Z tym mnożeniem przez 0 i 1 dla 8 bitów to wyjdzie porażka bo albo świeci albo nie świeci. Nie chodzi o mnożenie razy 0 lub 1, bo wynik przecież jest oczywisty. Tylko o mnożenie razy liczbę z przedziału 0 do 1, żeby uniknąć typu float to robi się to wykorzystując arytmetykę stałopozycyjną lub tymczasowe promowanie do typu szerszego - np. liczbę z zakresu...
Potrzebuje wykonać sporo obliczeń na liczbach zespolonych więc żeby było łatwiej je przemnażać pomyślałem że zastosuje typ complex outRe = Re1 * Re2 - Im1 * Im2; outIm = Im1 * Re2 + Re1 * Im2;
Witam, Jak mozna to zrealizowac prosciej? Moze wystarczy int - najpierw mnozac przez 60, a pozniej dzilac przez 10000. Tylko, czy wtedy otrzymam wartosc calkowita, ktora chce? Prościej = bez użycia floata? Wszystko zależy od zakresu przetwarzanych liczb. Jeśli 60*x < 10000, to zawsze dostaniesz zero. Ogólnie przy wynikach blisko 0 stracisz dużo dokładności...
Ok więc jak rozumiem chcesz zamienić to na napięcie... mnożenie floatów w ASMie to poroniony pomysł, wiesz o tym? Anyway, pomyśl jak to zrobić w całkowitych liczbach (te 12bit to nei problem - znajdź biblioteki mnożące 16x16) lub mysl sam jakt o w flotach zrobić (ale będzie to sadystycznie wolne).
Tak, float jest mi bardzo potrzebny, bo program liczy log10(a) dla a w zakresie 1 - 10000 z dokładnością trzech cyfr po przecinku - żeby dostać tylko liczby całkowite, mnożę ten wynik przez 1000, ale chcę żeby wynik zaokrąglił się odpowiednio do pozostałej po przecinku części.
No właśnie jeśli wyśle liczbe 1.0001 - to otrzymam na terminalu .0001. Nie wiem co jest... próbowałem bawić się naprawdę podstawą podstaw tzn. robiłem rzut z float->int - nie działa; potem mnożenie *10 i /10 (też nic) tak, aby otrzymać tą część całkowitą. Niestety... buffor tab_1 niczym się nie zapełnia, tak jakby STM nie wiedział jaki jest wynik tych...
Witam, jakby ktoś chciał skorzystać z rozwiązania, to proszę bardzo: Jest to przykładowy program napisany w C++ Builder. Mnoży on dwa wielomiany wykorzysując transformatę Furiera, korzystając z biblioteki #include "fftw3.h" A to jest zawartość pliku .cpp: [syntax=cpp]//--------------------------... #include...
To "tradycyjne" podejście generuje inny przedział - od 1/1001 do 1000/1001 włącznie; książkowy przykład daje liczby z zakresu od 0 do 1 włącznie. Użycie RAND_MAX gwarantuje najwyższą dostępną rozdzielczość, zaś "tradycja" ogranicza ją do 1/1001. Zastanawiam się, dlaczego mnożą tam przez 1.0 zamiast zwyczajnie zrzutować na double. Jeszcze jakiś kompilator...
sprintf z "%.2f". Trzeba tylko zlinkować z odpowiednią wersją printf z biblioteki, żeby obsługiwała float. Kombinowanie z dzieleniem, mnożeniem i odejmowaniem floatów nie jest dobrym pomysłem, ze względu na zapis liczby zmiennopozycyjnej. Takie operacje mogą dać dziwne rezultaty, są też kosztowne obliczeniowo. Lepiej powierzyć to dedykowanym funkcjom...
Jeśli chcesz uzyskac aptekarską dokłaność to tak :) Gdybyś użył normalnego napięcia odniesienia czyli 4,1V nie miałbyś w ogóle tego problemu poza tym napięcie zasilania nie jest dobrym pomysłem na napięcie odniesienia. W tym przypadku musisz wykonywać niepotrzebne mnożenie a brak ci zamiany float na int. O ile się nie pomyliłem to wystarczy taka deklaracja...
Witam od jakiegoś czasu pisze sobie coś w CCS i do wczoraj wszystko było ok, ale postanowiłem mój program przenieść na nowy projekt. To znaczy tworze w CCS nowy projekt, wrzucam tam plik xxx.c , dołączam wszystkie biblioteki i pliki nagłówkowe ze starego projektu i kompiluje.... no i się nie skompilowało. "C:\ti\c2000\cgtools\bin\cl2000...
Bardzo dziękuję za sugestie - myślę, że skoro dobrałem bardzo idealne rezystory to w takim razie tak jak pisał atom1477 na pewno pozostawała kwestia poziomu wewn. napięcia odniesienia - być może jest niższe niż 2,56 lub nieco wyższe - też to widziałem w PDF'ie - tylko jak to sobie skalibrować bo widziałem że niektórzy to jakoś robią i radzą sobie bez...
Chyba będzie najlepiej jak posłużę się przykładem. Przedstawiam wartości maksymalne. przyklad 1. x=ADC/timer - x to bedzie duży ułamek np. 0,00 999 999 999 będzie użyty jako stała wyliczona na początku z przetwornika ADC i timera, timer może przyjąć nawet wartość 9 999 999 999 999 przyklad 2. y=timer2*x - timer2 moze przyjmowac wartosci 9 999 999 999...
Do przekalibrowywania wartości analogowych należy używać bloków operacji arytmetycznych. ADD (dodawanie), MUL (mnożenie), DIV (dzielenie), SUB (odejmowanie). Bloki te istnieją w kilku wariantach: B - wartości całkowite 8 bitowe 0..255 lub -127..127, I - wartości całkowite 16 bitowe, D (DI) - wartości całkowite 32 bitowe, R - wartości rzeczywiste 32...
Witam. Odpaliłem właśnie bibliotekę freemodbus na avr i potrzebuje informacji w jaki sposób zapisać w rejestrach Read Holding registers liczbę float. Rejestry Read Holding registers w tej bibliotece są uint32_t. Ogólnie w programie działam na liczbach całkowitych. Przykładowo mam taką wartość rzeczywistą pewnej zmiennej (5,25) to mnożę ją razy 100 i...
Witam, wlacze dalej z 8051 jako licznikiem kilometrów. Ktos doradzil mi abym poszukal procedur ALU ktore wykonuja obliczenia na 16 bitowej liczbie w 2 rejestrach. Znalazlem dodawanie odejmowanie konwersje etc. Nie znalazlem nigdzie mnozenia dzielenia itd. Moze zaczne od problemu, napisalem program ktory w ciagu sekundy zlicza impulsy na T0(P3.4) w ciagu...
ARM jest ma architekturę riskową więc dzielenie nie zawsze jest. Rdzeń Cortex M3 np. STM32 firmy ST ma dzielenie sprzętowe liczb całkowitych, zwróć uwagę na algorytm na pewno dzielenie jest i jeśli jest sprzętowe jest dużo szybciej. Jeśli to Ci nie weystarczy najlepiej będzie wziąć DSP'ka ze sprzętowym blokiem do operacji zmienno przecinkowcyh. Dzielenie,...
Witam! Uczę się podstaw programowania w C, dobrze idzie, tylko zatrzymała mnie w miejscu pewna rzecz - otóż ostatnio KAŻDY program, który piszę wywala błąd po wprowadzeniu pierwszej danej. Wszystko się kompiluje, natomiast jesli jest błąd w stylu niewstawienia przeze mnie np. średnika to wtedy pokazuje błąd. Antywirus na pewno nie blokuje kompilatora,...
użyłem roundf i teraz zmienna ''i'' jest zaokrąglana. dzięki za to też :-) teraz pytanie, czy tak napisany program To trzeba było się spytać wcześniej :) W zaproponowanym przykładzie najpierw przeliczasz kąt phi z radianów na zakres Dżyszla ) dochodzi do 7% błędu przy phi~pi/2 - przy 3 składnikach błąd nie przekracza 0,5%. Z kolei aproksymacja bez...
Pewnie banalna sprawa, ale jeszcze tego nie robiłem i mam z tym problemy. To znaczy obszedłem problem, ale jednak chciałbym wiedzieć jak to zrobić. Float o ile mi wiadomo ma 32 bity. Aby zapisać go w eepromie, muszę podzielic go na bajty. Otóż po podzieleniu na bajty, zapisaniu a następnie odczytaniu bajtów i połączeniu nie otrzymuje juz liczby typu...
A czego się spodziewasz po dzieleniu liczb całkowitych? Algorytm działający na floatach jest dalece bardziej skomplikowany. Możesz się posiłkować mnożąc resztę z dzielenia przez stałą, np. 10, 100, 1000 itd i ponownie dzieląc, uzyskasz wtedy kolejne cyfry po przecinku. W ten sposób odkryjesz arytmetykę stałopozycyjną.
1. 2048+Y0+((X-X0)*(Y1-Y0))/(X1-X0); samo (Y1-Y0)/(X1-X0) może dawać wynik nie dokońca taki o jakim myślisz ponieważ to są liczby całkowite Słuszna uwaga. Ale na początek można zacząć od wywalenia nawiasów dookoła tego dzielenia, tak aby najpierw wykonało się mnożenie, a dopiero potem dzielenie. Jeśli to nie pomoże w wystarczający sposób, to albo trzeba...
Witam.Chciałbym się podzielić programami napisanymi w C.Są to podstawowe programy jakie pisze się na uczelniach (Politechnika) Mam nadzieję że będą one pomocne dla innych studentów.Udostępniam je z takiego powodu, że nie każdy po dwóch wykładach z C umie już pisać takie "zaawansowane" dla początkującego programy. Program za pomocą szeregu oblicza wartość...
Panowie, tylko nie tak się liczy alfablending... Wiemy. Tylko pytałem o źródła twojej wersji i ich nie wstawiłeś. Wzór na wyliczanie alfablendingu dla pikseli jak sądziłem jest powszechnie znany... myliłem się? Na AVR raczej nie używasz Float. Raczej nie używam float. A jest jakiś powód, aby float tu był potrzebny? res=alfa*p1+(1-alfa)*p2; Coś więcej...
- musimy w programie zrezygnować z użycia ERRNO do kontroli operacji zmiennoprzecinkowych Ale przecież opcja -fno-math-errno sprawia, że flaga ERRNO nie jest ustawiana dla tych funkcji matematycznych, które są wywoływane jedną instrukcją, tak jak na przykład pierwiastek, mnożenie dzielenie etc. Dla funkcji które wymagają litanii assemblerowej ERRNO...
Witam, niestety Logo! nie obsługuje funkcji matematycznych na liczbach zmiennoprzecinkowych, zostaje Ci tylko bloczek Float/Integer. Przy zastosowaniu tego bloczka możesz: - przekazać liczbę float na np. ekran TD - wykonać operację mnożenia liczby float, parametr Resolution (0.001 do 1000) - przy odpowiednim parametrze Resolution, operować w zakresie...
Witajcie, mam taki problem: mam do napisania program według założen prowadzącego ... Bold to wykonane. Zad 1. Utwórz klasę macierz reprezentującą macierz jednowymiarową. Klasa powinna zawierać metody implementujące typowe operacje na macierzach (dodawanie macierzy lub stałej, odejmowanie macierzy lub stałej, mnożenie przez stałą). Mam problem ze stałymi,...
nie dokładnie rozumiem kod wolałbym otrzymać kompletny kod Oczywiście, z przyjemnością udostępnię Ci kompletny kod kalkulatora dla Arduino Uno, który nie wykorzystuje wyświetlacza. Zamiast tego wyniki zostaną wysłane do komputera przez port szeregowy. [syntax=cpp] const int buttonPins[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11}; // Przyciski dla cyfr 0-9 const...
Może komuś się przyda: kupiłem płytkę CH32V003 dla RISC-V Nano i programator WchlinkeE 1v3, całość działa pod MounRiver studio. Przy zegarze 48 MHz: szacunkowo szybkość majtania GPIO (przykład GPIO): while (1) { GPIO_WriteBit(GPIOD, GPIO_Pin_6, (i == 0) ? (i = Bit_SET) : (i = Bit_RESET)); } to około 0.93 MHz Dodanie 2 floatów (32 bity) zajmuje od 115...
proszę o pomoc w napisaniu prostego kalkulatora w c podaje to co napisałem kompilator proszę o pomoc. Proszę o pomoc w napisaniu poprawnego kodu niewiem jak poprawić go za każdym razem program po wykonaniu działania zamyka sie lecz nie wraca do głównego menu . Proszę o pomoc!!!!!!! oto treść zadania. Napisać prosty kalkulator. Po uruchomieniu na ekranie...
https://obrazki.elektroda.pl/8668296200_... Pokażę tu jak połączyć z Home Assistant LCD kalendarz/termometr/higrometr model TH06. Kalendarz ten zbudowany jest w oparciu o moduł WiFi WB3S/BK7231T połączony z dodatkowym mikrokontrolerem, który komunikuje się z modułem WiFi poprzez protokół TuyaMCU. Moduł WiFi jest tu odpowiedzialny za...
Nie wiem jakie obliczenia robisz, ale przesyłanie danych też zajmuje czas, nie wyślesz dwóch liczb do pomnożenia albo dodania bo wydajność będzie jeszcze gorsza, musiała by to być większa porcja danych której przesyłanie trwa wielokrotnie krócej niż obliczenia, w szybkim przesyłaniu danych Arduino również jest kiepskie. Najszybsza będzie transmisja...
>Ch.M. Nie do konca się zgadzam. Moze obecne procesory nie mają super koprocesorów rodem 8087 (ktory zreszta pracował z zegarem 4.77MHz), lecz mają wybitnie rozbudowane jednostki ALU... Np. nowe pice32 maja w soie moduł nazwany 'koprocesorem', ktory potrafi matematycznie mnożyć, dzielić i inne cuda... Nowe ARMy Cirrusa (jądro ARMv7) posiadają paredziesiąt...
https://obrazki.elektroda.pl/3743484600_... Witajcie moi drodzy Przedstawię tutaj mojego shielda (nakładkę) na Arduino UNO opartego o układ ENC424j600. Shield ten pozwala podłączyć Arduino do internetu bez żadnego lutowania, a nawet bez użycia kabelków i płytek stykowych. W temacie dam jedenaście pełnych przykładów jego użycia z moimi...
Witam, czy ktoś wie jak jest reprezentowany typ float w C Keila? Program piszę w asemblerze, ale wydłubałem z Keila sobie procedurkę asemblerową do mnożenia zmiennoprzecinkowego. Mam tylko problem z odpowiednim sformatowaniem argumentów dla tej procedurki. Ile bitów jest na mantysę a ile na cechę liczby, jak jest prezentowany znak? (w sumie jest 32bity)...
Wszystko oki tylko jak mam teraz pomnożyć tą liczbę, którą wpisałem na początku? Wyskakuje błąd: Dodano po 2 Bo ja nie wiem czy można mnożyć powiedzmy float i string, chyba nie bardzo.
Nie znam się na Arduino ale normalnie zmienne float dla 8 bitowców to zdecydowanie NIE!!! Lepiej jest operować na zmiennych całkowitych (np: int long) a tylko na końcu wyświetlać kropkę czy tam przecinek tam gdzie trzeba. Generalnie to powinieneś w przerwaniu zwiększać wartość o 15 jeśli już taką liczbę przyjąłeś lub 150 bez żadnego dzielenia. Funkcje...
Królik, programisto :D Poprawnie: # include <iostream> # include <cstdio> # include <math.h> using namespace std; int main () { int a, b, c; float delta, x0, x1, x2, pierwiastek_delty; cout<<"Podaj liczbe a\n"; cin>>a; cout<<"Podaj liczbe b\n"; cin>>b; cout<<"Podaj...
Witam! Uruchamiam na ARM'ie Atmela program w którym wykonuje różne operacje na liczbach zmiennoprzecinkowych. Problem w tym ze program wyklada sie przy takiej instrukcji a=32000; prob[i]*=a; Dla tak na oko mniejszych od 1000 przechodzi ta linijke, ale dla wiekszych wartosci tej liczby wywala sie. prob jest tablica floag, a natomiast jest typu int. Co...
A tu mnie w maliny nie wprowadził? const int buttonPins[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11}; // Przyciski dla cyfr 0-9 const int buttonAdd = 12; // Przycisk dla operacji dodawania const int buttonSubtract = 13; // Przycisk dla operacji odejmowania const int buttonMultiply = A0; // Przycisk dla operacji mnożenia const int buttonDivide...
Dziękuję bardzo za odpowiedź. Udało mi się rozwiązać problem z uchybem 0.00x% obliczyć przepływ powietrza w [m³/h]. Już taką wartość można wyświetlać użytkownikowi, a nie jakieś magiczne liczby typu 4095. Napisałem funkcję przy pomocy modułu użytkownika, która oblicza: Przepływ = K * pierwiastek(z różnicy ciśnień), gdzie K to współczynnik wentylatora...
w drugim przypadku uint = uint*int/int czyli operacje na liczbach całkowitych kod ciut mniejszy ale czy szybszy i lepszy?? Zakładam, że typ zmiennej 'Data_' będzie uint32_t (zakres od 0 do 4294967295). Zmienna 'ADC_Value' jest typu uint16_t, więc w tym konkretnym przypadku będzie podobny.
Czy musisz pisać oczywistości. skaluje się wszystie wartości oczywiście. Jeśli chcesz być precyzyjny powinieneś napisać o wszystkich wartościach. Niemniej jednak obawiam się, że ten sposób jest błędny, bo mając dla przykładu wzór: M' = int {[ MJD - 14956.1 - int (Y'x365.25) ] / 30.6001} zauważ, że w "głębi" wzoru pobierać mamy wyłącznie część całkowitą...
Pytanie jakiej precyzji oczekujesz i czy jest sens korzystać z części ułamkowej skoro precyzja samego przetwornika i tak nie pozwala ufać tej części wyniku. Pozwala pozwala ufać i spokojnie można to wykorzystywać bez żadnych zmiennych typu float/double. Absolutnie bez takich zmiennych. Wszystko w oparciu o zmienne typu word/long itp .... a część ułamkową...
Witam używam mikrokontrolera dsPIC30f6010A, kompilator HI-tech. Mam problem z funkcją realizująca regulator PI. Otóż trwa ona zbyt długo. Na pewno czas znacznie wydłużają obliczenia na liczbach typu float ale na razie nie chciałbym tego zmieniać, stąd pytanie o DSP engine. Czy używając zwykłego mnożenia kompilator używa do tego DSP engine? Jeśli nie...
A ja robię tak: Odczytuję 16 bitów z DS18B20 (i jest to liczba signed, np. int), następnie mnożę przez 100, dodaję do tego 8 i dzielę przez 16. Dzięki temu mam gotowy wynik temperatury w setnych Celcjusza, a potem to już z górki (liczba ciągle jest jako signed). Też tu nie ma zmiennych typu float/double oraz nie ma żadnych przesuwań bitowych i sprawdzania...
Dziękuję kolego! :) na razie projekt ruszył, jak by coś jeszcze wynikło będę pytał, na razie, jeszcze raz Dzięki :) Dodano po 1 no i jest kolejny problem, otóż jak widać w programie odczytuje ADC H , więc moja rozdzielczość wynosi 255. 1) Teraz jak chcę odczytać cały rejestr w GCC po prostu wklepuje ADC, zamiast ADCH? by mieć rozdzielczość1024? bo jeśli...
Witam Napisałem program który mierzy napięcie na ADC0 i wynik wyświetla na po-2-jnym wyświetlaczu LED. Niestety nie chce wyświetlać dziesiętnych napięcia wejściowego. Dlatego napisałem program w DEVcpp aby sprawdzić czy sposób formatowania wyniku jest dobrze interpretowany, oto program, który dziła bez arzutu. -liczbę 2,62745 mnoży przez 10 co daje...
https://obrazki.elektroda.pl/8808596700_... Pokażę tu jak łatwo uruchomić MAX31855 z Arduino a potem omówię jego protokół komunikacji. MAX31855 oferuje 14-bitowy pomiar temperatury z zakresu zależnego od użytej sondy, od -270°C aż do 1800°C. MAX31855 oferuje prosty protokół komunikacji oparty o SPI, zasadniczo odczytujemy z niego tylko...
zmieniłem na: int nwd(int a, int b) { if(a < 0) a = -a; if(b < 0) b = -b; while(a != b) { (b > a) ? b -= a : a -= b; } return a; } teraz jest taki błąd: Error1error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartupMSVCRTD.lib Error2fatal error...
Generacja natywnego kodu HDL dla operacji zmiennorzecinkowych pozwala na implementację tego rodzaju operacji na sprzęcie z wykorzystaniem VHDLa lub Veriloga. Wszystko to bez mozolnej i trudnej konwersji na liczby stałoprzecinkowe. Dane zmiennoprzecinkowe to preferowany typ zmiennych, w aplikacjach modelowania i symulacji, gdzie liczy się wysoka dokładność...
https://obrazki.elektroda.pl/8287704400_... Witajcie moi drodzy Przedstawię tutaj mój projekt zewnętrznego wyświetlacza temperatury procesora z komputera. Wyświetlacz pokazuje temperatury od 0 do 99C, jednocześnie odpowiednio dobierając swój kolor. Wyświetlacz zrobiony jest samodzielnie od 0 w oparciu o diody WS2812B, sterowany jest...
mnożenie liczb mnożenie liczba float mnożenie liczb bitowych
schemat swiatel mijania audio cambridge nawigacja widzieć satelit
ekspres nespresso instrukcja dragon
Opel Zafira A 1.8 benzyna – niedziałający wyświetlacz TID/MID/GID, zimne luty, taśma, bezpiecznik STIHL glebogryzarka – falujące obroty silnika, gaźnik, regulacja, czyszczenie, membrany