No więc jest na to prosty sposób i zwie się fixed-point math. Zakładasz, że liczba jest zapisana w formacie np. 4:4 bity , gdzie 4 wysokie bity to liczba całkowita w przedziale 0-15 , a 4 niższe to ułamek w przedziale 0/16-15/16 Jeżeli mnożysz liczbe 8:0 przez 4:4 to masz wynik 12:4 i wszystko cacy - masz swój wynik i wartość ułamkową. Jeżeli chciałbyś...
zadeklaruj w funkcji zmienne jako long...
Lecz w który miejscu mnożę dwie liczby 16 bitowe podczas zapisywania do tablicy? mnożę 8 bitowe b i 256 ( 8bitów ) Ty to rozumiesz. Ja to rozumiem. Kompilator tego NIE rozumie. Poza tym dziwny ten zapis: [syntax=c]b=0b&00011111[/syntax] Ani średnika na końcu ani sensu w środku.
Witam, mam problem z realizacją układu mnożącego liczbę 4 bitową przez 2 bitową . Mnożnik należy traktować jako wejście układu. Do realizacji dostępny jest układ 74181. W jaki sposób można uzyskać taki iloczyn?
Możesz wykorzystać w tym celu układ scalony 74181, który jest 4-bitowym ALU w technologii TTL. Na jedno wejście podajesz na stałe liczbę 9 a na drugie liczbę 4-bitową. Jako funkcję wybierasz mnożenie arytmetyczne. Pozdrawiam wszystkich jjanek
Witam. a i x są liczbami 16 bitowymi. wykonałem mnożenie liczby 16bitowej przez 16 bitową i teraz mam problem bo nie mogę zrobić dodawania(+b). wynik mnożenia liczba 32bitowa, chciałem dodać jakąś liczbę 8bitowa. moje pytanie jak zrobić w asemblerze dodawanie liczby 8b do 32b?
Otrzymane 2 bajty łączę w liczbę 16 bitową. Mnożę ją przez 10 i dzielę przez 16 (tj. przesuwam o 4 bity w prawo). Mam w wyniku temperaturę 10x większą niż w rzeczywistości. Ewentualne obliczenia i ustawienia wewnątrz programu robię na liczbach 10x większych. Dla procesora to żadna różnica. Wyświetlaniem zaś zajmuje się za każdym razem ten sam podprogram,...
Jest źle. Największe liczby 3-bitowe to 111b = 7d 7×7=49 49d = 110001b Jest to liczba 6-bitowa, a na rysunku jest 7 bitów wyjściowych. Nie mogę wykluczyć, że siódmy bit jest zawsze 0, ale gdyby tak było, należałoby wyeliminować to wyjście. Laborkę miałem 40 lat temu, więc więcej nie napiszę. Na dziś zamiast bramek dałbym procesor PIC 1 szt. i program...
nikt nie liczy alpha blendingu tylko mnożył 3 liczby 8 bitowe.
Czy ktos wie jak zrealizowac podstawowe funkcje arytmetyczne ( dodawanie ,odejmowanie, dzielenie mnożenie) na liczbach 16- bitowych w procsorze 99c51.
Witam, mam do rozwiązania zadanie, w którym trzeba zrobić układ iteracyjny mnożący liczbę binarną 16-bitową razy 3. Nie mam pojęcia jak narysować graf do tego układu. Czy mógłby ktoś narysować ten graf? Pozdrawiam
Poza tym pobieżnie przejżałem DS ATTiny i nie widzę instrukcji analogicznej do DIV w 8051?? Jak w nim dzielić liczby?? A czy znalazłeś MUL? ;) Do takich obliczeń niestety trzeba pisać własne funkcje. Można mnożyć i dzielić poprzez wielokrotne dodawanie lub odejmowanie danej liczby, ale to jest oczywiście dosyć mało optymalna metoda. Oczywiście mnożenie...
Proszę o podpowiedź czy układy CPLD/FPGA będą w stanie przetworzyć operacje matematyczne w kilku cyklach zegarowych (może nawet w jednym cyklu) ? Temat dotyczy sprzętowego (bardzo szybkiego) mnożenia liczb 64bit x 64bit a nawet 128bit x 128bit, Większość nowoczesnych układów FPGA ma wbudowane sprzętowe układy mnożące, tyle że one operują na liczbach...
Mnożenie przez 7 to inaczej A + 2A + 4A czyli na pierwszy sumator jedno wejście podajesz liczbę A a na drugie liczbę A przesuniętą o jeden bit (mnożenie przez 2) i na wyjsciu masz 3A. Nastepnie wynik podajesz na kolejny sumator (pierwsze wejście) i liczbę A przesuniętą o dwa bity (mnożenie przez 4) na drugie wejście i na wyjściu masz 7A. A mnożenie...
Witam wszystkich. Mam małą prośbę mam do zrobienia układzik mnożący liczby 8 bitowe bez znaku (mnożenie przez dodawanie i przesuniecie). nie wiem zbytnio od czego mam zacząć. prosiłbym o pomoc. z góry dzięki dla wszystkich którzy pomogą.
Bo tam są 16-bitowe dane i 16-bitowe współczynniki, a łącznie jest ich 60. A więc z każdego mnożenia danych i współczynnika wyjdzie Ci liczba 32 bitowa i takich liczb trzeba zsumować 60. A więc wynik zwiększa się aż do prawie 38 bitów (dokładnie 38 bitów miał by dla zsumowania 64 liczb).
Czemu ten pierwszy kod działa źle? Jeżeli obie 32-bitowe liczby są typu int, to wynikiem mnożenia będzie też int i prawdopodobnie z przepełnieniem w tym wypadku. Liczby int przed mnożeniem nie są promowane do long.
Poczukaj w notach aplikacyjnych microchipa, są tam opisane procedury mnożenia, dzielenia a nawet chyba jakieś funkcje trygonometryczne.
Witam, Mam za zadanie napisać w assemblerze (pod RAID-em) program działający na zasadzie kalkulatora, ale mający tylko jedną funkcję - mnożenie liczby 8 bitowej przez 16 bitową. Niestety kompletnie nie wiem od czego zacząć i jak tak naprawde ten program powinien być skonstruowany. Dodam, że czasu pozostało mi niewiele - do poniedziałku (tego!). Pojęcie...
Mam 3 algorytmy: bootha karatsuby i jeden inny wszystkie mnożą mi liczby 32 bitowe w symulatorze Isim (Web Pack ise). Podczas symulacji moge ustawić dowolny czas symulacji ale nie wiem jak długo sam taki algorym liczy. Wiek ktoś w jaki sposób można by było porównać czas mnożenia tych algorytmów?.
Mam spore doswiadczenie w projektowaniu układów cyfrowych, ale o czymś takim nie słyszałem. I przyznam, że nie rozumiem problemu. Bo co to właściwie znaczy "jednobitowy" i ma mnożyć ten bit przez 6 ?! To jakaś bzdura. Natomiast przy mnożeniu liczby (iluś-tam bitowej) przez 6 można skorzystać z zależności, że: y = 6 * a = 4 * a + 2 * a A mnożenie przez...
Potrzebuję skonstruować układ mnożący x3. Mam do dyspozycji bramki, 5 przerzutników JK i dwa rejestry przesuwne jednokierunkowe. Wiem, że układ musi najpierw przesunąć liczbę w lewo (czyli pomnożyć razy dwa = dopisać zero z tyłu), a następnie dodać do tego pierwotną liczbę. Jak to zrealizować ? Obydwa rejestry są 8-bitowe, ale można przyjąć założenie,...
ADMUX=0b10000000; //kanał 7 ADC Zamiast 7 ustawiasz zerowy kanał ADC, a ten pin wykorzystujesz jako wyjście na wyświetlacz przecież... nic dziwnego, że bzdury wychodzą. O co chodzi z tym mnożeniem przez 100 (i dlaczego w przerwaniu, do tego jeszcze na zmiennej globalnej)? Jeśli już to powinno być przez 2 (wtedy wystarczą liczby 8-bitowe) albo (na 16-bitowych)...
No więc tak: (zakładam liczby w kodzie NKB (tj. bez znaku)) - ponieważ mnożysz liczby 4 bitowe więc wynik może być 8 bitowy: 15*15=225 (11100001) z tego wniosek, że akumulator wyjściowy powinien być 8 bitowy (2 sumatory 4 bitowe, 2 rejestry 4 bitowe pamiętające wynik) Wyjście sumatorów podajesz na wejście powyższych rejestrów, Na jedne z wejść np a0,a1,a2,a3,a4,a5,a6,a7...
Zaczynasz wprowadzanie znaków od najstarszych pozycji, nie? Jeśli zaczniesz od 0, to będziesz miał (na starcie) liczba = 0 liczba = 0*2 + '0' - '0' // kody ascii objaśnił Łuk_F czyli liczba się nie zmieni, ciągle będzie wartość 0. Gdy trafisz na pierwszą jedynkę dostaniesz liczba = 0*2 + '1' - '0' czyli w liczbie pojawi się 1. Kolejna jedynka liczba...
Witam, proszę o pomoc, mam do wkonania nastepujące zadanie: napisać program wykorzystując assembler procesora z80, który będzie mnożył 2 liczby 8-bitowe, wykorzystując stos do przechowywania. Mnożną można umieścić w rejestrze A, natomiast mnożnik w rejestrze B, (wynik w HL). Byłby ktoś w stanie napisać taki programik?? pozdro... rrally(at)interia.pl...
Jak liczba 62-bitowa jest stała to mnożenie jest jeszcze prostsze bo wystarczy napisać stały algorytm bez żadnych skipbittestów - to jedna sprawa. Po drugie lepiej takie mnożenie robić w bazie danych - transmisja będzie 2x szybsza a i samo mnożenie na PC-ie szybsze.
Mnożysz lewą cyfrę przedstawiającą wartości dziesiątek x10 i dostajesz 10100 binarnie mnożenie warto zrealizować jako odpowienie przesunięcie bitowe, gdy mnożysz x10 to tak jakbyś mnożył x8 i mnożył x2 27x10 = 27x(8+2)= 27x8 + 27x2 = 27x2^3 + 27x2^1 czyli wynik mnożenia dowolnej liczby x10 jest rowny sumie jej przesuniecia w lewa o 3 bity i przesuniecia...
(...)Dlaczego w takim razie stała z większą liczbą 100000 jest obliczana prawidłowo a 10000 tylko z wymuszeniem longa?(...) 100000 jest od razu traktowane jako „long“ (32 bity), więc i mnożenie 8*100000 wykonywane jest jako 32-bitowe, z prawidłowym wynikiem. Natomiast w działaniu (8*10000) preprocesor mnoży dwie stałe 16-bitowe, traktując...
Nie mam za bardzo w tym momencie napisania kawałka kodu (brak programu na tym kompie). Tak jak pisałem w poprzednim poście użyj instrukcji mnożenia MUL_E. Jak poczytasz "helpy" od tych instrukcji, to tam piszą, że: Jeżeli zmiennymi wejściowymi dla MUL_E są liczby 32 bitowe, to wynik jest również 32 bitowy, a w przypadku MUL_M 64 bitowy i wtedy wchodzisz...
Nie widzę jak radzisz sobie z przepełnieniami podczas dodawania i mnożenia, a z opisu problemu wydaje mi się, że u Ciebie właśnie to następuje. Po pewnej ilości działań masz przepełnienie i dalsze wartości są błędne. Pamiętaj, że gdy mnożysz dwie liczby 8-mio bitowe wynikiem jest liczba 16-to bitowa i musisz z niej wybrać któreś 8 bitów do dalszego...
Używam do pisania w języku VHDL programu Xilinx ISE 9.1i ale bardzo mi on nie leży. Na zajęciach korzystamy z WebPacka, który jakoś bardziej według mnie jest przysfajanly jednak problem jest z legalnością tego więc jadę na wyżej wymienionej darmówce. Może mi ktoś powiedzieć czy idzie to jakoś zoptymalizować i wyłączyć zbędne funkcje żeby nie wciągało...
To działa tak samo dla dowolnej ilości bajtów. Liczbę wejściową wysuwasz z najstarszego bitu najstarszego bajtu Czyli przesuwasz liczbę 32 bitową (mnożysz przez 2). Wysunięty bit (w znaczniku przeniesienia) wprowadzasz do najniższego bitu najniższej tetrady liczby BCD. Przed każdym kolejnym przesunięciem sprawdzasz każdą tetradę czy nie jest >=5...
Witam, Co do instrukcji dodającej 0 w 7 linijce kodu, należałoby sprawdzić rodzaj zmiennej "Temp_1". Jeżeli jest to zmienna 16-bitowa, to operacja +I ma prawdopodobnie za zadanie zmianę liczby 32-bitowej (powstałej po operacji mnożenia) na liczbę 16-bitową (dlatego dodawane jest 0). Fragment opisu funkcji +I z help'a w Step7: The instruction produces...
Poszukaj bibliotek mnożacych 16bitowe liczby. Dodano po 26 TEN PROCEK JEST 8 BITOWY!!!! Dodano po 50 A w ogóle chcesz mnożyć bitowo? Czy matematycznie?
I wszystko się zgadza. Wynik mnożenia (256*adc1) jest zapisywany jako liczba 16 bitowa, a więc już masz obcięcie i dalej muszą wyjść bzdury. Samo to mnożenie jest zresztą bez sensu, bo mnożysz tylko po to, żeby zaraz potem dzielić, więc to samo ale bez przekroczenia zakresu wartości mógłbyś policzyć jako 62500u / adc1.
btw nie jestem pewien ale za pomocą przesunięcia bitowego w lewo << na AVR się chyba nie da otrzymać liczby 32 bitowej. Trzeba albo przesuwać w prawo albo inaczej cudować :)
dobra a wiec od nowa pisze co i jak, dostałem od nauczyciela trzy pytania dotyczace asemblera, ja osobiscie jeszcze nic w nim nie robilem nie mialem stycznosci i troche go nie kumam.... 1. Inkrementacja jest to..., natomiast dekrementacja jest to ... w języku programowania ASEMBLER 2. Napisz prosty program w ASEMBLERZE dla układu 8051 realizujący funkcje...
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ś;...
Namoje szczęście mnożenie ma być przez liczby całkowite Ale mnożenie przez liczby całkowite też będzie z błędem. Nie podaję częstotliwości i innych szczegółów- na tym etapie jest to nie istotne. To akurat jest bardzo istotne. Do wysokich częstotliwości trzeba inaczej podejść. Podaj chociaż bardzo przybliżony zakres. I powiedz czy wymagana jest stuprocentowa...
Mnoży się starszy bajt * 256 i dodaje się młodszy !
Mylisz się nic nie trzeba będzie robić żadnego dzielenia ani mnożenia. Wartość liczby będzie 12 bitowa czyli maksymalnie 4095 (liczba int) więc aby wyrazić ją w voltach wystarczy między liczbą reprezentującą tysiące a setki wstawić po prostu znak przecinka i będziesz miał "ludzką" postać swojego napięcia.
Witam, chcę wykonać układ mnożący 2 liczby 4bitowe. Sugestia, to zrobić ten układ na licznikach. Liczby będę podawał zwykłymi przełącznikami równolegle, i wynik wyświetlał na diodach. Kto ma pomysł, odnośnie realizacji ? A nie lepiej użyć 74181?
tylko nie wiem w którym momencie to przegapiłem w moim kodzie i o to właśnie proszę, o wskazanie gdzie gubię bity / przekraczam zakres prawie w każdym mnożeniu, zwłaszcza jeżeli tablica Cal edit: hmm... widzę że próbowałeś tak robić? (zmienna tmp?) no i biorąc pierwszy z brzegu przykład, tmp=Cal[2]*dUT, mnożenie dwóch liczb 16bit, wynik przekracza...
Witam, to mój pierwszy post na forum, więc przepraszam, jeśli umieściłam go w złym dziale. Mam problem ze zrealizowaniem układu na laboratorium z układów logicznych. Muszę zrealizować układ mnożący zadaną liczbę 4-bitową przez 1 lub przez 4 w zależności od wyboru, z tym że przez 4 mnożone mogą być tylko liczby z zakresu 0-3. Do dyspozycji mam układ...
Witam, mam problem. Próbuję zaprojektować układ synchroniczny, który mnoży dowolną liczbę binarną przez liczbę 3. Wejście ma być podawane z rejestru nr 1, a wynik zapisywany do rejestru nr 2 (rejestry 8-bitowe jednokierunkowe). Wiem jedynie, że liczbę muszę rozbić na x << 1 + x, ale nie do końca wiem, jak to wrzucić na schemat układu na kartce....
Owszem będzie jeśli zależy Ci na szybkości wykonywania programu. Operacje na 32 bitowych liczbach w AVR-ku są bardzo wolne ponieważ procek musi się nieźle napocić z przeniesieniami itd. Jak wolne? Ile może trwać np. mnożenie dwóch kilkucyfrowych liczb, albo obliczanie pierwiastka kwadratowego?
Przesuwanie liczby oznacza mnożenie lub dzielenia (w zależności od kierunku przesuwania) przez 2. Poniewaź liczba 10 nie ma rozwinięcia binarnego, przesuwanie nie może być zastosowane. W każdym przypadku (dzielenia przez liczbę 16-bitową czy kilka dzieleń przez liczbę 8-bitową) wystąpi dzielenie. Procesor AVR nie ma istrukcji dzielenia więc należy wykonać...
ATMega ma ALU zdolne do mnożenia dwóch liczb 8-bitowych w 1 cyklu zegara... http://ww1.microchip.com/downloads/en/Ap... W sumie to istniał układ mnożący dwie liczby 4-bitowe - 74284. Tu masz ładne omówienie teorii, z przykładami: https://www.electronicshub.org/binary-mu...
[url=http://www.elektroda.pl/rtvforum/to... umieściłem swoje procedury bin na bcd, bcd na bin, mnożenie, dzielenie z możliwością deklarowania ilości bajtów do obliczeń.
Tak myślałem, że należy cały port zapisać do jednej zmiennej, tylko nie byłem pewny czy po zapisaniu do zmiennej liczby binarnej mogę korzystać z niej jako dziesiętna. Jeszcze pytanko z tym mnożeniem, jeżeli po pomnożeniu wartość liczby się nie zmieni, to po co ją w ogóle mnożymy? :D Chyba nie do końca dokładnie przeczytałeś posty wyżej. McMonster...
Witajcie, Dużo szukałem, ale nie mogłem znaleźć Działającego programu do kalkulatora, który dodaje, odejmuje, mnoży i dzieli ( Może też pierwiastkować ) maksymalnie 3 liczby 16-sto bitowe i wynik pokazuje na wyświetlaczy LCD. Jak by ktoś posiadał to był bym wdzięczny za wstawienie.
Napisz jaką potrzebujesz dokładność, jeśli niewielką to najlepiej użyć gotowej tablicy. Jeśli dużej to trzeba rozłożyć funkcję pierwiatkowania np. na szereg Taylora i wtedy obliczać kolejne przybliżenia, ale to wymaga napisania procedur operacji zmiennoprzecinkowych (głownie mnożenie i dodawanie zmiennoprzecinkowe).
Czy nie ma szybszych alglorytmów? Oczywiście, że są. Wykorzystaj algorytm mnożenia i dzielenia pisemnego. Dzięki temu znacznie ograniczysz ilość dodawań czy odejmowań. Na przykład 1234 * 5678 zrobione metodą powyższą to 1234 dodawania (zakładam, że program jest chytry i sprawdza na początek która liczba jest mniejsza i ją bierze jako licznik pętli)....
Ilu bitowa ma być ta liczba? Ogólnie takie coś można wykonać w następujący sposób: mnożysz liczbę przez dwa (czyli przesuwasz w lewo na rejestrze) i na na wyjściu takiego "przesuwnika" dodajesz liczbę wejściową.
Chodzi o pomnożenie próbki przez liczbę x z zakresu 0-255 i potem przesunięcie o 8 bitów w prawo, żeby uzyskać próbkę o współczynniku x/255, tak? Dokładnie. Mnożenie ma niewielki narzut (procesor ma instrukcję MUL), a dzielenie przez 256 to po prostu obcięcie najmniej znaczącego bajtu. Stałą? Przecież volume_coefficient to zmienna. Owszem, ale nie...
Wystarczy rzutować jedną liczbę, druga będzie promowana do odpowiedniego typu.
Sensu to nie ma żadnego. Dla każdego 8-bitowca jest to zabójstwo, bo każda operacja na danych czy to BCD, czy binarnych 64-bitowych zajmie wieki (zwłaszcza mnożenie i dzielenie). Są algorytmy resztowe umożliwiające unikanie dzielenia przy konwersji bin->BCD i całkiem zgrabnie to wychodzi (nawet na głupiutkim 51), ale wciąż nie widzę w tym sensu, jeśli...
Nie wiem w takim razie w czym problem, to prosta matematyka. A procesor ma funkcje mnożenia i dzielenia 8bit wystarczy zrealizować rozszerzenie na 16bit. Tak ma 8bit, ale nie wiem jak optymalnie napisać np mnożenie dwóch liczb 16 bitowych, ma ktoś jakiś kod ?
Witam. Gdzie znajdę gotowe procedury w asemblerze dla pic 16f84 np. mnożenie,dzielenie liczb 32-bitowych itp.
[syntax=c] uint32_t bin2BCD(uint32_t val) { uint32_t retval; uint8_t count, i, *ptr = &retval; retval = 0; for (count = 0; count < BCD_DIGITS * 4; count++) { for(i = 0; i < 4; i++) { ptr[i] += 0x33; if((ptr[i] & 0x08) == 0) ptr[i] -= 0x03; if((ptr[i] & 0x80) == 0) ptr[i] -= 0x30; } retval <<= 1; if(val & (0x08L << ((BCD_DIGITS...
Witam Na czwartek muszę przygotować listingi programów napisanych w asemblerze które wykonają poniższe działania: 1. Dane są liczby: A=0F1h, B=00011111b. Obliczyć binarnie A+B, A-B, B-A. Podać wynik w postaci binarnej i szesnastkowej. 2. Napisać program mnożenia x4 liczby umieszczonej w rejestrze R7 bez użycia instrukcji mul ab. 3. Napisać program...
Dobre podręczniki do cyfrówki pokazują schematy z podsawowych bramek logicznych i uzyskuje się sumator np 8 bitowy. W każdym razie rzeczywiście to działa w jednym takcie zegara, a nie w ośmiu czy szesnastu. To trudno pisać na forum, nikt ci nie będzie edytował schematów itd... poszukaj wiedzy książkowej Mnożenie jest bardziej skomplikowaną opowieścią,...
Witam, Uklad kombinacyjny może Ci sie nawet nie zmieścić w takim FPGA. Najrozsądniej by było stworzyć schemat obliczania takiego mnożenia, a następnie optymalnie podzielić operacje mnożenia pomiędzy dostępne układy mnożące - można to nazwać szeregowaniem. Zastanów się - jakoś dla mnożenia 64x64 bity narzędzia syntezują układ wykorzystujący tylko multiplikatory...
Co do możliwości zrobienia na bramkach, to takie coś jest elementem układu mnożenia liczb metodą [url=https://en.wikipedia.org/wiki/Walla... tree. Prościej mógłby być zrobiony układ działający sekwencyjnie: generator sygnału zegarowego podaje impulsy na CD4017 z wyjściami połączonymi poprzez oporniki z przełącznikami łączącymi do masy, zasilany...
Przy większych wartościach nie ma problemu, to L, to nie do tego jest. Literki służą do wymuszenia typu przy pomocy którego zostanie zapisana wartość, a nie "mówienia" kompilatorowi do jakiego typu ma właśnie odczytaną wartość przypisać (przypisuje automatycznie do int i "pojemniejszych"). Przydaje się, jeżeli operacja ma być wykonana na typie o innej...
Witam serdecznie, podczas pisania programu na PLC Fatek'a napotkałem pewien problem. Chciałbym aby na podstawie czasu pracy palnika olejowego oszacować bieżące zużycie paliwa wiedząc, iż dysza która jest aktualnie zamontowana spala 0.4 galona na godzinę (1.51 litra). No i tutaj pojawia się problem w jaki sposób to obliczyć? Programując plc nie mogę...
Na AVR'ach typ int ma 2 bajty, a wszystkie literały liczbowe domyślnie są typu int. 34816 pewnie normalnie powinno by powodować warning, gdyż komu chciało by się pisać 34816U żeby zaznaczyć, że literał ten ma być int'em bez znaku? Ten warning mogli jawnie wyrzucić, jednak w przypadku operacji 17*2048, jeśli obie liczby traktować jako int ze znakiem,...
272 to taka nieciekawa wartość do mnożenia. Ja zrobiłem tak: Przerwania z TIM0 i TIM1 TIM0 zlicza impulsy z wejścia zliczającego, i gdy się przepełni jest króciutkie przerwanie inkrementujące parę 3 rejestrów. TIM1 zgłasza przerwanie równiutko co pół sekundy. Na samym początku obsługi przerwania jest odczytywana wartość impulsów z TIM0, i jest on resetowany....
Wiesz, trochę nie bardzo mamy głowy do treningu na cudzym kodzie. Ja nie potrzebuję ćwiczeń, mam je na co dzień. Dlatego pomagamy jak możemy, pokazując jak trzeba zrobić a Ty musisz zrozumieć jak działa twój kod. To z resztą dla twojego dobra. Nawet nie wiesz ile godzin spędzałem np na szukaniu spacji po znaku łączenia linii "\" w macro w C. Taka szkolna...
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...
Nie mam na myśli zmiany wartości (i mam wrażenie, że nic takiego nie napisałem), tylko zmianę tego, jak zmienna działa (jest interpretowana) jako indeks pętli. Nie jest dobrze, że działania w których używa się wartości zmiennej, wpływają na inne operacje, które jej dotyczą. W bardziej złożonym programie takie oddziaływanie "wstecz" będzie raczej nie...
akurat ten wariant jest dla liczb <0 do wartości -32767. Chcę z tego zakresu uzyskać odpowiadające wartości dodatnie z zakresu 0 ... 65535. Mnożę zatem ten pierwszy zakres przez -1, potem mnożę przez dwa przesuwając bitowo w lewo o jedną pozycję i odejmuję 1, żeby uzyskać przy minimalnej wartości z pierwszego zakresu maksymalną liczbę z drugiego....
przy każdym programie siedzę z kilkoma kartkami gęsto zapisanego papieru-fakt jest niepodważalny, że to najlepsza metoda, dopiero potem komputer. W asemblerze mnożyć x2 czy dzielić /2 i ich wielokrotności nawet jakby to były liczby 16 czy 32 bitowe - to da się zrobić ale jak mam liczbę 2,8 i to jeszcze na 6-tym miejscu po przecinku to się zaczynają...
Zdefiniuj zmienną Temp jako Word. Jak ci ma wyświetlić 600 jesli zmiena Byte może przyjąc max wartość 255. Właśnie powyżej tej wartości będą ci sie wyświetlać dziwne rzeczy. No to może wytłumaczę jak to zrobić na zmiennej typu Byte według wyżej wspomnianej ideii. $crystal = 4000000 $regfile "attiny2313.dat" Dim Pomiar As Single Dim Temp As...
Sekundę, ale gdzie jest ta potęga? Ja tu widzę ciąg 2 * 2 = 4; 4%10 = 4 4 * 2 = 8; 8%10 = 8 8 * 2 = 16; 16%10 = 6 6 * 2 = 12... A na marginesie, potęgowanie liczby 2 to nic innego jak przesunięcie bitowe o 1 w lewo, które jest 20 razy szybsze od mnożenia.
"przesuwa" zmienną i o jeden bit w lewo (tj. mnoży przez 2). Równoważne czemuś takiemu: << to operator przesunięcia bitowego w lewo.
:) Dzieki doceniam ale to już wogole mnie przeroslo :) zeby cos z tego wyciagnac trzeba cosik rozumiec :) a ja ni w ząb ktorej sekcji mam się przyjzec i jak moge ja przerobic zeby mnozyla liczby 7 bitowe przy zachowaniu algorytmu mnozenia metoda Bootha. Chetnie pomoge w kazdej innej dziedzinie... ale ASM to nie moja bajka :/
Próbowałeś podkręcić procesor np. do 20MHz? Zanim o tym pomyślę wolałbym raczej przyspieszyć działanie programu. Spróbuję np. pozamieniać niektóre mnożenia na przesunięcia bitowe lub zmniejszyć liczbę operacji na liczbach zmiennoprzecinkowych. Algorytmy rysowania linii i stawiania punktu w buforze chcę oprzeć na asemblerze (zamiast bascomowych komend...
Witam. Czy potrafi ktoś pomóc mi z zadaniem z assemblera? Mam do napisania program, który mnoży dwie liczby 5 bajtowe (40 bitów) szesnastkowe oraz podaje wynik również w tym systemie (tylko wynik będzie wtedy 80 bitowy). Problem polega na tym, że do tego mnożenie trzeba wykorzystać algorytm, ponieważ instrukcja mul nie działa dla tak dużych liczb. Mnożenie...
Zauważ, że przy podnoszeniu do potęgi ilość bitów rośnie w przybliżeniu z wykładnikiem potęgi: 2 -> 15*15=225 -> 8 bitów 3 -> 15^3=3375 -> 12 bitów czyli układ się rozbudowuje. Budowa takiego układu na pojedyńczych bramkach jest raczej nieopłacalne raczej trzeba stosować układy większej skali integeracji i przyjąc jakąś metodę mnożenia liczby przez...
AND mnoży liczby z wejścia. czterowejściowa pokaże 1 jeżeli 1 jest na wszystkich wejściach. Masz dwuwejściowe i trzywejściową. Na szybko z dwóch dwuwejściowych pomnożysz 2 pary sygnałów. Oba wyniki pomnożysz w kolejnej i gdziekolwiek pojawi się zero, to bramka to zasygnalizuje. Prościej do dwuwejściowej NAND dodać inwerter i podłączyć do trzywejściowej...
Wynik Twojego działania to: 64449, czyli mieści się w zakresie i nie powinno być problemu. I właśnie dlatego 63 jest ostatnią wartością którą widzisz. Powinieneś widzieć jeszcze 64, ale pewnie nie ma wystarczającej precyzji potencjometru i od razu przeskakujesz na (teoretyczne) 65. Poza tym muszę mieć przetwarzanie z 10-bitową precyzją. Ciekawe po...
Pfemek- czy chodziło Ci o linie: Impulsy_drogi_1 = 256 * Przep : Przep = 0 ??? To znaczy z czym mi chodziło o co? :) Ta linia którą przytoczyłeś dotyczy zliczania impulsów z czujnika prędkości (drogi) wtedy gdy mikrokontroler zajęty jest czym innym (np. czeka 3s na koniec wyświetlenia jakiejś informacji) po to aby nie gubić impulsów. Dlatego też gdy...
Jednym z ważniejszych parametrów przetwornika D/A - i od tego zwykle zależy jego cena - jest błąd przetwarzania; zwykle jest mierzony w działkach skali, np. 1/2 działki skali; rozróżnia się dwa rodzaje błędów: największe odchylenie, i największą różnicę odchyleń między sąsiednimi działkami (błąd różnicowy); jeśli masz błąd różnicowy 1/4 działki, i połączysz...
Dziś siedze całą noc nad tym jak wymyśleć algorym prostego dzielenia liczby 16bit przez liczbe 8bit ze wzracaniem reszty na procesor 8bit i szczeże mówiąc nic nie wymyśliłem.... Jedynym sensownym rozwiązaniem jest realizacja klasycznego sposobu dzielenia:( Moje pytanie brzmi... czy da sie jakoś inaczej zrealizować funkcje dzielenia?? np tak jak w mnożeniu...
utoa() pracuje z liczbami 16-bitowymi. 'odczytane' jest liczbą 32-bitową, więc trzeba użyć ultoa(). Próbowałem przez ultoa, ale wtedy jest jeszcze gorzej bo końcowa wartość wynosi 357887394. I właśnie męczę się z tym prawie od godziny na różne sposoby i nic... Używam 32-bitowej zmiennej bo muszę mnożyć przez 10, więc wyszedłbym poza zakres. Tymczasem...
Własciwie to racja :) zadania ponizej: Zad. 1. Zaprojektować i zasymulować działanie układu sumująco – mnożącego. Na wejście podawane są dwie liczby 3 bitowe oraz sygnał mówiący o operacji arytmetycznej (0 – sumowania; 1 – mnożenia). Na wyjściu pojawia się wynik operacji. Zad. 2. Zaprojktować konwerter kodu: a)Binarnego na „2”...
Nie jesteś na dobrej drodze. Zrób sobie przykład na piechotę (na papierze) i jak się wynik zgodzi to ubierz to w rozkazy. Na razie nie widze algorytmu który chcesz zastosowac do mnożenia. I jeśli będziesz umieszczał program do analizy na forum, to bardzo dokładnie opisz każdy rozkaz do czego służy (co robi)
na początek wystarczy tak if ( (a = j+k*10+l*100)!=0){ if ((i+e*10+f*100)>=a)... } } dalej można kombinować z upraszczaniem kolejnych operacji: j+k*10+l*100 to jak sądzę liczba dziesiętna składana z cyfr. Więc warunek ( j+k*10+l*100)!=0) mozna zastąpić ( j || k || l) pomija to...
http://obrazki.elektroda.pl/4339422600_1... To moja trzecia konstrukcja na FPGA ;) pierwszy był trywialny zegarek na kilku licznikach, a potem prosty kalkulatorek dodający dwie liczby. Tak więc proszę o konstruktywną krytykę i porady, co by tu można jeszcze ulepszyć. FPGA ciekawi mnie już od jakiegoś czasu, ze względu na to, że można...
Dostaje dane o wilgotności z tego czujnika (12 bitów) i mam je zapisane w dwóch rejestrach. Poszukuje wszelkich materiałów dotyczących tego jak przeliczyć tą 12-bitową liczbę na wartość w % RH. Podobnie z temperaturą. Wogóle poszukuję przystępnych materiałów zawierających opisy procedur do mnożenia, dzielenia itp. liczb całkowitych i ułamkowych w assemblerze.
poziom:=cisnienie* 10.19716; (*wartosc rzeczywista - przeskalowanie ciśnienia na wysokosc slupa wody*) poziomCentymetry:=TRUNC(poziom*1... (*poziom w centymetrach+ odcięcie czesci po przecinku*) 1. czyli poziomCm = cisnienie * 1019.716, spodziewasz się wartości od 0 do 1000 cm, więc cisnienie < 1.0 bar 2. ciśnienia...
co do wyświetlania, to mam panel TD 400 i to na nim chcę wyświetlać wynik temperatury, nie będę wyświetlacza zwykłego podłączać do sterownika. poprawiłem "działanie": http://obrazki.elektroda.pl/2934606300_1... ale chyba ni będę mógł użyć bloczka DIV_I ponieważ na liście rozwijanej w instrukcjach Integer Math jest wyświetlonym przy nim...
Jeśli na wejściu ma być 1Hz, to do przełączania AM/PM trzeba to podzielić przez 86400, i ostatni podział musi być przez 2, żeby czasy '0' i '1' były równe. 4059 może zliczać do 21327, więc licznik binarny co najmniej 3-bitowy. 4059 może sterować TTL, ale jeśli wygodnie jest zastosować np. zasilanie 12V, to wypada użyć licznika binarnego z serii CMOS...
Tylko że jak pomnożę całość przez 10 to już nie zrobię tego na 8 bitach. Czy jak dziele 2 liczby inie dzielą się całkowicie to ustawiany jest jakiś bit lub kilka ? Poza tym nie mam zielonego pojęcia jak wyświetlić pojedynczą cyfrę na wyświetlaczy z jakiejś 3 cyfrowej liczby zapisanej w końcu w postaci hex. Zakres liczb przy podanym przeze mnie wzorze...
Przetwonnik zlicza napięcia tylko do 2047, pokazując ujemne napięcie nie ma znaku minus i wartość, tylko np 65320. Czyli przetwornik zwraca wyniki w kodzie U2. Tam nie ma znaku minus. Jest za to przesunięcie poziomu. Najprościej mówiąc, zastosowanie takiej funkcji do konwersji: Napiecie = Zmierz1 * 256 Napiecie = Napiecie + Zmierz2 da Ci złe wyniki....
2^52 = 4 503 599 627 370 496. Jak widać mamy 16 cyfr, przy czym jedna jest "upośledzona" i nie może mieć wartości większej niż 4. 100 mnożeń i 100 dodawań w jednym takcie zegara przy operacjach na liczbach zmiennoprzecinkowych i do tego 64 bitowych? Ciężko sobie wyobrazić układ FPGA, w którym mógłbyś to zrobić, skoro sam piszesz, że przy 4 mnożeniach...
... bo nie rozumiem czemu pseudo-twórcy nie dali zmiennych 5 bajtowych... Wtedy zapewne jakiś programista :D-maruda napisał by: "nie rozumiem czemu pseudo-twórcy nie dali zmiennych 6 bajtowych..." itd. Zastanawiałem się nad kiedyś nad zbudowaniem procedur arytmetycznych dla liczb wielocyfrowych i wykorzystaniem klasycznych algorytmów działań pisemnych....
Przesuwa sie w prawo bo na ostatnim miejscu nic już sie nie zmieni i dodaje sie wprost wartość jak sie okręci rejestrem określona ilość razy to i tak wyjdzie dokładnie to co ma wyjść może to troszkę bez logiki ale działa jak powinno. A wynika to z tego że rejestr z wynikiem jest 16 bitowy składa sie z 2 rejestrów. Jak kolega by chciał przesunąć liczbę...
mnożenie bitowy liczba sumator liczba bitowy dzielenie liczba bitowy
zasilać lampa solarny powolne narastanie atheros qca9377
citroen berlingo nawiew kotły gazowe
Poduszka powietrzna fotela kierowcy – połączenie z taśmą zwijaka, diagnostyka SRS, złącza ISO 4141-3 Powierzchnia radiatora dla 10W – obliczenia, dobór, profile aluminiowe TO-220, Fischer, Aavid