Jak zaimplementować 32-bitowe dzielenie całkowite na PIC 18F bez instrukcji dzielenia?

32 bitowe dzielenie calkowite





Poprzedni Następny
Wiadomość
Spis treści
From: Dawid Pawlata <dawidpawlata_at_nospam_wp.pl>
Subject: 32 bitowe dzielenie calkowite
Date: Wed, 13 Apr 2005 22:57:28 +0200


Witam,
od paru dni zastanawiam sie jak to szybko wykonac na procku nie
posiadajacym instrukcji dzielenia, konkretnie PIC 18F, ktory chyba jeden
z niewielu z tej rodziny ma przynajmniej mnozenie dwoch 8 bitowych liczb.
Kombinowalem ze zwyklym dzieleniem na kartce, tyle, ze na bitach i
wlasciwie zrobilbym to, jednak chcialbym sie wczesniej upewnic, czy nie
istnieje jakis szybszy sposob.
Chodzi mi glownie o idee, chociaz jesli ktos dysponuje jakims kodem, to
byloby jeszcze lepiej. W ksiazkach o mikrokontrolerach ktore posiadam o
autorzy nawet nie wspominaja nic na ten temat.

pozdrawiam
DP

Poprzedni Następny
Wiadomość
Spis treści
From: "Krzysztof" <jr_utausunto_at_nospam_wp.pl>
Subject: Re: 32 bitowe dzielenie calkowite
Date: Thu, 14 Apr 2005 00:05:59 +0200


"Dawid Pawlata" <dawidpawlata_at_nospam_wp.pl> napisał(a):

Witam,
od paru dni zastanawiam sie jak to szybko wykonac na procku nie
posiadajacym instrukcji dzielenia, konkretnie PIC 18F, ktory chyba jeden z
niewielu z tej rodziny ma przynajmniej mnozenie dwoch 8 bitowych liczb.
Kombinowalem ze zwyklym dzieleniem na kartce, tyle, ze na bitach i
wlasciwie zrobilbym to, jednak chcialbym sie wczesniej upewnic, czy nie
istnieje jakis szybszy sposob.
Chodzi mi glownie o idee, chociaz jesli ktos dysponuje jakims kodem, to
byloby jeszcze lepiej. W ksiazkach o mikrokontrolerach ktore posiadam o
autorzy nawet nie wspominaja nic na ten temat.


http://massmind.org/techref/microchip/math/div/index.htm


--
pozdrawiam

K.


Poprzedni Następny
Wiadomość
Spis treści
From: Dawid Pawlata <dawidpawlata_at_nospam_wp.pl>
Subject: Re: 32 bitowe dzielenie calkowite
Date: Thu, 14 Apr 2005 07:11:43 +0200


Krzysztof wrote:
"Dawid Pawlata" <dawidpawlata_at_nospam_wp.pl> napisał(a):

Witam,
od paru dni zastanawiam sie jak to szybko wykonac na procku nie
posiadajacym instrukcji dzielenia, konkretnie PIC 18F, ktory chyba
jeden z niewielu z tej rodziny ma przynajmniej mnozenie dwoch 8
bitowych liczb.
Kombinowalem ze zwyklym dzieleniem na kartce, tyle, ze na bitach i
wlasciwie zrobilbym to, jednak chcialbym sie wczesniej upewnic, czy
nie istnieje jakis szybszy sposob.
Chodzi mi glownie o idee, chociaz jesli ktos dysponuje jakims kodem,
to byloby jeszcze lepiej. W ksiazkach o mikrokontrolerach ktore
posiadam o autorzy nawet nie wspominaja nic na ten temat.


http://massmind.org/techref/microchip/math/div/index.htm


Z tego co widze te metody bazuja wlasnie na tym do czego doszedlem,
myslalem, ze istnieje jakis szybszy sposob wykorzystujacy dodatkowe
instrukcje PIC 18, poza tym nie ma tam 32/32.

W kazdym razie dzieki.

--
pozdrawiam
DP

Poprzedni Następny
Wiadomość
Spis treści
From: "szlovak" <BEZXadamkx_at_nospam_o2.pl>
Subject: Re: 32 bitowe dzielenie calkowite
Date: Thu, 14 Apr 2005 16:20:12 +0000 (UTC)




Z tego co widze te metody bazuja wlasnie na tym do czego doszedlem,
myslalem, ze istnieje jakis szybszy sposob wykorzystujacy dodatkowe
instrukcje PIC 18, poza tym nie ma tam 32/32.

W kazdym razie dzieki.


Na microchip.com jest. Może da się zastąpić to dzielenie mnożeniem
przez odwrotnosć? czasem daje się coś uprościć i mnozyć zamiast dzielić
--
Pozdrawiam
Adam

Poprzedni Następny
Wiadomość
Spis treści
From: Dawid Pawlata <dawidpawlata_at_nospam_wp.pl>
Subject: Re: 32 bitowe dzielenie calkowite
Date: Fri, 15 Apr 2005 08:20:46 +0200


szlovak wrote:
Z tego co widze te metody bazuja wlasnie na tym do czego doszedlem,
myslalem, ze istnieje jakis szybszy sposob wykorzystujacy dodatkowe
instrukcje PIC 18, poza tym nie ma tam 32/32.

W kazdym razie dzieki.



Na microchip.com jest. Może da się zastąpić to dzielenie mnożeniem
przez odwrotnosć? czasem daje się coś uprościć i mnozyć zamiast dzielić

Niestety raczej nie, poniewaz nie znam argumentow, moga byc dowolne.
Poza tym ta sa liczby calkowite.

--
pozdrawiam
DP

Poprzedni Następny
Wiadomość
Spis treści
From: "Jacek R. Radzikowski" <jacek_at_nospam_spamer.die.die.die.piranet.org>
Subject: Re: 32 bitowe dzielenie calkowite
Date: Fri, 15 Apr 2005 06:53:29 +0000 (UTC)


Dawid Pawlata <dawidpawlata_at_nospam_wp.pl> wrote:
szlovak wrote:
Z tego co widze te metody bazuja wlasnie na tym do czego doszedlem,
myslalem, ze istnieje jakis szybszy sposob wykorzystujacy dodatkowe
instrukcje PIC 18, poza tym nie ma tam 32/32.
W kazdym razie dzieki.
Na microchip.com jest. Może da się zastąpić to dzielenie mnożeniem
przez odwrotnosć? czasem daje się coś uprościć i mnozyć zamiast dzielić
Niestety raczej nie, poniewaz nie znam argumentow, moga byc dowolne.
Poza tym ta sa liczby calkowite.

Do liczenia odwrotnosci modulo liczba calkowita masz rozszerzony algorytm
euklidesa. Powinno sie go dac latwo zaimplementowac, choc wydajnosciowo
moze to nie byc najlepszy pomysl

pzdr.
j.



Poprzedni Następny
Wiadomość
Spis treści
From: "szlovak" <BEZXadamkx_at_nospam_o2.pl>
Subject: Re: 32 bitowe dzielenie calkowite
Date: Fri, 15 Apr 2005 08:24:55 +0000 (UTC)



Niestety raczej nie, poniewaz nie znam argumentow, moga byc dowolne.
Poza tym ta sa liczby calkowite.

No to musi procek liczyć. Na marginesie, całkowitość liczb niczego nie
zmienia prawie, FLOAT32 nie różni się prawie niczym od dzielenia 24/24
i 32/32 z tym tylko że dochodzi wykładnik i malutkie manewry z mantysą
i wyjątkami.

--
Pozdrawiam
Adam

Poprzedni Następny
Wiadomość
Spis treści
From: "T.M.F." <tfrancuz_at_nospam_nospam.mp.pl>
Subject: Re: 32 bitowe dzielenie calkowite
Date: Thu, 14 Apr 2005 21:37:49 +0200


Z tego co widze te metody bazuja wlasnie na tym do czego doszedlem,
myslalem, ze istnieje jakis szybszy sposob wykorzystujacy dodatkowe
instrukcje PIC 18, poza tym nie ma tam 32/32.

Len z ciebie. A szybciej niz przesuwac bity i odejmowac to sie nie da.
Tu masz link:
http://www.piclist.com/techref/microchip/math/32bmath-ph.htm?key=32%2Dbit+division&from=%2Ftechref%2Fmicrochip%2Fmath%2Fdiv%2Fdiv16or32by16to16%2Ehtm


--
Inteligentny dom - http://idom.wizzard.one.pl
Teraz takze forum dyskusyjne
Zobacz, wyslij uwagi, dolacz sie do projektu.

Poprzedni Następny
Wiadomość
Spis treści
From: Dawid Pawlata <dawidpawlata_at_nospam_wp.pl>
Subject: Re: 32 bitowe dzielenie calkowite
Date: Fri, 15 Apr 2005 08:23:55 +0200


T.M.F. wrote:
Z tego co widze te metody bazuja wlasnie na tym do czego doszedlem,
myslalem, ze istnieje jakis szybszy sposob wykorzystujacy dodatkowe
instrukcje PIC 18, poza tym nie ma tam 32/32.


Len z ciebie. A szybciej niz przesuwac bity i odejmowac to sie nie da.
Tu masz link:
http://www.piclist.com/techref/microchip/math/32bmath-ph.htm?key=32%2Dbit+division&from=%2Ftechref%2Fmicrochip%2Fmath%2Fdiv%2Fdiv16or32by16to16%2Ehtm



Dzieki, tej stronki nie widzialem. Chociaz metoda jest wlasciwie taka
sama. W koncu dzielenie na kartce sprowadza sie wlasnie do przesuwania i
odejmowania. W kazdym razie jest gotowy kod!

Dzieki

--
pozdrawiam
Dawid Pawlata