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.
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.
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ą...
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...
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_...
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...
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
montaż zasilacza antenowego glowica laserowa rozdzielanie tekstów excel makro
obudowa lutownicy transformatorowej podgrzewacz przerobic
Schemat elektryczny modemu lodówki Bosch KGN36KLEC Telewizor włącza się, ale ekran gaśnie - co robić?