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...
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
_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ę...
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;
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...
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ż.
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...
Niestety o ile dobrze kojaże, w C mamy do dyspozycji tylko dwa typy zmiennych dla liczb zmiennoprzecinkowych - wspomniany float oraz double (8 bajtów, 15 miejsc po przecinku), w razie w long double, ale to nie to czego szukasz. Tak więc prostszego od float typu nie znajdziesz. Natomiast istnieje kilka innych rozwiązań dla liczb zmiennoprzecinkowych,...
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ę...
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ś;...
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).
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.
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.
(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....
Witam, mam pewien problem z wykonaniem działania mnożenie a następnie dzielenia przez liczbę dziesiętną odczytaną z eepromu. Sam odczyt z eepromu jest poprawny, wyświetlałem dla testu odczytaną wartość na wyświetlaczu i się zgadza z tym co zapisałem przed ponownym uruchomieniem uC. Jak w programie zdefiniuje stałą (np 0.123) i przez nią podzielę jest...
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...
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...
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...
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...
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...
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...
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;
OK ale najpierw co innego. Tworzę sobie program do działań na macierzach 3x3 (dla ułatwienia). ma on dodawać dwie takie macierze, potem mnożyć i liczyć ich wyznaczniki. Przy okazji chciałem dobrze pojąć funkcje., więc co się da ma być wrzucone do funkcji. Pracuję teraz nad zmienną pobieranie: float pobieranie (){ printf("Wprowadz...
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...
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...
1. Wielu programistów uważa, że float - to liczba rzeczywista. No i bardzo się mylą, z czego wynika mnóstwo kłopotów. Niedouctwo. 2. Niby większość współczesnych procesorów, w tym Cortex-M4, liczy na float równie szybko, jak na int, a taki np. Intel Core mnoży i dzieli double sporo szybciej niż int. Za to konwersja w obie strony.... - na tym naprawdę...
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...
fc=35Hz, filtr Butterwortha, 20dB/okt chyba 20dB/dek czyli 6dB/okt. 20dB/okt jest raczej trudne do realizacji, bo to jakieś 3 bieguny i trochę ;P Dobrze pamiętam, że chciałeś analizować sygnał o paśmie od DC do 35 Hz właśnie? Jeśli tak, to nie możesz dać filtru o fc=35 Hz bo dla tej częstotliwości masz przecież 3dB spadku wzmocnienia, czyli wzmocnienie...
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...
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 W tablicy RESZTA mam reszte liczby wyciagnieta ze stringu. Np "1234". Ta wartosc chce przeliczyc na inny format. W tym celu musze to podzielic przez 10000 i pomnozyc przez 60. Nastepnie otrzymana wartosc calkowita wyswietlam na LCD. Realizuje to tak: //funkcja przeliczajaca float dm_to_dms(char var[]) { float sec; sec= 60*(atof(var)/10000); return...
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ą.
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,...
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...
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...
Mnożąc Y' oraz 365.25 przez 10000 tracimy właściwość odrzucania części iloczynu, co będzie miało wpływ na wynik końcowy...robiw No jeżeli nie potrafisz zaokrąglić przeskalowanego wyniku - to chyba jednak troszkę jeszcze wiedzy przed wyrażaniem takich zdecydowanych sądów powinieneś zdobyć.
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...
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...
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...
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:...
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...
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...
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ść...
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...
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...
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.
>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...
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...
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ą...
[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...
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...
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...
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...
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...
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...
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,...
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, 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...
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...
1. bo są w tym przypadku do odmierzania zbyt małe czasy a funkcje _delay_us() bardzo dobrze tu się sprawdzają 2. jak wyżej, właśnie do obsługi 1wire bardzo dobrze się sprawdzają, i nawet jak byś uparł się na zastosowanie do tego UART'a (chociaż szkoda marnować w takim procku uart do takiego celu) .... to i tak musiałbyś z tych funkcji opóźniających...
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...
AVE... (at)katakrowa Pamiętam, jak pierwszy raz pisałem komunikację po I2C ze sprzętową obsługą. Komunikacja dwukierunkowa Master<>Slave. Nie udało mi się przekonać tych układów do rozmowy, a to przecież "prosty" program był, coś w stylu: M: Hej, masz coś dla mnie? S: Tak, proszę cię bardzo. M: To masz ode mnie to. Nara! S: Okej, nara! Postępowałem...
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...
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...
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...
Postaram się w całość pozbierać myśli:) : Zadziałało, bo takie opcje zostały użyte przez producenta toolchain'a do kompilacji bibliotek (założył on, że arm966e-s ma taki koprocesor). Nie używałem STR912FAW44 ale wydaje mi się, że założenie jest błędne. Możesz troszeczkę to rozjaśnić? ad 4. Nie używały tych bibliotek? Tzn jakich? Jakichś zawierających...
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...
- 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...
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...
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...
http://obrazki.elektroda.pl/1515130100_1... W poniższym projekcie autor zaprezentował, jak połączyć dwa moduły Arduino z pomoc komunikacji radiowej (bezprzewodowej). Autor wykorzystuje w poniższym projekcie umiejętności zdobyte podczas jego poprzednich projektów, aby skonstruować bezprzewodową stację meteorologiczną opartą o moduł RF433...
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...
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ść...
mnożenie liczb mnożenie liczba float mnożenie liczb bitowych
szyfrowana partycja odzyskać czujnik wstecznego passat drukarka laserowa kolorowa
zasilacz regulowany schemat thomson dpl660
Nawigacja z Windows Embedded Compact 7, ARM, USB Hitex HT-8000: Specyfikacja, Gry, Problemy Techniczne