Witam. Czy ktoś z kolegów natknął się na procedury dzielenia dla AVR. Konkretnie chodzi mi o dzielenie liczby 24bit przez 16bit lub 32bit przez 16bit wynik liczba całkowita może być bez reszty no i warunek procedura nie może przekraczać 450cykli. Serdeczne dzięki za pomoc. Pozdrawiam Marek D.
Zacznę od tego, że programuję mikrokontroler ATmega8. Operuję na liczbach 16bitowych w postaci 8bitMSB - część całkowita, 8bitLSB -część ułamkowa w zapisie stałoprzecinkowym. Teraz chciałbym podzielić dwie takie liczby 16bitowe. Stosując procedurki dzielenia ze strony Atmelka otrzymuję wynik w postaci część całkowita i reszta. Zastanawiam się jak tą...
Przygotować Ci gotową procedurę zamieniającą liczbę 16bit na ciąg tekstowy, gotowy do pobrania przez Twój program czy chcesz "pobawić się" z tym sam ? Napisałem wyżej, że posiadam procedurę dzielącą liczbę 16bit przez liczbę 8bit.
Daj sobie spokuj z dzieleniem liczb 16bitowych w 8 bitowym procesorze, bo jeśli nie chce Ci się zrozumieć tego banalnego algorytmu zamiany na BCD to na pewno nie będzie Ci się chciało przekopać przez algorytm dzielenia liczb dwa razy dłuższych niż procesor ;) Algorytm jest bardzo prosty, przesuwasz w lewo a to co odpada wrzucasz do jednostek, robisz...
Witam forumowiczow, problem jak w temacie: czy liczba jedynek w liczbie 16-bit jest podzielna przez 4. Nie mam kompletnie pojecia jak sie za to zabrac, a potrzebuje na wczoraj. Czy ktokolwiek chcialby pomoc lub chociaz dac wskazowke?
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 mam prblem poniewaz chcial bym zmienna Word wypuscic na 8 nuzek AVR. I mam pytanie jak moge to zrobic aby najpierw na naprzyklad porciea bylo pierwsze 8 bitów zmiennej Worda o pozniej na tym samym porcie bylo koleje 8 bitów tej samej zmiennej Word. Oczywiscie kolejnoc wysylania na ten porta nie ma zanaczenia. Program pisze w bascomiee
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 :)
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...
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...
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 was serdecznie Mam taki oto problem jak już wyplułem po korekcji dziesiętnej liczbę: np. 2133 to teraz jak to w asm napisać żeby wykonać taką operacje (liczba znajduje sie oczywiście w 2 rejestrach:) np R6 (21) R7 (33) 10000 : 2133 czyli 10 tysięcy podzielić przez tą liczbę?? Jak to zrobić, bo wszystkie memoniki poznałem i nie znam prostego przejścia
Witam Po przemnozeniu liczb 12345*2500 dostaje taki wynik 30862500 = 01D6ECA4, ale mnie nie intersuje cala ta liczba tylko jej czesc np 3086 jak ja skrocic (obiac bity) chodzi mi o asseblera na AVR. Za pomoc serdecznie dziekuje
Witam Mam mały problem, potrzebuje dzielić liczbę 16 bitową, a rejestry są 8 bitowe. Jak się do tego zabrać?
Witam! Moja pytanie dotyczy prawdopodobnie nie tylko tej rodziny mikrokontrolerów, a pytanie jest następujące: W jaki sposób podzielić port wyjściowy, np. B, który jest 16-bitowy, na 2 oddzielne (wirtualne, używane przeze mnie) porty 8-bitowe. Innymi słowy, normalnie, jak wyślę liczbę 255 na port B, to będzie to tak: PORTB=255; //wynikiem będzie 00000000...
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...
Mam obraz pewnego roma a szerokości magistrali danych 16bit. Chce wykonać układ na 2 układach 8bit (wiadomo, cena 16bit... no i 8bitowe romy mam). W jaki sposób rozdzielić obraz 16bitowy na 2 pliki po 8bit? Czy będzie to co drugi bajt?
Mam pytanie, czy jest program do konwersji pliku na 16 bit ? chcę nagrać plik 1MB na 2ie kostki 29F040 czyli 0,5MB 8 bitowe połączone ze sobą tak, że tworzą jedną 1MB 16 bit. W załączniku jest schemat takiego podłączenia.
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...
asembler, m 8051, środowisko Ride. Mam zapisaną liczbę 16-bitową w dwóch rejestrach np. liczba 24456 to 5F88 w hex, i na r1 znajduje się 5F a na r2 88. Jak zrobić, żeby zapisać tą liczbę 5F88 w pamięci, czyli w pojedynczych komórkach były cyfry: 2 4 4 5 6. Nie chodzi o sam zapis (bo to wiem jak), ale o samo podzielenie tej liczby na cyfry 10tysięczne,...
Witam! Po udanym skompliowaniu programu MASMem, wywolujac program wyskakuje mi w lini komend : Przekroczenie dzielenia. Czy ktos wie dlaczego tak sie dzieje ? Co to oznacza ? I jak mozna temu zaradzic? Dodam, ze mam w programie kilka petel przesuwajacych bity w lewo i w prawo oraz kilka dzielen. Z gory bardzo dziekuje ! Pozdrawiam.
Jest sposób aby wykonać ta procedurkę w asemblerze , ale nie wiem ile ona potrwa- a tobie zależy na szybkim wykonaniu obliczenia. Poniżej opisałem jak według mnie mogłoby to działać: Np. A=256 ; B=64 Deklarujemy tablice w której będą procentowe podzialy liczby (25%,50%,75%,100% itd) 1) porównanie liczb A=B, A>b, A<B 2) A>B (inkrementujemy odpowiednio...
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.
wlasnie z ty dzieleniem mam największy problem, 8051 jest 8-bitowym. Napisałem sobie kiedyś podprogram do dzielenia 16bit./8bit. liczbę, ale nie wykorzystam go do dzielenia przez 1000 i 10000. Musiałbym mieć dzielenie 16bit. przez 16bit. na mikro 8-bit. Czuje, że nie poradził bym sobie z takim dzieleniem. Nie ma jakiejś innej możliwości?
pubus , ten kod jest tragiczny. Jest jeszcze dla Ciebie nadzieja, że nie rzutowałeś tych liczb na double przed podzieleniem (widziałem bibliotekę graficzną, gdzie w konstruktorze w pewnej klasie był czyszczony obrazek operując na liczbach double, co można było zrobić na liczbach stałoprzecinkowych, po poprawieniu kodu, konstruktor był wykonywany w...
W atmega8 nie zmieści Ci się dzielenie? Wolne żarty. Przecież funkcja dzielenia 8bit/8bit to kilkanaście instrukcji... 16bit/16bit to ciut ponad 20 instrukcji. Oczywiście istnieje algorytm bin->bcd bez użycia dzielenia, nazywa się "shift-and-add" i jest opisany np. [url=http://www.engr.udayton.edu/faculty...
55/44 A=1 B=11 ,a nie B=25 11*100/44=25 zastosuj dzielenie 16bit/8bit ponieważ reszta*100 to max 11bitów DIV-em nie da się dokładnie jak jest 01 jako 0,01 to wynik jest 1 jak jest 1 jako 0,1 to wynik jest 10 co tu sprawdzać ?
O zasilaniu czy sprawności kodu nie pisałem z prostych przyczyn: Piszącego w Bascom interesuje tylko to by program działał a nie ciągnął mało prądu (zasilanie bateryjne i Bascom? Nigdy nie słyszałem by ktoś to łączył) Piszącego w Bascom interesuje by progam działał niezależnie czy musi użyć procka z 16kb czy 32kb Ja wolę by program mieścił się w 1kb...
długa zmienna ? Rozumiem że miałeś na myśli liczbę bitów/bajtów Ale na samym początku Ci tłumaczyłem jak to nalezy robić: 1 mierzysz prędkośc i np. mnożysz przez 2 i zapisujesz do akumulatora 16bit 2 powtarzasz punkt powyzej a następnie dzielisz przez dwa 3 i tak do us... śmierci i w ten sposób masz zawsze w tym akumulatorze aktualną prędkość średnią...
Witam serdecznie, Chciałbym się podzielić z Państwem programowym rozwiązaniem szybkiego dzielenia przez (małą) stałą liczby 8 bit. Długo szukałem jakiegokolwiek wytłumaczenia dlaczego AVRy nie zostały wyposażone w moduł sprzętowego dzielnia, i niestety wprost tej informacji nie znalazłem. Uniwersalne procedury, zgodnie z opracowaniem Atmela o nazwie...
bez urazy, kolego olekewaagata, zanim zaczniesz kogoś pouczać przeczytaj tekst ze zrozumieniem! ;)) Autor wątku miał problem z propagowaniem przeniesienia - moja odpowiedź dotyczy DOKŁADNIE zalecenia, jaką instrukcją uwzględnia się przeniesienie. A podany przeze mnie przykład dotyczy sumowania, z jakim ma problem autor - czyli dokładnie liczby _16bit_...
To przyklad funkcji do konwersji liczby na stringa z zastosowaniem operatora modulo. Dlaczego tak długo i nieelastycznie? void IntToString(unsigned int value,char *buff) { unsigned char a=0; unsigned int podstawa; // wartosc poczatkowa tzreba dobrac do // przypadku i dlugosci unsigned int ; for(podstawa =1000000U;podstawa>0;)...
Table_temp jest wskaźnikiem typu char do tablicy typu char. Ten kod ma zadanie zmienić ciąg znaków z tej tablicy na liczbę, czyli tablicę o zawartości { 1,2,3,4,5,6,7,8,9 } na unsigned long counter_temp o wartości 123456789. Czyli rozumiem, że dopóki dwa mnożone typy będą mniejsze niż wartość 16bitowa (nawet unsigned) to będzie wykonywana operacja jak...
Zamiana sygnału na różnicowy pozwala podać bez zniekształceń większą amplitudę sygnału, a przez to uzyskać lepszy stosunek sygnału do szumu wnoszonego przez układ próbkujący na wejściu ADC. Czyli mimo, że sygnał jest typu Single-Ended, to warto w torze dopasowującym zmieniać go na różnicowy? AFE ma przed przetwornikiem PGA, który mogę ustawić na x2...
jak zadajesz takie pytanie, to zawsze podaj: -jaki procesor -ile ew. masz miejsca w pamieci (na tablice itd.) -raczej podawaj dokladnie problemy, bo to jest dosyc ogolne... -jaka ma byc dokladnosc tego jest cos takiego jak fixedpoint math - to taka matematyka na liczbach ulamkowych z uzyciem liczb calkowitych. Polega to na tym, ze zamiast...
OMG... odpadlem [; czlowieku! liczba twoja zajmuje dwa bajty. wiec najpierw zapisz ... pierwszy, a potem... drugi. po co te kombinacje? moze zapisuj to jako ilosc wielokrotnosci jakiejs fajnej liczby pierwszej (np 23) oraz reszta - bedzie jeszcze bardziej bezsensownie. mozesz zapisywac w eepromie 16bitowo? no to w ogole po co te kombinacje? moze pokombinuj...
Korzystam z kodu zawartego na stronie: http://avr-asm.tripod.com/div2424.html Niestety nie działa on poprawnie i nie potrafię ustalić dlaczego: 1.Dzielę liczbę 4999401(4C48E9 hex) przez 100(64 hex) powinienem otrzymać 49994(C34A) 2.Testy na symulatorze AVRStudio potwierdzają poprawne działanie funkcji w odpowiednich rejestrach(R18,R19,R20) po wykonaniu...
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...
[syntax=basic4gl] $regfile = "M32def.dat" $crystal = 16000000 '************************* WYSWIETLANIE-porty ********************************** Lcd_port_ddr0 Alias Ddrb Lcd_port1 Alias Portb Lcd_port_ddr1 Alias Ddrb Lcd_rs Alias Portb.lcd_rs_number Lcd_reset Alias Portb.lcd_reset_number Lcd_cs Alias Portb.lcd_cs_number Lcd_sck Alias Portb.lcd_sck_number...
Witam Już wiem co miałem nie tak. Opóźnienia to jest to na co trzeba uważać w dallasie (jak tego nie zrobisz porządnie, to nici z Twojej pracy). Ja wykorzystywałem na początku delay’a który najmniej mógł zliczyć (teoretycznie) 5,7814us (bo #include <avr/io.h> #include <stdlib.h> ///////////////////////// LCD define /////////////////////////////////////...
dzielenie liczba dzielenie liczby 16bit dzielenie liczba bitowy
rejestr przesuwny 74hc595 transmisja bezprzewodowy radio symphony
zmywarka whirpool mruga start cyfral cosmo
Telewizor LG nie wyłącza się na zimno - przyczyny i rozwiązania Problemy z odpalaniem Peugeot 1.1 benzyna na zimnym silniku