https://obrazki.elektroda.pl/4868547700_... Dzisiaj zrealizuję projekt na malutkim, ośmionóżkowym mikrokontrolerze PIC w obudowie DIP8 oferującym skromne 3.5kB pamięci Flash. Co więcej, do komunikacjami z peryferiami użyję tylko dwóch pinów - całość opierać się będzie o I2C. W oparciu o nie uruchomię kontroler wyświetlacza/klawiatury oraz...
zapisze to matematycznie w postaci "bajtowej" gdzie jedna wielka litera to jeden bajt a 0 to jeden bajt tylko że równy zero X,Y / Z,A = 0W (wynik) + 0R (reszta) teraz reszta mnozona razy 256 czyli 0R * 256 = R0 R0 / Z,A = 0V i ostateczny wynik to W,V teraz lepiej to zapisałem ??? hehe
to jest niemal identycznie jak przy pisemnym dzieleniu liczb dziesiętnych. Musisz sobie tylko uświadomić np to że w 1000 liczba 110 mieści sie tylko 1 raz :) weźmy może prostszy (krótszy) przykład: 45/6=7,5 45d=101101b 6d=110b czyli 101101:110 Działanie wygląda tak: http://obrazki.elektroda.net/56_11731924... w czerwonej liczbie 1011 liczba 110 mieści...
Da się robić różne cuda, ale po co? Autora nie chciałbym spotkać na drodze (pisze lewo, przesuwa w prawo ;-) ) Wedłu standardu C działanie takie o które pyta jest "implementation-defined" A że się tak zapytam czy przypadkiem nie chodzi o dzielenie przez 2^n? Jeśli tak, to czemu po prostu nie dzielisz przez 2 do odpowiedniej potęgi? Albert
Szum termiczny w pomiarach analogowych jest zazwyczaj wartością pasożytniczą, wpływającą negatywnie na pomiar. W związku z tym powinno się go unikać za wszelką cenę w naszych urządzeniach. Filtrowanie wejścia, odpowiednie projektowanie płytki drukowanej i schematu prowadzenia masy to krytyczne czynności które trzeba wykonać aby zaprojektować poprawny...
Kto szuka http://www.piclist.com/techref/microchip...
Chcę zrealizować szyfrowanie RSA 512bit, czyli zrealizować działanie: c = t^e mod n. c - zaszyfrowane dane t - dane do szyfrowania e - wykładnik potęgi liczba pierwsza n - moduł 512 bitowy W czym jest problem? Otóż mam rozwiązanie, które realizuje szybkie potęgowanie modularne i spokojnie daje sobie radę z działaniem np 57^65537mod71 i głowię się jak...
Witam, wlacze dalej z 8051 jako licznikiem kilometrów. Ktos doradzil mi abym poszukal procedur ALU ktore wykonuja obliczenia na 16 bitowej liczbie w 2 rejestrach. Znalazlem dodawanie odejmowanie konwersje etc. Nie znalazlem nigdzie mnozenia dzielenia itd. Moze zaczne od problemu, napisalem program ktory w ciagu sekundy zlicza impulsy na T0(P3.4) w ciagu...
Chodzi mi o algorytm dzielenia liczby 14bitowej zapisanej dziesiętnie na dwie liczby 8 bitowe zapisane dziesiętnie. np.liczbie 8148 odpowiadają dwie 31 i 212. liczbie 8276 odpowiada 32 i 84. nie chodzi o konkretny język programisty tylko o algorytm. resztą zajmę się sam. dzięki.
Witam. Kto ma lub napisze procedurkę dzielenia dwóch liczb dwubajtowych - wynik u mnie będzie zawsze jeden bajt więc starszy bajt wyniku można pominąć... z góry dzięki. ps. ja znalazłem tylko dzielenie 6-cio bajtowych, 4, 3 itp..... a 2 niema :-(
Witam Muszę napisać w assemblerze 8086 program który podzieli 2 liczby double. Wiem że muszę odjąć cechy i to już zrobiłem. Problem jest z dzieleniem mantys, nie mam pojęcia jak to zrobić. Jedna mantysa ma 52 bit, więc muszę użyć przynajmniej 2 rejestrów. Podobno najlepiej zastosować metodę wielokrotnego odejmowania, ale jak to wykonać w praktyce? Byłbym...
witam, musze zrobic dzielenie 2 doubli, czyli musze podzielic dwie mantysy 52bitowe. Nie moge uzyc koprocesora, wiec pozostaja rejestry 32bitowe. Probowalem trzymac jedna mantyse w 2 rejesrach (eax, ebx) w jednej byly by 32 bity w drugiej 20. Z druga tak samo. Uzylem algorytmu dzielenia przez odejmowanie, pomijajac fakt, ze jeszcze nie dziala tak jak...
Proboje wysylac dane z PC przez rs232 do mikrokontrolera i w zwiazku z tym mam pytanie - jak mozna podzielic liczbe z zakresu wiekszego od 255 tak aby byla zapisana w postaci dwu 8-bitowych czesci ktore moglbym wyslac po rs-sie do uP? Czy jest jakas funkcja ktora to robi? Dodano po 47 Zapomnialem dodac że chodzi o jezyk C :)
Tak jak w temacie, czy jest jakiś prosty sposób na rozbicie liczby dziesiętnej na 2 jedności?
Witam Jak w Qbasicu dokonać rozkładu bajtu na LSB i MSB?? pozdrawiam :wink:
Witam, wie ktoś może jak zbudować obwód żeby podzielić 4-bitową liczbę przez 2? czyli przesunąć każdą jedynkę w liczbie o jedną pozycję w lewo
Mam zmienną / wartość w postaci dziesiętnej (z przedziału 0...255). Chcę rozbić ją do 8 niezależnych zmiennych bitowych (8 bitów liczby w postaci binarnej). Jak to zrobić? Nie ma nic trudnego w napisaniu matematycznej procedury zamiany liczby dziesiętnej na binarną i poszczególne kroki zapisać do zmiennych. Ale znając bascom-a nie zdziwię się, jeśli...
Błąd powstaje gdy iloraz przekroczy dopuszczalną ilość bitów. W dzieleniu N-bitowym, iloraz musi się zmieścić w N-bitach (pamiętając, że dzielimy liczbę 2N-bitową przez N-bitową). Przykładowo dzielenie 16-bitowe (dx:ax) [syntax=asm]mov dx,0xFFFF ; dzielimy 0xFFFFFFFF mov ax,dx mov cx,1 ; przez 1 div cx;First chance exception: Address 0x0040190C Integer...
Żaden z gotowców internetowych nie spełniał moich wymagań, ponieważ mam liczbę 3 bajtową, będzie dzielona zawsze przez 1 bajt o wartości &D125 i nigdy nie zostanie reszta z dzielenia, ponieważ liczba 3 bajtowa będzie wielokrotnością liczby 125. Oczywiście mogę mnożyć 125 ileś tysięcy razy aż trafię odpowiednią wartość ale to by za długo trwało. Czy...
Witam Czy ma ktos może gotową procedurę dzielenia liczb 24 bitowych przez 8 bitowe?? Z góry dzięki.
Wszedzie szukam i nie moge znalezc, potrzebuje pojdzielic liczbe 16 bitowa przez 8 bitową w asemblerze Ostatecznie moze byc nawet 8 bit przez 8 bit, bez reszty, choc z reszta tez moze byc. Robie miernik prękości obrotej z enkodera (4096 na obrót). Licznik 16 bitowy zlicza impulsy, potem co 1sekunde wyzwala sie przerwanie ktore podzieli liczbe zliczonych...
Pewnie to proste, ale nie mogę znaleźć gotowej komendy. Posiadam liczbę 101101100 i chce zamienić ją na: zmienna 1 = 1 zmienna 2 = 0 zmienna 3 = 1 zmienna 4 = 1 zmienna 5 = 0 zmienna 6 = 1 zmienna 7 = 1 zmienna 8 = 0 zmienna 9 = 0 zmienna 10 = 0 (nieużywane zmienne niech pozostaną zerami) Zmienna A = 9 'ilość cyfr w danej liczbie binarnej Pozdrawiam.
Witam Jako, że mam do napisania program w ASM dla µC 8051 pobierający dwie liczby dwucyfrowe z klawiatury i dzielący je przez siebie oraz wyświetlający wynik zaokrąglony do dwóch liczb po przecinku na terminalu, napotkałem drobny problem z którym nie mogę dać sobie rady, a dokładniej: jeżeli np. µC będzie miał podzielić 99/98=1,0102 to w A...
Witam. Mam w zmiennej bitowej jakąś liczbę z zakresu 0-60, np. 34. Czy można tą liczbę rozbić na 2 cyfry - przypisując do pierwszej zmiennej bajtowej cyfrę 3, a do drugiej 4? Czy są jakieś instrukcje w Bascomie, czy muszę to robić za pomocą SELECT CASE: Select case liczba ... case 34 Cyfra1=3 Cyfra2=4 .... End select
Tu masz dzielenie liczb czterobajtowych przez dwu bajtowe (16 bit).Co prawda nie moje opracowanie, podaję w orginale. ;procedura dzielenia 4-BAJTOWYCH liczb przez 2-BAJTOWE ; wejscie: ;r0 - adres najstarszego bajtu dzielnej, ;r1 - adres najstarszego bajtu dzielnika, ; wyjscie: ;R0 - adres ilorazu ;R6:R5 - reszta ;W deklaracji zmiennych programu wykorzystujacego...
Nie moja funkcja - znaleziona gdzies kiedys w necie kiedy piców uzywałem. Ale działała Dodano po 1 Przypomniało mi sie gdzie ja znalazlem - na stronie piclist
Witam wszystkich! Mam taki problem, mam napisac projekt (pewnie prosty dla wiekszosci) w assemblerze badz w C, temat " Dzielenie liczb 16 bitowych ze znakiem w kodzie U2" i dlatego zwracam sie z prosba czy ktos ma moze napisany (przez przypadek) taki program, albo pomoze mi w jakikolwiek sposob go zrealizowac. Program ma dzialac na procesorze 8051,...
No to jak rozkminiacie różne programy to ja Wam dam procedurkę dzielenia przez 10 liczby 32 bitowej ponad 2 razy szybszą niż dzielenie [syntax=c]int32_t div10(int32_t number) { int64_t magic = 0x1999999A; return (int32_t) ((magic * number) >> 32); }[/syntax] Możesz sobie łatwo przerobić na dzielenie przez 100 1000 czy cokolwiek innego, lub inną długość...
No i właśnie o to mi chodziło gdy pisałem żebyś o to nie pytał ;) Bo tak czułem że nie będziesz umiał tego wyświetlić ;) Wynik niestety jest 24-bitowy więc nie może być w dwóch adresach. Ma być w trzech. To takie trochę tłumaczenie jak chłopu na miedzy, bo to niby jedna liczba i ma jeden adres, ale chodzi o to że ma 3B i już. Więc jako 16-to bitową...
>> _greis_ Była o tym wcześniej mowa. Jest to najbardziej standardowy pomiar f, ale ma tą wadę że dla niskich f trzeba stosować długie czasy pomiaru. >Przemekdz Niekoniecznie trzeba stosować real/float. Przy nowych założeniach f wzorcowa 10 khz f mierzona 1-100Hz Dla 1 Hz zliczymy 10000 impulsów, dla 50hz 2000 impulsów, dla 99.9hz 1001 impulsów....
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...
Poszukaj w sieci przykładów dzielenie 16 bitowego.
Witam. Gdzie znajdę gotowe procedury w asemblerze dla pic 16f84 np. mnożenie,dzielenie liczb 32-bitowych itp.
Musze zrobic cos takiego : (x/y)*2500 gdzie x - liczba 16 bitowa ktora bedzie sie zmieniac y - stala liczba FFFF (16 bit) i nie wiem jak to zrobic zeby obejsc dzielenie 32 bitowej liczby przez 16 bitowa. Bo jak np wykonam najpierw dzielenie x/y to bede mial liczbe przecinkowa a to chyba duzo gorzej.
Autor przeciez napisał, że chce dzielić przez liczbę 12 bitową więc pomysł z LUT nie jest taki głupi.
Nalezy po kolei dzielic przez 10. wartosc liczby. Za kazdym razem zapisujesz kolejne cyfry liczby. Wiec za pierwszym razem dostaniesz liczbe dziesiatek tysiecy, potem liczbe tysiecy, setek, dziesiatek i jednosci.
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,...
Skoro poniższy kod, działa wg Twoich oczekiwań, to napisz może jeszcze proszę, co to znaczy, że "wynik jest dobry" i w jakim zakresie zmiennych adcresult32 oraz a .[syntax=c]int32_t adcresult32; uint32_t a; adcresult32 = (int64_t)((int64_t)adcresult32*a)>>16;[/... i dzielisz liczby 64-bitowe, a wynik przypisujesz do liczby 32-bitowej.
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...
Czy ktos wie jak zrealizowac podstawowe funkcje arytmetyczne ( dodawanie ,odejmowanie, dzielenie mnożenie) na liczbach 16- bitowych w procsorze 99c51.
powiedz prowadzacemu zajecia, ze nauka ahdl to czysta strata czasu; a moze lepiej nic nie mow ... :) /.../wydaje mi się że dobrze/.../ troche bledow jest :) 1. variable A S powinno byc zadeklarowane jako 5 bitowe DFF, a obliczane tak samo jak powyzej: S[] = ( 0, S_ab[] ) + ( ... 4.wyj[]=S[] div B"0100"; ahdl nie pozwoli ci na dzielenie niczego poza...
Po pierwsze - z tymi miliardami to trochę przesadziłeś - w 32-bitowych mikrokontrolerach raczej jest kilkaset tysięcy tranzystorów, nie sądzę aby liczba ta zbliżała się do miliona. W desktopowych CPU liczba ta dopiero niedawno przekroczyła miliard i to tylko dla wielordzeniowych układów z najwyższych półek http://en.wikipedia.org/wiki/Transistor_...
Witam, moim zadaniem jest zbudowanie z bramek, przerzutników itp. schematu dzielnika, który dzieliłby liczby 4-bitowe przez 2-bitowe i wynikiem ma być liczba 2-bitowa (wynika z tego ze maksymalna dzielna może mieć wartość 1001). Na wyjściu oprócz wyniku ma pojawiać się informacja o błędzie (dzielenie przez 0) i o wystąpieniu reszty (niekoniecznie jej...
Ja Bascoma w zasadzie nie znam, ale cudów nie ma - dzielenie 32-bitowych liczb na 8-mio bitowym procesorku jest operacją kosztowną... Jak nie brakuje Ci pamięci to możesz ewentualnie stablicować dzielnik (zamiast go dzielić przez 10) - powinno być c.a. dwa razy szybciej. Jeżeli w Bascomie jest typ Word, to cztery ostanie dzielenia mógłbyś robić na zmiennej...
W tym wontku http://www.elektroda.pl/rtvforum/topic27... co podał Tdv jest też biblioteka w której możesz dzielić nawet liczby 64 bitowe
Bede wdzieczny za algorytm na ASM umozliwiajacy dzielenie liczby 16-to bitowej przez 16-to bitowa. Mysle i mysle i nic mi do glowy nie przychodzi. Szukam i tez nic (ale moze za slabo). Dzieki i pozdrawiam bede wdzieczny za wszelkie sugestie
char st1 to nie zadziala. tablice nalezy inicjowac rozmiarem znanym podczas kompilacji. masz wiec dwa wyjscia: 1. albo rozmiar na sztywno 2. albo szybki kurs uzycia funkcji malloc i obslugi dynamicznego przydzialu pamieci (obstawiam, ze jak procek nie ma pozadnej ilosci RAMu, to nawet nie ma co probowac) x = 53.7; <-------------------- tu muszę...
Witam Moja propozycja jest następująca: mając string z poszczególnymi bitami dzielisz go na kawałki 4-ro znakowe. I wtedy taki czteroznakowy string zamieniasz na odpowiadającą wartość HEX. Potem pobierasz kolejne cztery znaki i znów zamieniasz. Możesz sobie zrobić np. tablicę w której umieścisz np. 100 bitową liczbę. Kolejne dane będziesz pobierał z...
Dzielenie przez liczbę inną niż wielokrotność 2 też jest łatwe - trzeba liczyć zarówno stany wysokie jak i niskie. No dzielenie to ogólnie w ogóle nie jest problemem. Nie, jeszcze 162 i 64 ma po dwa 16-bitowe Widocznie przeoczyłem. karlos79: Co do synchronizacji to chodziło mi o to czy musi być 100%-owa zgodność częstotliwości wejściowej i wyjściowej*mnożnik....
Nie mam w tej cwili czasu na dokładniejszą analizę, ale zauważ że w celu uzyskania bardziej znaczącego bajtu zmiennej typu uint16_t należy podzielić przez 256, a nie przez 255. Zwiększ też wartość zmiennej ac_adder na 256, bo przy 24 otrzymasz przebieg poniżej 5Hz. Błąd jest na pewno w algorytmie bo np. to działa bez problemu (sprawdziłem dla pewności):...
Dzielenie zmiennej int16 na dwie mniejsze możesz zrobić tak:[syntax=c]int 16_t zmienna, zmienna1; int8_t mala_zmienna, mala_zmienna1; mala_zmienna = zmienna >> 8; //przesuniecie bitowe skopiuje 8 bitów starszych mala_zmienna1 = zmienna; // skopiuje tylko 8 bitów najmłodszych zmienna1 = (mala_zmienna << 8) + mala_zmienna1; [/syntax]
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)...
nie pytajcie się mnie o jakieś szczegóły 0. Załatwione :) Ja nie będę pytał. 1. Nie liczenie wcale nie nastąpi. 2. Nie, O będzie miało stale wartość 0. 3. Daje to tyle, że wynik będzie z sufitu. A teraz kilka słów wyjaśnienia: Ad.1. W funkcji main, masz pętlę opartą o while(1). Ta pętla zostanie przerwana tylko brakiem zasilania. Program nigdy nie...
Jeżeli te operacje mają na celu np. monofonizację sygnału to robi to się wg następujacego wzoru: M=\frac{X+Y}{2} (****) Dodajemy w zmiennej 16 bitowej ze znakiem a wynik po podzieleniu przez 2 zapisujemy w 8 bitowej ze znakiem. Nie podzielenie wyniku przez dwa powoduje wyprowadzenie wyniku poza zakres 8 bitowy. Obcinanie typu if x>127 then x=127 nie...
Bardzo dziękuję za dzielenie się wiedzą i przydatne oprogramowanie - może wreszcie wyciągnę z szafy raspberry PI i przyda mi się właśnie do MPPT 10A :) Czy ja dobrze rozumiem, że liczby ujemne prądu kodowane są w U2 (inwersja bitowa + 1) ? Cieszę się, że może się to komuś przyda :-) Co do kodowania liczb - wartości są zakodowanie jako 16 bitowe integer...
No to może tak: krok pierwszy - dzielimy liczbę 40-bitową przez 10000, używając wyłącznie dzielenia 32-bitowego: uint32_t x43 = ((uint32_t)b[4] << 8) + b[3]; // 16 bardziej znaczących bitów uint32_t x210 = ((uint32_t)b[2] << 16) + (b[1] << 8) + b[0]; // 24 mniej znaczące bity uint32_t xh = x43 * 1677 + (x43 * 7216 + x210) / 10000;...
1. Dzielisz liczbę BCD na grupy 4-bitowe zaczynając od LSB. 2. Każdą grupę zamieniasz na cyfrę DEC. 3. Tworzysz z tego liczbę DEC. 4. Zamieniasz liczbę DEC na BIN. Pozdrawiam wszystkich jjanek
W moim przypadku (ten EKG), ponieważ ten TMS miał tylko arytmetykę stałoprzecinkową, stosowana była taka arytmetyka mieszana - FFT było liczone stałoprzecinkowo (dokładnie to zaprzecinkowo - liczby traktowane jako (-1, 1)), natomiast w przypadku wystąpienia przepełnienia (tylko podczas dodawania) wywoływana była prosta funkcja dzielącą każdą liczbę...
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)....
Przy przesunięciu bitowym w lewo zgodzę się z Tobą. Jednak w wyniku przesunięcia bitowego w prawo (dzielenie) otrzymam liczbę całkowitą co zmniejsza dokładność czujnika.
Co do liczenia czasu, to musisz przeanalizować jak timer zlicza impulsy i jaka jest częstotliwość taktowania. Wtedy wiesz od jakiej liczby do jakiej liczby ma zliczyć impulsy żeby mieć określony odcinek czasu. Co do ilości linii adresowych system binarny się kłania, jedna linia to 2 adresy, 2 linie 4 adresy, 3 linie 8 adresów, itp. Witam. Ja uważam...
Stary i lubiany operand w C (!!) (i nie tylko :D ). Logiczne przesunięcie w prawo o 10 bitów, co daje że liczbę tlong dzielisz przez 2^(10) = 1024. Bity najmłodsze są wysuwane (tracone!), a na najstarszych pozycjach wsuwa się 0. Zakładam, że przetwornik jest 10-bitowy, co daje zakres od 0 do 1023. Prosta arytmetyka da nam zakres do <0; 1), wcześniej...
Dzielenie - wielokrotne odejmowanie aż do skutku... ;)
Oto, co podaje ChatGPT: [syntax=armasm] ORG 1000H ; Punkt początkowy programu START: ; Wczytanie pierwszej liczby (dividend) z zakresu 0-65535 MVI D, 0 ; Wyczyść rejestr D MVI E, 0 ; Wyczyść rejestr E ; Zakładamy, że liczba jest podana bezpośrednio ; (możesz dodać instrukcje do wczytywania wartości, jeśli potrzebne) ; Przykład wartości (do testowania)...
Char to tylko typ zmiennej, a hex forma zapisu. Jeżeli funkcja przyjmuje wartości char(8bit) to nie jest ważne czy ty to podasz binarnie, dziesiętnie czy w hexach- ważne jest żeby liczba ta mieściła się w zakresie char. Jeżeli SPI działa w trybie 8bitowy, i funkcja wysyłająca znaki przyjmuje wartości char, a ty chcesz wysłać większą zmienną, to musisz...
dzielenie liczba sumator liczba bitowy mnożenie bitowy liczba
vectra sygnał piekarnik grzałka amica gniazdo antenowe telewizora
prostownica philips zasilacz warsztatowy
Przegrzewanie się dławicy na jachcie - przyczyny Oleo Mac 937 – niestabilne obroty, gaśnięcie na boku, metaliczny dźwięk po remoncie silnika