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.
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...
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?
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.
Witam. Szukam zastępstwa dla [syntax=c] char buffer[10]; itoa( liczba , buffer, 10); [/syntax] bez bibliotek. Myślałem o wydzielaniu reszty z dzielenia, ale może istnieje jakiś lepszy sposób. Chcę zamieniać liczbę rzeczywistą ( 16bit ) na tekst i nic więcej. Najbardziej zależy mi na tym by binarnie ta procedura zajmowała jak najmniej miejsca.
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
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...
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...
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...
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ą...
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ą...
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...
widze, ze kolega Tdv umie tylko przytaczac czyjes algorytmy nie potrafiac ich nawet poprawnie zinterpretowac. Owszem - nawet glupi'51 dla pewnych osob moze byc trudny. Jezeli kolega nie rozumie to bez wiekszych wywodow prosze sobie sprawdzic czym się roznia komorki rejestrowe (R0, R1...) od zwyklych komorek pamieci - mimo tego, ze sa przeciez umieszczone...
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.
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...
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_...
a ma ktoś może dzielenie liczby 16bitowej przez 8 bitów. Szukam czegoś bardzo szybkiego, tyle że sam jestem na tyle tępy żeby coś takiego spłodzić
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;)...
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...
Witam. Co wy na to ? Bardzo fajne, raz wklepać a potem używać, ale mam pytanko, co robi kompilator kiedy z tego dzielenia wychodzą części ułamkowe? Część ułamkowa jest obcinana, bo i tak nie da się jej wpisać w 8-bitowy rejestr licznika. Chcąc osiągnąć jeszcze większą dokładność, można próbować na mniejszej skali preskalera (np. 256) i/lub większej...
Witam! Mam pytanie odnośnie poniższego programu. Program realizuje dzielenie 16bitowe. Liczby są wprowadzane przez porty P1,P0(dzielna) i P3,P2(dzielnik).Wyniki natomiast zapisywane do komórek pamięci 30h,31h. Program działa poprawnie,lecz gdy wpisuje dzielnik 0 to program się przywiesza i juz dalej nie liczy. Czy ma ktoś może pomysł jak to zabezpieczyć...
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...
Tak, zgadza sie. Troche sie ostatnio spieszylem i zapomnialem ta linijke dopisac. Zorientowalem sie i mialem to zrobic w pozniejszym czasie. Widze ze czujnie sledzisz. Dzieki. Teraz to samo zrobie dla liczby 16 bitowej. Mam algorytm na dzielenie wielobajtowe, ale musze poszukac czegos takiego: 16bitow podzielone przez 4 bity. Ewentualnie zmodyfikuje...
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>...
http://obrazki.elektroda.pl/1852929500_1... http://obrazki.elektroda.pl/5115381900_1... Mimo upływu lat w dalszym ciągu lubię od czasu do czasu odświeżyć sobie w pamięci elektroniczne brzmienia lat 80tych, kiedy to po raz pierwszy miałem okazję usłyszeć „syntetyczną” muzykę pochodzącą z wielkich drewnianych...
[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...
dzielenie liczby dzielenie liczba 16bit bascom dzielenie liczby
cewka briggs iskra komora rezonansowa bramka router
behringer europower proste uklady elektroniki
Pilot RM-D29M do Sony MDS-JE530 - Wybór i Alternatywy Jak otworzyć i używać pliki .LUT w edycji wideo i zdjęć?