witam Chaiclbym sie zapytac : jak uzyskac wynik z pzrecinkiem dzieleac dwie liczby,.,,, przykład deklaracja float .....? cout <<"Podaj liczbe 1: "; cin >> dzielnik; cout << "\n"; cout <<"Podaj liczbe 2: "; cin >> dzielna ; iloraz = dzielnik/dzielna ; cout <<" iloraz wynosi = "; cout << iloraz <<endl;
ogólnie mówiąc musze sobie przeskalować jeden parametr w drugi Pierwszy (A) jest zawsze od 0 do 100, drugi (B) może mieć mniejszy "zakres" np 20...70 (Bl...Bh) Obmyśliłem sobie taki wzorek C=100/A D=(Bh-Bl)/C B=Bl+D Tylko jakoś w ASM na 51 ciężko dzielić większe liczby, w dodatku z przecinkiem (zajmują sporo czasu). teraz dwa pytania: 1. 10/4=2,5 jak...
hmm faktycznie..... czyli przy drógim dzieleniu trzeba mianownik podzelić prze 256, usunąc młodszy bajt i w jego miejsce wpisac starszy a msb trzeba by wyzerowąć. tylko że wtedy powstaną przekłamania:/ nieduże i tylko po przecinku ale tego juz chyba nie przeskoczymy, gdyż brakuje dokładności Dodano po 12 chociaż jest sposub na to drógie dzielenie, zeby...
początkuje w programowaniu i robie zasilacz sterowany cyfrowo. wszystko mi chodzi od ustawiania napięcia ,ograniczenia pradowego jak i przetworników ADC. zostało mi tylko napisać procedure do obsługi tego nieszczęsnego LCD.wszystkie pomysły jakie mi przychodza do głowy wymagaja dzielenia (ewentualnie mnożenia z przecinkami) i jak na razie siedze nad...
Nie dziel 1/3, tylko 100/3 albo 1000/3 (oczywiście w systemie binarnym przesunięcie musi być w oparciu o właśnie system binarny dokonane)... Dokonaj takiej normalizacji, aby otrzymać liczbę całkowitą, w której tylko wystarczy przesunąć przecinek. Tak więc przed przystąpieniem do dzielenia zmaksymalizuj mantysę dzielnej i zminimalizuj dzielnika, dbając...
Witam, Pojawił się ostatnio u mnie taki problem. Otóż odczytuję z przetwornika ADC ATmegi16, z kanału ADC0 wartość napięcia (od 0 do 5VDC). Wyświetlam sobie wynik konwersji na LCD i wszystko ładnie działa (liczba na LCD zmienia się w zakresie od 0 do 1023, jak kręcę potencjometrem). Chciałem sterować tym napięciem podłączonym do ADC0 obrotami silnika...
Witam, Proszę o pomoc w realizacji takiego założenia: 1000 / 4 = 250.00 -> flaga ustawiona na 0 1010 / 4 = 252,5 -> flaga ustawiona na 1 Za każdym razem jeśli wynik będzie po przecinku ma ustawić pewną flagę. Nie wiem czy istnieje jakiś rejestr w Atmegach informujący o wyniku dzielenia z resztą? Mam książeczkę o AVR ale nic o dzieleniu nie mogę znaleźć....
Witam wszystkich!!! Ten post będzie się składał z dwóch części: Pierwsza część postu ----------------------------------------... 1) Musze zrobić blok do mojego projektu lecz stanąłem w martwym punkcie. Konkretnie zatrzymałem się na bloku ALU który będzie odpowiadał za mnożenie dzielenie... musi się w nim dokonywać...
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.)
nie wiem co masz na myśli że podając km to zapisuje się w zmienną w metrach Chodzi o to, że zapis zmiennoprzecinkowy ma swoje problemy (przykładowo, float 0.1 + float 0.2 nie jest równy float 0.3). W takich małych układach jest przede wszystkim bardzo kosztowny (obliczeniowo) - a przy tym zupełnie zbędny. Bo nigdy nie osiągniesz precyzji 0.0000001...
Jest mozliwosc dzielenia 32bit/24bit albo chociaz 24bit/24bit na 89S52(nie wiem czy styknie 8 rejestrow 8bit)?? Ma ktos moze namiary na taki algorytm?? Troche dokladniej: mam dziesietnie 20 000 000 i dziele to przez liczby od ok 2000 do 4 000 000. Nie da sie tego uproscic czy cos?? :lol: Nie potrzebuje wyniku po przecinku(reszty).
Z zamianą na napis nie mam problemu, problemem jest ta reszta ;| np. 99/98=1,01 a w uC A=1, B=1 i teraz wg. Twojej podpowiedzi 1*100=100/98= A=1, B=2, ale ciągle nie wiem jak to zrobić, żeby uC sprawdził czy po przecinku jest 01, a nie 1 no i jeżeli z klawiatury zostaną wpisane inne dane np. 55/44= 1,25 A=1, B=25 teraz uC pomnoży to 25*100=2500 (nie...
Może nie to co chciałeś. Tu są pocedury mnozenia,dzielenia,dodawania,odejmowania dwóch liczb z dowolną dokładnością. Liczby zapisane sie jak wykładnik + mantysa Pozwalają na wykonanie kalkulatora z wszystkimi funkcjami.liczby z zakresu -1*10 do 63 1* 10 do 63 realna dokładnosc to 28 miejsc po przecinku
Dzięki za odpowiedź ale nim wpisałem pytanie na Elektrodę to sporo męczyłem się z tym (przesuwanie przecinka, mnożenie, dzielenie) ale niestety bez rezultatów. W bascomAVR jest polecenie "Round" ale ono zaokrągla wynik do liczby całkowitej i tym samym odpada. Może jest jeszcze jakieś polecenie coś w rodzaju formatowania wyniku, którego jeszcze nie znam/znalazłem...
(at)asembler Jaka jest precyzja tego dzielenia ?, ile miejsc po przecinku, bo w precyzji do liczb dziesiętnych to tak jak w pierwszym pisałem poście, zrobiłem taki paskudny kod, a przydało by mi się chociaż 1, 2 miejsca po przecinku: ; L R ;Compare R12,R13,R14,R15 && R16,R17,R18,R19 Cp_R12R19_32b: cp R15, R19 breq cp32r_same3 brlo cp32r_rg rjmp...
Jak będziesz miał zmienną całkowitą to nie będzie zawierała części ułamkowej po podzieleniu przez 1000, musiałby mieć typ float. Zwykle biblioteki mają obsługę podstawowych typów, np. dla oleda będzie to tekst i liczby całkowite, niekoniecznie float. Jak masz int x=1265 ml to możesz zrobić tak, że zaokrąglasz lub ucinasz do wartości x=x/10=126, zwykłe...
krzysiek: 1. Używaj czasem przecinków 2. Jakbyś chciał jakieś "sztuczki" to wal na priva.
potrzebuje w asm 51' podzielic dwie jednobajtowe liczby, ale z dokładnoscią do 1 miejsca po przecinku!. jak to zrobić?. programowe polecenie DIV AB daje mi cześć całkowitą i RESZTE z dzielenia, myślałem żeby napisać program, który by dzielił w "słupku", ale może on niekiedy zajmować dużo czasu... i w ogóle mi sie nie podoba :P czy nie da sie odrazu...
Witam Piszę program, w którym zliczam impulsy z Timera0 (ATmega8). Ilość tych impulsów jest następnie dzielona przed określoną liczbę. Jak mozna się domyślić czasem wartość wynikowa będzie ułamkiem czyli pojawi się przecinek. Problem w tym, że nie mogę ustawić zmiennej wynikowej jako liczby z przecinkiem. Dim N As Byte N = Tcnt0 / 36 N = N * 60 W takim...
Pewnie chodzi o zapis liczb z przecinkiem.... poczytaj sobie o systemach staloprzecinkowych i zmienno. Jesli nie bedziesz mogl sobie poradzic to zapraszam na tam moze ktos Ci pomoze :)
poprawny zapis to: ((50.0/3.0*X - 100)*X + 850.0/3.0)*X - 200 tzw. schemat Hornera, minimalna liczba mnożeń w języku C, 50/3 równa się 16, dzielenie liczb całkowitych traktowane jest jako całkowitoliczbowe
Jak chcesz zaokraglac do calkowitych to po co ci floaty, a jak chcesz zaokraglac floaty to np %.2e - dwa znaczace znaki po przecinku. Poszukaj sobie dokumentacji do formatowania printfa.
Tak, zalezy mi tez na wartosci po przecinku. Jest to polozenie geograficzne. Np w google: +51° 08' 00.XX", +20° 05' 00.XX" Wartosc XX daje spory blad, wiec nie moge z niej zrezygnowac. Natomias GPs podaje mi wartosci w minutach i minutach po przecinku. Z tego powodu przeliczam DM do DMS. Chyba, ze w google da sie inaczej wprowadzic dane wejsciowe? Tyle,...
Napisałem niezbyt precyzyjnie, a winno być: potrzebny mi jest blok wykonujący dzielenie liczb całkowitych, wystarczy, że będzie wyliczał sam iloraz, to co po przecinku czy też reszta z dzielenia nie są ważne. Zatem chodzi mi o DIV. Co do złej składni - to kompilator kompiluje mi to bez problemów i sama symulacja funkcjonalna pokazuje, że działa to poprawnie,...
scanf("%d",&a); scanf("%d",&b); %d do całkowiktych, %f do zmiennoprzecinkowych. Dalej już musisz dodać ten drugi kod który próbowałeś wcześniej czyli z rzutowaniem na typ float. Jeżeli chcesz tylko 2 miejsca po przecinku to zmień formatowanie na %.2f
Nic to nie daje, po zapisaniu w polu deklaracji zmiennej: "temp_ciepla2"/10 dostaje wynik dzielenia, ale jako liczbę całkowitą (output format mam 999,9). Wydaję mi się, że trzeba by chyba użyć jakiegoś skryptu C. Nie wiem czemu tak jest.
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ą.
dobra tylko powiedz mi w którym miejscu mam to wpisać ? W miejsce przycisku prawda ? Dodano po 1 Liczba jest oczywiście typu double Dodano po 2 nie potrafię tego zrobić :/ wydawało mi się, że będzie prostsze zagadnienie z przecinkiem niż z dzieleniem przez 0
Tak, ale nie pozwoli mi to na wpisywanie wartości po przecinku i musze z góry wiedzieć ile tych wartości jest
E14 i G14 pokrywają się u Ciebie z adresem nabywcy. Poza tym tej formuły nie byłbyś w stanie zatwierdzić, bo excel zgłosiłby błąd. Miałeś wstawić komórki zawierające ilość i grosze ceny jednostkowej. Pomijając to nawet nie zadałeś sobie trudu, żeby dokładnie przepisać formułę, którą właściwie Ci już jako gotowca podałem (średnik w funkcji PRAWY i dzielenie...
[syntax=cpp] #include <iostream> #include <iomanip> #include <math.h> using namespace std; const double EPS0 = 0.0000000001; // dokładność porównania z zerem const double EPSX = 0.0000000001; // dokładność wyznaczenia pierwiastka double f(double x) { return cos(x) +1/(x+2) ; } int main(int argc, char* argv[]) { double a,b,x0,fa,fb,f0;...
Cieszy mnie bardzo ogromne zainteresowanie z waszej strony - dzięki śliczne:) mam już wiele cennych informacji od Was napewno przydatnych, LECZ... jeszcze raz bo chyba się nie do końca zrozumieliśmy:/ wygląda to tak: 1) tworzony jest raport gdzie jest trzech pracowników i podział m3 na ich trzech 2) to co mają razem musi być równe temu co w sumie mają...
A czy w takim razie można równie łatwo wyliczyć i wrzucić do innej zmiennej wartość po przecinku z takiego wyliczenia ? (czasem wyliczenie jest z wartością ułamkową , chciałbym chociaż jedną cyfrę po przecinku móc wyświetlić również) Dodano po 6 Bo jedyne co przychodzi mi do głowy to taka konstrukcja: Dodano po 38 hmmm , chyba mam : [syntax=cpp] stezenie_u...
Skoro możesz sobie modyfikować ten przylatujący napis to lepiej go przed wysłaniem tak ustawić by miał tylko liczby całkowite, np. temperatura nie 25.4 tylko 254, tak lepiej ją też przechowywać w obu urządzeniach i takiej używać "na co dzień". Upraszcza to porównania i przyspiesza obliczenia, przed samym zaprezentowaniem na ekranie można ją rozbić na...
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...
Dziękuję za pomoc. Formatowanie niestandardowe 0,00000;-0,00000; rozwiązuje mój problem. Ponieważ w wyniku dzielenia zera przez jakakolwiek liczbę zawsze wyjdzie mi równe 0.
Witam Mam pytanie jak mogę podzielić string-a, a dokładnie chodzi mi o następującą rzecz: dana = "Anna, Mariola, Ewa, Ulka" Ania - ma być pierwszą zmienną np. dana1 Mariola - ma być drugą zmienną np. dana2 Ewa - zmienna dana3 Ulka zmienna dana4 Jak w stringu szuka się przecinka i on ma dzielić na pozostałe zmienne. dziękuję
Chcę wykonać taką sekwencję: 1. Odczytać wartość analogową 2. Podzielić wartość analogową przez 32000 3. Wynik z dzielenia pomnożyć przez 100 Konkretnie chodzi mi o punkt 2. W dokumentacji przeczytałem że istnieją bloczki do dzielenia z resztą i do dzielenia z wynikiem jako liczba całkowita. Dla przykładu została odczytana wartość analogowa 6000 to...
(int)/(int) - dzielenie bez przecinka (procesorowy DIV jednostki ALU) (int)/(float) lub (float)/(int) lub (float)/(float) - dzielenie zmiennoprzecinkowe (jednostka FPU) 1 <- liczba typu (int) 1.0 <- liczba typu (float)
Jak podajesz adresy w formacie: A2, C180 etc. nie możesz zapisać FormulaR1C1, tylko Formula. Zamiast dzielenia podajesz przecinek, czyli: [syntax=vb]Worksheets("Kowariancja").Ran... = "=COVAR(Stopy!A2:A180, Stopy!A2:A180)"[/syntax]
Co to za studia kończysz, chyba nie techniczne? W takiej sytuacji do przechowywania temperatur użyj najnormalniej w świecie typ int (int16_t / uint16_t w zależności od zakresu temperatur). Jeśli rozdzielczość odczytów masz 0,1C to przechowuj wartość dziesięciokrotnie większą pamiętając, gdzie jest przecinek. Na przykład dla 20,8C przechowujesz 208....
Jak podzielisz tą swoją liczbę 13845 przez 10000 to otrzymasz 13,845, ale zapisane binarnie czyli część całkowita to będzie 13, a ułamkowa już niestety nie 834 tylko na przykład 0,834*256 = 214 (dla 8-miu bitów na część ułamkową). Albo 0,834*1024 = 854 jak przyjmiesz 10 bitów na część ułamkową. Pożytek z takiej części ułamkowej żaden. Jednym słowem...
O już chyba wiem. Nie rób mnozenia przez liczbę z przecinkiem tylko dzielenie. Ty masz 0.000016*licznik i potem to dzielone przez 60. Ten sam wynik będzie jak dasz tak: 3750000\licznik i to samo masz w jednym równaniu bez używania przecinków(to w baskomie działa bardzo wolno) a dlaczego akurat tak? No bo broty(np 1000) = 16,67imp/sek=imp co 0,06 sek...
Ok. Spróbuje jeszcze bez włączania zmiennego przecinka makefile. Nie jest mi potrzebny zmienny przecinek. Tak tylko pomyślałem, że może skorzystam z tego ale nie sądziłem, ze aż tyle pamięci to wszytko zużywa. Dopiero po zainstalowaniu najnowszego WINAVR zauważyłem ile faktycznie przekroczyłem zakres (i po stworzeniu nowego pliku Makefile w nowej wersji)....
Przesunięcie obliczasz dokładne według podanego przez Ciebie wzoru. Problem polega na dokładności tej operacji - masz tam mnożenie i dzielenie. Stałoprzecinkowo może to być mało dokładne a ze zmiennym przecinkiem jest sporo roboty. Jednak, jeśli robisz to w C, to nie będzie żadnego problemu. Problemem natomiast może być mała względna dokładność pomiaru...
W międzyczasie znalazłem i zadziałało. Trzeba to wpisać tak: Trzeba uwzględnić że -Wl,-l jest już dodane na początku. Nie potrafię tego wyciąć. Przynajmniej ktoś następny już nie będzie się musiał męczyć czytając ogólniki. Dodano po 20 No i jeden problem rozwiązany ale jest już następny: Dodano po 9 Chyba printf żle interpretuje zmienną typu float bo...
write(*,*) (1+sqrt(5.))/2,float(... Dzięki wielkie zamiast nawiasu powinien być znak dzielenia a za cyfrą 2 jest przecinek. Piszę w standardzie 95 ale w tym kompilatorze jest możliwość wyboru standardu więc niema tu większego problemu. Wpisując zwykłe polecenie pause przed ostatnim end-em...
Wpisales do SMD48 nowa wartosc biezaca, ale nie dales rozkazu ustawienia jej w HSC. Pod tym blokiem: MOV_D (IN:0, OUT:SMD48) wstaw jeszcze MOV_B (IN:16#C0, OUT:SMB47) jeśli nadal HSC nie będzie się kasował (nie mam teraz możliwości sprawdzenia) to wstaw jeszcze pod tym: HSC(N:1) Co do przeliczeń to przypominam, że przerwanie czasowe, które właśnie robisz...
Piszę tutaj, bo jestem już zdesperowany. Jak patrzę na układ podpięty do programatora, to aż mi już się niemiło robi. Ale do rzeczy i od początku. Znalazłem w sieci taki kod: [syntax=basic4gl] Dim Pll As Single Dim Fset As Word Dim Dane As Byte Dim A As Single [...] Nastaw: Pll = A I2cinit I2cstart I2cwbyte &HC0 Pll = Pll * 100000 Pll = Pll + 225000...
Obiecałem pomóc... słowo się rzekło... 1) Linię programu c:=(645-(6*a))/2; zastąp linią c:=(645-(6*a)) div 2 ; i koniecznie poczytaj o typach zmiennych liczbowych i dzieleniu całkowitym. 2) Natomiast linię e:=c+(2*a)+((1/2)... zastąp linią e:=c+(2*a)+a div 2); 3) Ponadto...
Kurs: Operatory Powiedzmy sobie na początek czym są i jakie mamy operatory w języku C . Operatorem nazywamy konstrukcję językową jednoargumentową, bądź wieloargumentową zwracającą jakąś wartość. Operatory określają jakie operacje mają być wykonane i w jakiej kolejności. Oto operatory w języku C : • operatory arytmetyczne (= , +, - , * , / , %,...
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...
No to właściwie się każdy nada do tego celu. Najprościej jest zapisać liczby w układzie dziesiętnym: jedna komórka pamięci jedna cyfra. Dodatkowa komórka do pamiętania znaku i jeszcze jedna do pamiętania położenia przecinka. Muszą być takie dwa zestawy dla obu wprowadzanych liczb. Przed dodawaniem i odejmowaniem przesuwasz jedną liczbę tak by przecinki...
Kiedyś napisałem coś takiego ale w asmie i dla zwykłego '51 ; ; Program obrotomierza ; CZ5msequ0ec77h;5ms dla 12MHz LCZYNequ3;dlugosc czynnikow w bajtach KEYequ6+8;R6 z banku 1-go, stan klawiatury OLDKEYequ5+8;stary klawisz ILOSC_Cequ4+8;ilosc cylindrow silnika ; STATUSequ20h CZAST3equ21h;ostatni pomiar czasu T CZAST2equCZAST3+1 CZAST1equCZAST2+1 CZASTA3equCZAST1+1;ostatni...
Nie mam pojęcia co to ciąg harmoniczny, więc jak coś to napiszcie, żebym skasował ten post :D Jeżeli wynik ma nie wychodzić 0, to musi wychodzić z przecinkiem, a tego do int nie przypiszesz. A jeżeli chcesz z dzielenia int otrzymywać np wynik double, czyli po przecinku to np możesz najpierw do zmiennej a przypisać wartość z dzielenia intów, potem do...
Witam! Podoba mi się ta rzetelna i konstruktywna krytyka. Ani cienia litości! Doskonała zachęta do dzielenia się w przyszłości ciekawymi rozwiązaniami udostępnianymi w 100%. Może bym i zrewanżował się podobną krytyką ale najwięksi krytycy przezornie nic własnego nie udostępniają. Słusznie! Mimo to wypada wyjaśnić kilka kwestii - ten post na Forum Elektrody...
5-20 = -15 Jeśli wynik < 0 to dodaj 24 -15+24 = 9 czyli dokładnie tyle ile godzin pracy A więc dla bezpieczeństwa możemy od razu do całości dodać 24 a następnie wykorzystać tylko resztę z dzielenia ( ) przez 24 Czyli zakładając że czas pracy (już po konwersji części po przecinku i przed przecinkiem na wartość) mamy w komórce A1, żeby mieć zawsze...
1wreset If Err = 0 Then 1wwrite &HCC 1wwrite &HBE Ds_1 = 1wread() Ds_2 = 1wread() Status_temp = 1 If Ds_2 >= 248 Then 'wartość ujemna Ds_1 = 255 - Ds_1 Ds_2 = 255 - Ds_2 Status_temp = 0 End If T1 = Ds_1 / 16 T2 = Ds_2 * 16 T1 = T1 + T2 ten fragment odczytuje czujnik i pod zmienną T1 umieszcza wartość tempreatury (z pełną rozdzielczością...
Program wygląda dużo lepiej. I = 1wread(2) pobiera dwa bajty w których znajduje się temperatura. Polecam zajrzeć do karty katalogowej DS18B20 str.4. W I znajdzie się liczba 16 bitowa, gdzie pierwsze 4 bity to znak, następne 8 bitów to część przed przecinkiem, a cztery ostatnie to to co po przecinku. Liczby ujemne są w kodzie U2. S = I / 16 Powyższe...
Jeszcze się zastanawiam, czy nie lepiej będzie zamiast Lsb i Msb odczytanej temperatury pobierać obliczoną wartość przed przecinkiem i po przecinku ? Tzn. wynik pomiaru temperatury będzie przesyłany przez RFM12 - chyba prościej będzie mieć gotowe, czyli wysyłam: Dodano po 4 Jednak coś nie tak jest. Zrobiłem to tak: Dodano po 2 Nie rozumiem. Po dwóch...
Do prostych operacji, zwłaszcza mnożenia, dzielenia, dodawania i odejmowania polecałbym jakiś format stałoprzecinkowy, nowa avr-libc ma może i szybkie, ale za to strasznie "rozdęte" procedury obliczeń zmiennoprzecinkowych. Ich rozmiar jest wręcz paskudny. Przykład, kod z mnożeniem, dzieleniem, dodawaniem i odejmowaniem zmiennoprzecinkowym w poprzedniej...
Dzięki, teraz wiem, że on otrzymuje wartość na 10 bitach, więc teoretycznie kasując linię z dzieleniem napięcia przez 10 otrzymam wynik z dwoma miejscami po przecinku gotowy do multipleksowania (a brak dzielenia przy braku miejsc po przecinku jest jakimś niedopatrzeniem). Ale jak te woltomierze podłączyć do zasilacza, by zachowywały się jak opisałem...
Witam mam problem z programem do trawiarki mianowicie znalazłem na necie program do sterowania trawiarką chciałem do tego dopisać wybór menu żeby było jeszcze był drugi tryb sterowania trawiarką. Wgrałem program do uC i działało poprawnie potem chciałem wgrać ten sam program bez żadnych zmian na inna ATmege8 i okazuje się że teraz program działa trochę...
Czyli będzie 10 nowych wersji Ekranu Śmierci (Blue Screen): Pro, Home, Mobile, Enterprise, Mobile Enterprise, itd ;) Pro: System Windows wykonał dzielenie przez zero pod adresem 1234:ABCE0000, wynik dzielenia wyszedł z dokładnością do 12834 miejsc po przecinku, o 42 więcej niż u konkurencji ... po przepisaniu wyniku zacznij pracę od nowa (użyj liczydeł)....
Pytanie czy na pewno potrzebna Ci jest arytmetyka zmiennoprzecinkowa ? Czy może da się wszystkie obliczenia zrobić na liczbach całkowitych 100 razy większych używając typu long int ? Dopiero podczas wyświetlania wstawiając odpowiednio przecinek poprzez wyświetlenie części całkowitej z dzielenia zmiennej przez 100 wstawienie przecinka i wyświetlenie...
Tzn. wiem, że zmienna typu bajt nie może być większa niż 255, ale zapomniałem, że nie robi się operacji na różnych typach zmiennych razem [syntax=vbnet] Solar_mid_mod_temp = Solar_mid_mod_temp \ 2 ' srednia z dwoch czujnikow = 283 [/syntax] co prawda przekracza 255, ale wynik z dzielenia przez 10 i Modulo 10 już nie, czyli 28 i 3 [syntax=vbnet] Solar_mid_dec...
mnozysz to co tam liczysz przez 100 i juz masz 2 miejsca po przecinku. albo (w specyficznych zastosowaniach) masz dwie zmienne - jedna od czesci calkowitej, druga od czesci ulamkowej. podaj konkretny przyklad problemu, to wtedy mozna wymyslic konkretne rozwiazanie go, bo przeciez zaden termometr cyfrowy nie zwraca ci wartosci typu double. na przyklad...
Przy tak dobranym F_CPU lepiej będzie użyć wyrażenia drugiego. Co do używania liczb całkowitych: pierwotnie miałeś w wyrażeniu "1000000.0", co powodowało, że część wyników pośrednich była by z przecinkiem a więc i wynik końcowy by był. Teoretycznie kompilator powinien to policzyć, jednak nie chciał (może wyłączona optymalizacja?). Jednak jeśli zamienisz...
:) Komenda mod to taka reszta z dzielenia czyli: zmienna = liczba mod 4 zmienna - miejsce gdzie zostanie wpisana reszta z dzielenia liczba - zmienna która jest dzielona przez 4 (w miejsce 4 możesz wstawić inną liczbę lub zmienna) Dodatkowo w Bascomie są dwa rodzaje dzielenia znak / i \ pierwszy (/) używamy do dzielenia z resztą (w przypadku zmiennej...
cyt "... sumuję 16 pomiarów i później dzielę przez 16") zapewne dalej w programie jest dalsze przeliczanie - dzielenie aby uzyskać stopnie celzjusza. POLECAM nie dzielić dwa razy, tzn zrezygnować z dzielenia przez 16, tylko podzielić RAZ na końcu. Dzięki temu, powstaje oversampling, dzięki czemu bez kosztów zwiększamy rozdzielczość jak i dokładność...
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...
Tak Granat:) , dane odczytujemy z ramu kości. :) To fakt zumek . Rozdzielczość i dokładność to dwie różne rzeczy. Sam czujnik DS18B20 ma dokładność ±0,5°C, a przy próbkowaniu 12 bitów daje rozdzielczość 0,0625°C. W niektórych zastosowaniach warto jest z tego skorzystać, tymbardziej że układ daje taką możliwość bo przy dalszej obróbce wyniku też...
Witam Temat troszke starawy ale sie podpinam:) Tez kombinuję z roździelczością 0.1'C i troche mi nie wychodzi:) Dziwnie mi dziesiate czesci stopni wskazuje podaje ciąg: np. 23.1;23.2;23.3;23.4;23.5;23.6;23.8;23.12... itd dziwne bo nie ma liczby 0,7,9 tylko jakies 12 i 25 a do 6 idzie ok-dziwne to co po przecinku obliczam wzorem: dziesiatki=temp(7)-temp(6)...
Hm... Tak luźna sugestia, a nie odpowiedź raczej: Możesz przesunąć próbkę wejściową o ileś bitów w lewo, wtedy wynik dzielenia dostaniesz też przeskalowany, także będziesz wiedział co tam po przecinku się znajduje, ale bezpośrednio nie będziesz mógł z tego skorzystać. np.: a = 1 b = 4 a/b = 1/4 = 0.25 a*2^15 = 1*2^15 = 32768 (przesunięcie w lewo) b...
To nie żaden problem. To zwykłe dzielenie stałoprzecinkowe. Jeśli operandami dzielenia są liczby całkowite, to wynik też jest liczbą całkowitą. Jesli chcesz wynik po przecinku, to musisz albo zrzutować któryś z operandów na liczbę rzeczywistą, albo dokonać jego zapisu jako liczbę rzeczywistą (np: 2.0). Zauważ, że w C, w odróżnieniu od Pascala, nie ma...
Zaoszczędziłem 32bajty. A teksty z lini: 45, 47, 304, 373, 477, 517, 519, 566, 568, 614, 616, 663, 665, 713, 715, 761, 763, 798 dlaczego nie są w Eepromie :)? Możesz wykasować spacje w łańcuchach i zmodyfikować początek Display_msg. Te wszystkie sztuczki pozwolą ci zaoszczędzić parę bajtów , ale największe oszczędności przyniesie ci rezygnacja z liczb...
Ja już wcześniej pisałem, że nie programuję w C, więc nie polecę też niczego, niestety. O bibliotekach wspomniał coś (at)ble___ ale nie miałem okazji skorzystac z porady i zapoznac się z jakąś, choćby przez analizę kodu. Nie wiem jak to działa i z czym to sie je. Mam nadzieję, żę nie bedzie tak, że są takowe, ale nie nadają się do operacji na dużych...
Znów Was naciągnę na gadanie o dallas’ie Z aplikacji wynika że w zasadzie ważne są tylko dwa pierwsze bajty odebrane z dallasa. Jeden z nich to info o znaku temperatury, a drugi to jej wartość pomnożona przez 2. To wystarczy do wyświetlenia temperaturki, jednak trzeba ją podzielić przez 2, tylko... jak takie "skomplikowane" obliczenie z dokładnością...
najpierw muszę zaprojektować analogowy filtr wedłóg schematu 1 w pdf kolegi następnie muszę wyliczyć alfa , beta i gama które są stałe dla każdego filtru a następnie muszę postępować według algorytmu z rysunku 9a Dokładnie tak :!: , ale musi być jakieś ale :D . Podane zostały jedynie uproszczone wzory na alfa, beta i gamma, wykorzystujące SAA (Small...
Mam taki problem.Chce do jednej zmiennej typu double przypisać dzielenie drugiej zmiennej typu int przez 100.Oto przykładowy kod: int liczba1; float liczba2; liczba2=liczba1/100 I wynik takiego dzielenia jest zaokrąglany do całości,a mi są potrzebne też liczby po przecinku. Jak to rozwiązać?
Aktualizacja o samą paczke z językiem angielskim do U8130 i w tym poście będe dodawał do następnych modeli, chociaż myśle że wystarczy abyście przetłumaczyli do U8130 a do reszty na podstawie tego się wrzuci, teraz o wiele łatwiej można tłumaczyć. A jeżeli chodzi o wkompilowanie tego później to już mój problem, wystarczy abyście wy przetłumaczyli ;)...
Beta = I * K Beta = Beta And 31 // dlaczego Beta And 31 ??? - to jest obliczenie kąta (i*k) and 31 to zamiana na kąt z przedziału do 0 do 2pi. bo w moim programie są 32 prubki numerowana od 0 do 31 czyli kąt też jest od 0 do 31. 31 to poprostu kąt 360st czyli 2pi. AND działa na bitach czyli m tym przypadku daje nam reszte z dzielenia przez 32. troche...
No ale mi chodzi o Java a nie o PHP. Fakt faktem metody nazywają się tak samo ale ja chce zrobić takie coś. Pobieram dane z 2 TextField : float i_BL = Integer.parseInt(txtBL.getString(... float i_P = Integer.parseInt(txtP.getString(... wykonuje na zmiennych i_BL i i_P działanie dzielenia : float liczba = i_P/i_BL; i teraz...
Ze wszystkim sobie poradziłem, obecnie mam problem z liczbami nie całkowitymi. AVR Studio + WinAVR np mam zmienną x = 10 teraz chce zapisać w zmiennej y = x/4 Wynik to oczywiście 2,5 ale jak wykonać takie dzielenie? Takie coś nie działa: unsigned int x=10; float y y = x/4; Operacja po prawej z racji "całkowitości" obu operandów dzielenia zostanie wykonana...
a dzięki tej metodzie zwiększa się zakres pomiarów dwukrotnie a błąd spada Zakres nie ma znaczenia, rozdzielczość i tak pozostanie ta sama. Stosując dzielnik na rezystorach możesz dobrać dowolnie zakres. Na pewno zasilanie uC nie jest dobrym napięcie ref. Przykład: układ jest zasilany bateryjnie, napięcie spada, w tym ref i mamy skopany wynik. na pewno...
jak najprościej wykonać obliczenie zmiennoprzecinkowe (z dzieleniem) na liczbach uint8_t, tak aby wynikiem także była liczba uint8_t? Wcale nie musisz wykonywać dzielenia na zmiennoprzecinkowych :wink: wystarczy że zrobisz np: tak: uint8_t a; uint16_t b; b=(20*10)/3; b*=10; a = b/10; Zasada jest taka żeby "przesunąć" przecinek z ilorazu w prawo...
Kolego Quarz, przy długości słowa dostępnej w procesorach i przyjęciu zmiennych typu double (dokł. 15-16 cyfr dziesiętnych) na składowe liczby zespolonej to raczej koledze pytającemu błąd nie zdąży narosnąć, szczególnie, że ma mieć dokładność wyjściową 2 miejsca po przecinku ... Nie ma czegoś takiego, jak: dokładność wyjściową 2 miejsca po przecinku...
Nie wiem czy do końca cię rozumiem. Co ma być wynikiem w 4? Jeżeli to ma być % zrobionych sztuk przez cały tydzień do wszystkich sztuk zaplanowanych na cały tydzień to ta formuła podaje błędny wynik. W takim przypadku po prostu zsumuj rzeczywiste wykonanie w każdym dniu i podziel przez plan na cały tydzień. Jeżeli chcesz aby w 4 pokazywało ci procent...
Jak mógł byś bliżej naświetlić i pomóc zrozumieć jak można by to zrobić był bym wdzięczy. Domyślam się iż chodzi tu o rozbicie odczytanego wyniku na dwie zmienne typu Byte lub Long. W pierwszej zmiennej mamy część całkowitą wyniku, a w drugiej część po przecinku. Można i tak. Można też wpakować cały wynik do zmiennej całkowitej tak, aby znajdowała...
To jest projekt teoretyczny...(na kartkę) nic zewnętrznego nie podepnę bo mam już wszystkie porty zajęte...więc to odpada. W avr pisząc programy mogłem ustawiać w przerwaniu od nowa wartości początkową licznika. ZS 8051 mam pierwsze do czynienia...przede wszystkim ujawnił się brak preskalerów w 51. Obecnie moja wizja wygląda tak: Mam do odliczenia godzinę...
Witam Mam następujący problem: [syntax=cpp]#include <cstdio> #include <iostream> using namespace std; int main() { float a = (wynik z jakiegoś działania); }[/syntax] I teraz ten wynik może wyjść na przykład 12313 albo 124234,5. Jak zrobić, żeby jeśli jest całkowity, to wypisać bez przecinka i cyfr po nim, a jeśli nie, to z 1 cyfrą po przecinku....
Jestem kompletnie zielona w programie C++. Mam zrobić program, który pobierze liczbę zmiennoprzecinkową, w następnym wierszu kolejną, a w następnym wierszu wyświetli wynik dzielenia je przez siebie. To ja mam tak: Dodano po 7 Chodzi o to, że jak wpisze jakąś liczbę z przecinkiem, to wyskakuje jakieś inf Proszę pamiętać o używaniu znaczników syntax....
Miałem wcześniej działający układ ze zmienną typu float , i użytą funkcją sprintf ale są bardzo pamięciożerne i ze względu na małą pamięć mojego atmega8 chciałbym to w jakiś sposób obejść.A odnośnie tych dzieleń to nie mój pomysł ale słyszałem że jest to potrzebne aby wyświetlić wynik pomiaru po przecinku.Co musiałbym zmienić lub dodać to mojego kodu...
Co do mikrokontrolera z przetwornikiem 12-bitowym - np. M054 lub STM32F05x. Zastanów się, ile takich obliczeń w zmiennym przecinku ATmega może wykonać w ciągu sekundy. W wielu zastosowaniach program praktycznie stanie w miejscu, bo Twoje mnożenie i dzielenie zmiennopozycyjne zajmie tysiące cykli procesora oraz kilka KiB pamięci. Dla ATmega8 to może...
Kurs: Instrukcje Wreszcie dochodzimy do instrukcji, czyli do działu który nauczy nas co robić z poprzednio poznanymi rzeczami. Powiedzieliśmy sobie o zmiennych, operatorach, a dzięki instrukcjom które zaraz poznamy, będziemy mogli wykonywać operacje na nich w szerszym tego słowa znaczeniu. Mamy instrukcje proste i złożone. Instrukcja prosta składa...
Prosiłbym o sprawdzenie kodu stopera na mikrokontroler Atmega32 współpracujący z kwarcem 16MHz. Prescaler ustawiony na 1024, timer w trybie CTC. Wynik wyświetla się z dokładnością do mikrosekund. Czasami jednak dostaję wynik w stylu 0,000000s, czy 0,002123s, który jest fizycznie niemożliwy do uzyskania. Z góry dzięki za pomoc. [syntax=c] #include <avr/io.h>...
witoldwitoldowicz - trochę udziwniasz, nie prościej sumowanie zrobić w przerwaniu? goldcap - zajmuje sporo bo używasz arytmetyki zmiennopozycyjnej. Jaki sens jest mnożyć razy 1.1 a potem razy 1000? Nie lepiej od razu pomnożyćrazy 1100? Jeśli nie wyświetlasz nic po przecinku to dzielenie przez 1024.0 też sensu nie ma, lepiej przez 1024. A jeśli masz...
Witam. Przedstawiam Wam, drodzy koledzy koleżanki moje najnowsze dzieło - zestaw do ćwiczeń na sterowniku przemysłowym Siemens Simatic S7-1200. Jest to zestaw najprostszy, składający się tylko ze sterownika, bez panelu operatorskiego i modułów dodatkowych, mimo to pozwalający na przeprowadzenie wielu ćwiczeń. W moim zestawie pracuje CPU 1214C, posiadający...
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. Idea jest znana, ale w zaskakująco innej dziedzinie: Biznes: liczby ułamkowe stałoprzecinkowe....
Przedstawiam prosty kalkulator czterodziałaniowy, zbudowany na polskich układach: * MC14007 - jednostka centralna kalkulatora (8 cyfr, dodawanie, odejmowanie, mnożenie, dzielenie, podnoszenie do kwadratu, pierwiastkowanie, liczenie odwrotności oraz pamięć) * CQYP-95 - czerwony wyświetlacz siedmiosegmentowy + kropka, 9 cyfr * UCY74549 - driver (9 x...