Masz zadeklarowane parametry funkcji jako int a próbujesz ją wywołać z float. Przydałoby się zmienić na float Objetosc1(float a, float b , float c); tak samo z Pole1(...). Pozatym dobrze byłoby w definicji również podać typy.
Sprawdź wartości rezystorów przy diodach. Jeśli są zbyt małe - po włączeniu diod siada napięcie i zmieniają się odczyty. Program możesz łatwo skrócić tak mniej-więcej 3..4 krotnie. Pierwsze połowy warunków przy else-if są bez sensu (zawsze prawdziwe). Użycie float też całkowicie zbędne.
Bardzo kombinujesz, a wyżej masz dokładnie napisane dla dużych bibliotek, na dwa sposoby. Float ma cztery bajty, nie ma sensu w twoim przypadku zamienić go na int, żeby za chwilę zamienić tego inta z powrotem na float. Użyj memcpy (#9), albo ręcznie przepisz wszystkie bajty (#13).
1. Chcesz generować PWM o częstotliwościach 50-330hz, to oznacza, że musisz zmieniać impulsy co określony czas (T=1/f): odpowiednio 20ms-3ms. 2. Wg dokumentacji Arduino funkcja map() działa na long integerach i jest zadeklarowana jako: [syntax=c]long map(long, long, long, long, long);[/syntax] Użycie float nic dobrego tu nie da. 3. Warto nazywać zmienne...
Tutaj masz gotowy przykład bez użycia float-ów (oszczędność pamięci): http://mikrokontrolery.blogspot.com/2011...
Podam z tej str. co Ci podałem: [syntax=cpp]#include <iostream> #include <string> #include <sstream> using namespace std; string int2str(int i) { stringstream ss; string temp; ss << i; ss >> temp; return temp; } int main(int argc, char *argv[]) { int a = 100; string komenda; komenda = "(at)0M " + int2str(a); cout<<komenda;...
Ogólnie float nie używa się do LFP ze jak można wyłączyć ten tryb to wyłączyć. Jeśli się nie da to ustawić go ~ -0,5V od ładowania absorpcyjnego.
scanf zwraca w wyniku ilość poprawnie wprowadzonych danych, np: double liczba1; int wynik; wynik=scanf("%lf",&liczba&... w zmiennej wynik będzie wartość 1 jeżeli scanf poprawnie odczyta liczbe, lub 0, jeżeli tego nie zrobi, a np. w takim przypadku: scnanf("%lf%c%lf",&liczba1... scanf zwroci 0,1,2, lub 3....
Lepiej z bibliotece nie grzeb. Spróbuj z inną wersją Arduino. Możliwe też, że biblioteka jest w złym miejscu.
Użyj sscanf i odpowiedniego ciągu formatującego.
Przyjrzyj się uważnie - przecież wypisujesz napięcie ze zmiennej nap. Czemu nie wypiszesz wartości max i min w taki sam sposób, skoro jak widać to działa? Oczywiście użycie float w tym programie jest kompletnie bez sensu, ale to już zupełnie inna sprawa...
Dlatego, że działa, w przeciwieństwie do rozwiązania "w jednym przelocie", które gwarantuje nierówne lub zbyt słabe świecenie cyfr i grozi paroma innymi efektami - "duchy", przegrzewanie tranzystorów itp.. Z zasady przerwania planuje się w taki sposób, że obsługa na zdążyć przed kolejnym przerwaniem - i zdąży, o ile nie popełnisz grubego błędu. Użycie...
Po pierwsze ja zamiast int użyłbym float, przecież mogą się tam pojawić liczby zmiennoprzecinkowe, to tak na przyszłość. I ja tak samo jestem za tym żeby zrobić to w konstrukcji switch case bo te else if raczej nie będzie działać tak jak powinno. Niestety nie mam teraz kompilatora bo bym sprawdził....
Otrzymuję sygnał z przetwornika ADC 16-bit Następnie algorytm wymaga pomnożenia tej wart ze stałą i zsumowania, czyli (wszystoko typu signed) sum (0 to 30) <= sum (0 to 30) + adc(0 to 15) * const(0 to 5) Następnie algorytm wymaga sprawdzenia wartości sumy znormalizowanej (czyli niezależnej od wielkości adc) wzór do normalizacji to: sum = (x1 +/-...
Użyj float i funkcji ftoa. Nie wiem jakiego kompilatora używasz ale w CodeVision taka jest. Jeżeli nie używasz liczb zmienno przecinkowych a jedynie stałoprzcinkowe możesz użyć int i zapisać w nim 237(najlepiej jeszcze unsigned) albo wręcz unsigned char :) . Przy wyświetlaniu wstaw w odpowiednie miejsce przecinek i gotowe. Pozdrawiam.
Ten błąd oznacza tylko, że z jakiegoś powodu zbudowanie pliku elf się nie powiodło. Z jakiego - to musisz ustalić na podstawie innych błędów lub ostrzeżeń. BTW, libm dołączyłeś do projektu?
Jeśli chodzi tylko o typ inny niż "float" to możesz użyć chociażby "double"... jeśli zaś chodzi o użycie liczby nie będącej liczbą rzeczywistą, to przy przypisaniu do integera wyrażenia 1/n dostaniesz zawsze zero (dla n > 0) natomiast mógłbyś stworzyć strukturę z 2 int'ami w środku imitującą ułamek zwykły. Jeśli nie o to chodzi, to sprecyzuj pytanie,...
Usunięcie tablicy nie przyniosło oszołamiających efektów, choć poprawiło sytuację. Dane są wysyłane poprawnie do mniej więcej 32 czy 64-tej próbki, a ja chciałbym wysłać ich 255. Kolejne próbki po bodajże 64-tej znów są przekłamane. Nie wiem w czym piszesz, ale dziwnie działasz na wskaźnikach/adresach. Poza tym rzutując na unsigned char ograniczyłeś...
(at)urgon to dam tobie podpowiedź. To że napiszesz kod w c/cpp na cortex-m4, który ma delikatne zabarwienie DSP nie oznacza że kompilator użyje instrukcji dsp. Jeśli napiszesz 0.34 nie oznacza że używasz float To że układ ma fpu, nie oznacza że napisanie kodu gdzie używasz float odpala użycie fpu
Użyj instrukcji warunkowej if. [syntax=c] float zmienna = scale.get_units() // zmienna pomocnicza if (zmienna > 0 && zmienna <2) digitalWrite(LEDpin, HIGH); // jeżeli wartość jest większa od 0, a mniejsza od 2, wysteruj LEDpin na stan wysoki [/syntax] itd
Owszem, powinno tak być. Niepodłączone wejście pływa, niezależnie czy jest to ADC czy port IO. Naucz się w swoich układach unikać takich sytuacji. Można ten problem rozwiązać polaryzujące wejście przy pomocy rezystora podłączonego do jakiegoś potencjału, np. masy. A przy okazji - w twoim programie w sposób niepoprawny odczytujesz wartość ADC (podana...
Przecież było napisane, że problemem są zapewne niedokładności liczb całkowitych, więc użyj float zamiast wymyślać na ślepo jakiś algorytm typu "na górze normalnie, chyba że cośtam to odwrócę i zobaczymy jak będzie". Mówiłem też, żebyś po prostu tym algorytmem wygenerował sobie te wszystkie pośrednie zmienne na konsolę na PC albo z mikrokontrolera przez...
dla flasha ostatecznie jednak użyłem swojej implementacji z biblioteki SPImemory i będę zapisywał dane w bajtach. Rozumiem, że w jakiś sposób chciałeś sobie uprościć kwestię adresowania zapisanych danych w zewnętrznej pamięci SPI. Sama biblioteka SPImemory wspiera również bezpośrednio zapis/odczyt float, string, różne typy int oraz tablice bajtów ....
Twój kod działa poprawnie dla odpowiednio małych liczb. jak skompilujesz i uruchomisz: [syntax=cpp]#include <limits> #include <iostream> int main(){ int minimalnyInt = std::numeric_limits<int>::min(); int maksymalnyInt = std::numeric_limits<int>::max(); float minimalnyFloat = std::numeric_limits<float>::min(); float maksymalnyFloat...
Nie wiemy nic o typie uC. Jeśli nie jest to Cortex-M4, to zapewne przyczyna kłopotu leży w bezsensownym i niepotrzebnym użyciu typu float. Użycie dwóch przerwań od dwóch timerów też ciut bez sensu, przecież wystarczyłoby w co 20-tym przerwaniu timera od pomiarów inicjować transmisję danych. Czy funkcja HAL_UART_Transmit_IT() jest blokująca? Mam nadzieję,...
Witajcie, W projekcie zmuszony jestem użyć float i funkcji pow(). Czy wystarczy w opcjach linkera (Eclipse) dodać bibliotekę libm.a, by używać zoptymalizowanych funkcji? Dodałem i nie widzę praktycznie żadnego zmniejszenia objętości kodu. No chyba, że pow() nie jest optymalizowane. Pytam, bo pierwszy raz używam. Pozdrowienia. robiw
Ja z kolei zaproponuję użycie unii - dzięki temu nie są łamane zasady tzw. przesłaniania wskaźników (pointer aliasing). void spi_send_float(float f) { union { float f; uint8_t u8[sizeof(float)]; } temp; unsigned i; temp.f = f; for (i = 0; i < sizeof(temp); ++i) spi_send(temp.u8[i]);...
licznik trzyma ilość wprowadzeń, wynik trzyma sumę a potem średnią. Użycie typu float wprowadza jakieś dziwne effekty. Jakie dziwne efekty? Podaj liczbe: 3 Podaj liczbe: 4 Podaj liczbe: 66 Średnia:1431655765
Piszę małą bibliotekę graficzną pod własne potrzeby i potrzebuję funkcję do obracania bitmap. Napisałem coś, co wydaje się działać, ale nie do końca i nie potrafię sobie poradzić z problemem. Otóż bitmapa wydaje się obracać mi się jak trzeba (rysunek poglądowy) : https://lh3.googleusercontent.com/-jPULj...
Witam, żeby tło się nie powtarzało, należy użyć background-repeat: no-repeat; dla elementu którego tło określasz. Jeśli chcesz aby dwa divy były obok siebie, użyj właściwości float, ewentualnie zmień display: float: right; /* lub */ display: inline; /* dla obydwu divów*/ Pozdrawiam, Krzysztof.
Użyj: http://www.cplusplus.com/reference/clibr... Funkcja zwraca część ułamkową, porównaj ją z zerem.
Jasne ! sqrtf już nie konwertuje na double. Ale jeszcze dopytam z ciekawości, skoro FPU ma wsparcie dla float to jak jest wykonywany sqrt dla double ?
witam posiadam T630 użyj programu FLOAT MOBILE AGENT http://fma.sourceforge.net on jest do telefonów SE i mozesz połączyć przez kabel, irde i chyba jescze BT. jezeli kupisz tani kabel na allegro to trzeba obniżyć prędkość przesylania danych w ustawieniach. Ja jestem zadowolony
czyli patrząc na pierwszy rzut oka zastosowałeś mój pierwszy wzór z offsetem co 0.0007 tyle że zamiast float użyłeś Q10 ,czy się mylę ? ale wydaje mi się że tego nie zrobię sam...
Rozumiem, że program muszę zmniejszyć o 12 KB(kod)+5 kB(rodata)+ na inicjalizację sekcji data, rozumiem ,że użycie sprintf odpada, prosiłbym w takim razie o wskazówkę jak "wysłać" zmienną int, float na terminal? A ja polecam bibliotekę [url=http://www.sparetimelabs.com/tinypr... printf, tylko 200 linii kodu w wersji podstawowej. Jest...
Dziękuję za pomoc - zastosuje zewnętrzne napięcie odniesienia oraz wzmacniacz operacyjny. Mam pytanie o liczby float. Jeżeli zależy mi na dokładności i nie ma znaczenia czy program zajmie 3% czy 30% pamięci to mogę użyć float czy raczej są inne sposoby obliczania liczb ułamkowych?
Wygląda w porządku. Troche ten 400 bajtowy bufor jest za długi, istotne komunikaty nmea są znacznie krótsze, a Atmegi mają dość mało RAMu. Podany kod jest w miarę odporny na ewentualne komunikaty dłuższe niż bufor - po osiągnieciu maksymalnej długość program sprawdzi typ, a potem przejdzie do czekania na następny komunikat, więc jest odporny na tego...
Przyznam szczerze, iż nie czytałem wątku od początku, ale narzuca się pytanie czy tutaj rzeczywiście potrzebne są operacje na float? Napisałem setki programów a float użyłem góra raz. Zwykle da się to samo wykonać na int-ach po odpowiednim podejściu (DFT tak robiłem). Zawsze własne funkcje wyświetlania na TFT, LCD czy innym rodzaju wyświetlacza można...
Jakiego bloku użyć, aby odczytać liczby 32 float- modbus rtu. PLC Carel C.Pco Konkretnie o licznik z tego tematu. https://www.elektroda.pl/rtvforum/topic3...
typ float jest prymitywem, a nie obiektem i nie możesz przypisać mu null-a. Jeżeli chcesz koniecznie wstawić null to użyj wrappera 0 klasy Float, a jeżeli nie to zainicjalizuj jakąś wartością (jaką? to już ty musisz wiedzieć)
wynik z 2/7 jest wymierna ale nie jest wyrażalna w floatach Potwierdziłeś więc, co wcześniej napisałem :) Tak, jak kolega (at)BlueDraco wyżej napisał wybór float będzie w dużej mierze zależał od zastosowanego MCU. Na AVR8 nie używałem float (za szybko kończyła się pamieć), na ESP32 z FPU nie mam już takiego ograniczenia. Jak ktoś chce mieć dokładne...
Witam, mam pytanie odnośnie SDCC i zmiennej typu float. Probuje wyświetlić zmienną typu float na LCD. Zmienną taką mogę wysłać na RS232 poprzez printf_fast_f() ale cos zrobić kiedy potrzebuję użyć sprintf(). Widzę, że kiedyś miał Pan podobny problem więc może już go Pan rozwiązał. Z góry dziękuję za pomoc.
To może ci wcale float nie jest potrzebne, można użyć fixed point? Ew. jak pisałem - rozbij proces konwersji, tak, że najpierw robisz zaokrąglenie, a potem konwersję. Musi być float, wartości muszą być wyświetlane z różną precyzją (poprzednio podałem tylko przykład dla formatu "0.00"). W jaki sposób zrobić zaokrąglenie, powiedzmy to 2-ch miejsc po...
Dołaczam ci całkowanie metodą trapezów.Ilość przedziałów całkowania = mx. Funkcja którą całkujemy znajduje się w wyrażeniu return(). W przykładzie całkujemy fcję x*x,ale oczywiście może być każda inna. Zrobione w C++ (Dev-C++) #include <iostream> #include <conio.h> using namespace std; const int mx=1000; float array[mx],cd,cg; float fkcja(float...
To już nie prościej tak? [syntax=c]union byte2float { uint8_t tempuint8[4]; float tempfloat; } tempunion; [/syntax] I użycie tempunion.tempuint8[0] = uart_byte_0; To samo dla kolejnych trzech bajtów?
Ciągle jest wiele rzeczy do poprawienia - z banalnych - nie używaj sekwencyjnego odwoływania się do rejestru IO, np. ADMUX, tylko przypisz mu od razu nową wartość. Ponieważ rejestry IO są volatile, więc każde odwołanie do nich generuje odpowiedni ciąg instrukcji. Powstaje mega długie przerwanie, zupełnie niepotrzebne. Poza tym, po co ci osobny licznik,...
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...
Ja? Potrafię czytać C i hakować go, ale nie potrafię zbudować całej połączonej aplikacji. to nie pasuje do sterownika SW2, który przeportowałem Skąd? Być może został zmieniony mikrokontroler sterownika zasilania, a co za tym idzie jego interfejs. Mój ściemniacz ma już prawie 2 lata. To co mówiłem o moim urządzeniu 2023 i dochodzeniach: BK wysyła tylko...
Problem float był wałkowany wielokrotnie na forum. Problem leży w podstawie dwójkowej reprezentacji liczby zmiennoprzecinkowej typu float. Użyj decimal (jeżeli możesz), który ma podstawę dziesiętną lub zaokrąglaj. Kilkanaście sekund szukania w google (przykład akurat w .net, ale dokładnie wyjaśnione): http://gregs-blog.com/2007/12/10/dot-net...
Przebrnąłem przez ten kod :) Co do ogólnej organizacji kodu, to nie będę się wypowiadał, bo jest to rzecz subiektywna i nieco drażliwa ;) W mojej opinii nadużywasz typu float oraz operacji na tego typu zmiennych. W wielu miejscach można byłoby użyć typu uint32_t z odpowiednio skalowanymi wartościami - to nieco komplikuje kod, ale przynosi wymierne korzyści...
(at)futek2 Nie o to mi chodziło w zakresie 3.3V/2. ( wiem że ADC w ESP32 pozostawia trochę do życzenia ) raczej czemu mierzysz - tak uważam na podstawie schematu, a nie używasz filtra dolnoprzepustowego - czy jest ku temu jakiś cel ( może przyspieszenie obliczeń, ale chyba marginalne o ile nie użyjesz matematyki na float-ach, czy szumy przetwornika...
Dodatkowo, teraz zauważyłem, że niepoprawnie odczytujesz dane z konsoli. Używasz scanf("%f",...) dla zmiennej typu double. Albo zmień typ tablicy na float, albo użyj scanf("%lf",...). Niestety ale w C trzeba zwracać uwagę nawet na drobne szczegóły, język nie będzie Cię tutaj prowadził za rękę. Pozdrawiam. PS. Znowu wróciłeś do starego warunku w drugiej...
Uwierz mi, że wszystko działa jak trzeba, tylko trzeba mieć świadomość różnic między float a double... Np. jak wezmę Twój przykład i zmienie double na float: volatile float f = 123.5434; Niby OK, ale... 123.5434 jest... liczbą typu double, więc faktycznie masz konwersje (ze względu na volatile). Jak dasz 123.5434 f (albo zrzutujesz na float), to już...
Przeczytaj ten artykuł: http://mikrokontrolery.blogspot.com/2011...
A co, przepraszam bardzo, ma wspólnego zmienna unsigned char (stałe bez znaku, 8bit -0-255) z obsługą liczb zmiennoprzecinkowych...?.?.? Owszem jeżeli użyjemy faktycznie typu float (i pochodnych) to program wynikowy jest wielokrotnie większy... Tyle, że tutaj kompletnie nie wiedzę związku...!.!.! No chyba, że w bibliotece delay jest zrobiony jakiś kompletny...
Czyli najlepsze rozwiązanie to wartości absolutne i mam użyć kelvinów ? Pozdrawiam
Ale my nawet nie wiemy, że autor używa gcc, aTy tu mnie newlib'em po głowie ;-) http://home.comcast.net/~derelict/files/... Albert
Popieram poprzednika w całej rozciągłości - tak się nie robi! Ponadto, co Ci ten tryb binarny, który dodatkowo w systemach Posix-owych nic nie robi? Użycie write() nie ciągnie za sobą konieczności użycia trybu "binary". Zawsze zapisując dane do pliku należy serializować! Wyobraź sobie, że Twój program ktoś skompiluje i uruchomi na systemie 32-bitowym,...
(at)kaczakat float nie jest ok I to z zuoelnie innego powodu niz opisales. W float nie da sie reprezentowac kazdej liczby rzeczywistej, w efekcie mamy bledy reprezentacji. W tym przypadku jest klopot, bo the bledy sie akulumuja przy kolejnych przerwaniach. W efekcie wynik moze byc tylko luzno zwiazany z rzeczywistoscia. Dlatego nalezy Po prostu zliczac...
Witam! W pierwszej klasie utwórz metodę np. float getTemp() { return temp; } którą używasz w drugiej (innej) klasie.
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
Można użyć operacji stałoprzecinkowych zamiast operacji na float. Autor nie ma nigdzie operacji float. (100 - volume_coefficient) *127)/100 Ta część obliczeń jest stałą w pętli, więc nie powinna wprowadzać żadnych obciążeń. W wielu miejscach rzutujesz typ na 32-bity, podczas, gdy wynik operacji nie może przekroczyć 16 bitów. Takie rzutowanie wprowadza...
Warto jeszcze uwzględnić problem precyzji - 32 bitowy int ma 32 bity, a 32-bitowy float - tylko 24; z kolei sprzętowe obliczenia na binary64 mają z popularnych mikroprocesorów na razie tylko nowsze wersje Cortex-M7. Jeśli mamy algorytm ze zmiennymi o dużej dynamice i jednostkę zmiennopozycyjną - to oczywiście warto użyć float. Jeśli nie mamy jednostki...
strona ma wyglądać jak na załączonej ilustracji w arkuszu egzaminacyjnym więc musi zostać użyty float:left i potem clear:both
(at)pyton Wydaje mi się, że problem wynika z użycia float. Ten typ ma ograniczoną precyzję (do max. 7 miejsc znaczących), w efekcie operując na liczbach tego typu zawsze występuje pewien błąd reprezentacji. Ty sumujesz ten błąd 100 razy, w efekcie może on osiągnąć spore rozmiary. Zapewne lepiej byłoby zrobić np. 100 pomiarów, zsumować je wykorzystując...
Wzór na pole koła też masz dziwny: R=((r*r)+2); Ze wzdlędu na liczbę π (pi) występującą we wzorze na pole koła, wynik nie będzie liczbą całkowitą. Sugeruję użycie typu float lub double. Dodatkowo możesz używać polskich znaków, stosując zmianę strony kodowej w konsoli - system("chcp 1250");). Twój kod z poprawkami: #include <iostream>...
Widzę coś dziwnego na tym wykresie, ale co rozumiesz przez „obliczone”? Czy to tylko wysłana wartość „0”, czy coś innego? Btw nie potrzebujesz tego: value_template: "{{ (value | float * 0.1 | round(1)) }}" jeśli ustawisz tę flagę: https://obrazki.elektroda.pl/3763931300_... Możesz użyć jednej...
Xdata i pdata to obszary pamięci zewnętzrnej, adresowane odpowiednio 16 i 8-bitowo. Natomiast pamięć wewnętrzna to obszar data - pierwsze 128 bajtów (adresowanie bezpośrednie), oraz idata - całe 256 bajtów wewnętrznego RAMu (adresowanie pośrednie). Tak więc użyj idata a nie pdata.
A co z deklaracja?? mi wyskakuje jako duble https://obrazki.elektroda.pl/5346283100_... AVR GCC nie obsługuje double. Czy użyjesz double czy float będzie traktowane jak float. Zadeklaruj 1.123456789012345 i wyświetl. A czy esp32 lepiej radzi sobie z floatem? Lepiej, ale lepiej nie używać zwłaszcza w przerwaniu. W ESP32 jest FPU które...
Kompilator wyrzuca mi błąd w tych 3 liniach programu stringItem1.setText(Integer.toString(r))... stringItem2.setText(String.valueOf(rdn))... stringItem3.setText(String.valueOf(FV)); treść błędu dla pierwszej linijki kodu to: cannot find symbol symbol: method toString(float) location: class java.lang.Integer dla dwóch pozostałych to: cannot find symbol...
Problem został rozwiązany w pierwszych kilku postach. Dla mnie rozwiązanie z częścią całkowitą i ułamkową jest protezą bo naturalnym wydaje się użycie w takim wypadku float. To, że takie coś nie mieści się na ATTiny to jest inna bajka. Wtedy należy się posiłkować rozwiązaniami z częścią całkowitą i ułamkową. Poza tym Autor tematu nie napisał ile ma...
jeśli używasz SDCC to do float służy " printf_fast_f ". Tyle że musisz mieć napisaną " putchar " tak by czcionka była wysyłana na LCD. np. : printf_fast_f("%6.2f",pomi...
Witam !!! Jeżeli piszesz w C to jaki masz problem z dzieleniem ? Możesz użyć zmiennych typu float i wynik z przecinkiem masz gwarantowany. Kolejne rozwiązanie to użycie operatorów /-dzielenia i %-reszty z dzielenia. Jeżeli chcesz już przesówać to co napisałeś nie informuje kompilatora gdzie ma zwróciś wynik. int suma; suma=suma << 1; (M.)
Którą z bibliotek bylo by dobrze użyć do tego projektu?
Znalazłem ten program zagrzebany na dysku, całość działała jak generator i oscyloskop w jednym przy użyciu karty akwizycyjnej Advantech'a, tutaj jest fragment dotyczący rysowania przybiegu. Na samym początku plików jest deklaracja i definicja klasy CDrawStatic dziedzicząca po CStatic. Do rysowania trzeba nadpisać metodę OnPaint (wcześniej pomyłkowo...
Jak sama nazwa wskazuje CurrToStrF służy dla typu Currency nie dla float. Użycie CurrToStrF spowoduje domyślną konwersje na Currency czyli zaokrąglenie do 4-ch znaków po przecinku po czym, ponowna konwersja do double aby to sformatować i wywołać FormatFloat . Dla wyświetlenia typu float lub double właśnie polecam: [syntax=c]Edit1->Text = FormatFloat("#0.00",x);[/syntax]...
Wygenerowany kod z #4 jest niepoprawny ze względu na użycie argumentu funkcji delayMilliseconds() spoza zakresu. Sugeruję poniższy kod, który będzie działał poprawnie: [syntax=c]const int analogPin = A0; // Pin analogowy do odczytu napięcia const int pwmPin = 9; // Pin PWM do generowania sygnału const float frequency = 5.0; // Częstotliwość PWM w Hz...
1. do [u]int{8,16,32}_t są specjalne znaki formatujące dla printf() - jak poszukasz to znajdziesz. 2. Do konwertowania liczb całkowitych na string prościej użyć innych funkcji, które tyle nie zajmują (itoa() itp.) Do float i double też są takie funkcje. 3. Kompilator nie czepia się, że chce inny typ zmiennej, tylko że funkcja zignoruje dodatkowe specyfikatory...
Użycie == lub >= (gdy faktycznie celujesz w wybraną wartość) z float traci sens. Używanie operatorów == oraz != na wartościach float generalnie nie ma sensu, ponieważ wynik działania jest nieokreślony i wynika ze sposobu reprezentacji tych liczb. Dodano po 7 Jednak zamiast używać delay(dht.getMinimumSamplingPeriod()) użyj funkcji millis() do okresowego...
Defaultowe ustawienia regulatora to: float charge (użycie ciągłe?) - 13,7 V LVD - 10,7 V LVR - 12,6 V na ten moment zostawiłem takie ustawienia Specyfikacja aku to: użycie ciągłe - 13,6 - 13,8 V użycie cykliczne - 14,5 - 14,9 V Dodano po 9 Dla panelu solarne go specyfikacja: Vmp - 18,36 V Imp - 2,72 A Voc - 22, 03 V ISC - 2,94 A Dodano po 7 Mam nadzieję,...
Ok spróbuje i dam znać, a powiedz mi czy identycznych poleceń mogę użyć dla int ?
Ale i tak mniejszym nieporozumieniem niż użycie floatów. iunt64_t to jest konkretny typ. Kompilator nie ma prawa nic tutaj upraszczać. Mają być 64 bity i już. A jak by upraszczał to z powodu swojego błędu a nie z tego powodu że mu wolno to zrobić. Tak więc nie masz się czego obawiać.
Użyłeś = zamiast ==. Poza tym napisałem wcześniej, aby unikać tego rodzaju operatorów w wypadku float.
Zgodnie z instrukcją ładowarka ma trzy tryby: absorption - 28.8V float - 27.6V storage - 26.4V Użyje schematu od kolegi aksakal ale zmienię go troche, wstawie przekaźniki zamiast ledów, itp. potem wrzucę nowy schemat.
coś pozytywnego bo nie wywaliło błędu i zamiast temp. wyświetliło ? Czyli brak bibliotek kwyświetlających float. Jak dodać w AVR studio wiem, w Arduino nie, trzeba więc poczytać jak to zrobic. Można też użyć funkcji w stylu itoa dla zmiennoprzecinkowych (nazwa wyleciał mik z głowy, bo uzywam sprint, jest wygodniejszy).
jest do rejestru procesora d0 A co to za rejestr? Nie słyszałem o takim Dodano po 9 za kolegą grko proponuję jednak użycie sprintf
Jest jakiś inny sposób aby zamienić liczbę typu float na striga? Bez użycia tych funkcji, bo zależy mi na tym aby program wykonywał się jak najszybciej.
Na Arduino czy na ATmega, bo to jakby nie to samo? Na Arduino jest lib i na pewno działa (chociaż użycie floatów woła o pomstę). Z kolei na ATmega używałem takiej prawie biblioteki: http://moretosprojects.blogspot.com/2014... która też działa ale z marszu to tylko na 8MHz (na inne F_CPU trzeba trochę nagrzebać...
Witam wszystkich:) Dostałem kolejny program do napisania i powtarzam nie miałem pojemników na zajęciach i przerobionych przykładowo programów ale niestety programy wybiera nam losowo:(. Przerobiłem trochę lektury, szukałem podobnego programu na forum i rożnych stronach i nie udało mi się nic znaleźć aby coś napisać. Początek jest zagadko dla mnie (...
Odpowiedź na pytanie z 1 postu: int val = 123; printf("U=%d.%d", val / 100, val % 100); Co do meritum: czy kod float nap1; nap1 = 257 * 0.0048; także obcina po przecinku? Jesteś w stanie sprawdzić jaki kod generuje kompilator?
No nie bardzo. ad.1. Lista cykliczna, czyli zapętlona. Aby zapętlić listę dwukierunkową mając wskaźnik na jej dowolny element, musisz przejść całą listę w przód aby znaleźć ostatni element i w tył, aby znaleźć pierwszy element, a następnie zmienić wskaźniki next ostatniego elementu aby wskazywał na pierwszy i prev pierwszego elementu, aby wskazywał...
ale spodziewałem się, że w obu przypadkach wartości będą identyczne. A niby czemu? Skąd domniemanie, że kompilator używa w obu wypadkach tej samej biblioteki zmiennoprzecinkowej? sdcc/device/lib/_fsadd.c - dla '51 sdcc/device/lib/z80/_fsadd.asm - dla z80 Albert
Jak przeniesie to na inny procesor to może mieć. Zamykanie się na jedno rozwiązanie "bo i tak tylko tu będzie używane" nie jest najlepszym pomysłem. Dzięki takim rozwiązaniom, gdy ktoś wpadnie na pomysł zmiany procesora to dla programisty który tę zmianę wykonuje to jest koszmar. Coś co można zrobić w dwa dni przeciąga się na tygodnie. Fakt przejścia...
Dobrze, że masz ATMEGA32, bo przy tym stylu programowania, zasoby mniejszego procka szybko by się wyczerpały - myślę o użyciu float do prostej operacji przeliczania temperatury, gdzie w zupełności wystarczy typ stałopozycyjny, lub użyciu molocha typu sprintf z typem float. No ale jeśli możesz sobie na to pozwolić to ok. Co do twojego problemu - skoro...
Nazwa zmiennej 'c' jest do uzgodnienia i nie ma większego wpływu na przebieg programu. Mnożę przez -1 tylko wartości dotyczące punktów w pionie. w moim przypadku gdy wpiszesz g.drawLine(0,0,3,3); będzie to linia o początku w punkcie (0,0) i końcu (3,3) ale linia będzie pod osią x. (0,0,3,-3) linia będzie nad osią x. co do skali to będę musiał użyć np....
Dlatego Ci napisałem - użyj typu stałoprzecinkowego. Albo sobie zaokrąglaj.
Witam, Chce porównać szybkość wykonywania algorytmu z/bez FPU. Projekt przykładowy Freddiego, kod: GLOBAL_DEFS = STM32F4XX \ __FPU_PRESENT=0 \ __FPU_USED=0 \ __SOFTFP__ \ Wciąż widzę użycie instrukcji 'v***'. Próbowałem też bawić się core_flags, ale nie uzyskałem nic sensownego. Pozostaje przerzucić kod na projekt z M3, czy da się jakoś wymusić programową...
Witam! Mam pytanie - jak powinien wyglądać kod Html i Css strony, którą widać na załączonym obrazku. Zrobiłem tak: [syntax=html4strict] <div id="wrap"> <div id="tel"> <!-- strona jest dzielona na trzy części --> <div id="body1"> <div id="content1"> <!-- content będzie na środku strony(float'em przesunięty do środka)...
Próbowałem przełączyć się na "oddzielny" kod dla bufora pierścieniowego - dzięki czemu możliwe byłoby użycie tego samego kodu dla różnych przypadków. Do tej pory int to 32-bitowa liczba całkowita - float jest "symulowany" jako liczba całkowita pomnożona przez 100 (więc może pomieścić 2 miejsca po przecinku i jest dzielony przez 100 podczas odczytu)....
nie wiem czy coś ze mną nie tak czy z tym forum, ale piszę tą odpowiedź drugi raz, albo odpowiedziałem w innym temacie ... użyj tej funkcji, u mnie działa to jest dla DS18 S 20 (niepotrzebnie wkleiłem , ale niech już zostanie) float zamien_temp(unsigned char MSB,unsigned char LSB) { float ftmp; if(MSB==0x00)//dodatnia,lub 0 {...
użycie pianka matryca użycie użycie alternatora
neovo matryca internet radiowy utrata pakietów wymiana elektrozaczepu
Adaptacja zamiennika przetwornicy w Oplu Insignia AFL Programator Mastercook Elegance - funkcje i obsługa