Fórum témák

» Több friss téma
Fórum » 24 bites osztás
 
Témaindító: hyperprof, idő: Nov 4, 2006
Lapozás: OK   1 / 1
(#) hyperprof hozzászólása Nov 4, 2006 /
 
Hy all!

Szerintetek hogyan lehet megvalósítani egy 24 bites osztást? Volna ötletem, de kiváncsi volnék: TI hogyan olanátok meg?

Thx
(#) Tomee válasza hyperprof hozzászólására (») Nov 4, 2006 /
 
Én most csináltam egy 16bites osztást 8 bites eredménnyel, 8 bites maradékkal, 8 bites osztóval és 16 bites osztandóval.
Pontosan nem tudom, hogy hogyan kell binárisan osztani, de én az osztót addig vontam ki az osztandóból mig nullát vagy már tovább nem lehet kivonni eredményt kaptam.
(#) hyperprof válasza Tomee hozzászólására (») Nov 5, 2006 /
 
Tomee!

Az osztást hardveresen, vagy szoftveresen csináltad?
(#) Tomee válasza hyperprof hozzászólására (») Nov 5, 2006 /
 
Szoftveresen mivel ez egy 16F876 volt.
(#) andrewforest válasza hyperprof hozzászólására (») Nov 5, 2006 /
 
Hello
A 24bites osztást nem tudom most megmondani neked, de itt találsz 16bites osztást, ami alapján meglehetne valósítani a 24biteset... szorzás, osztás
van hozzá progi is AVR-re...
Remélem segitettem...
(#) hyperprof válasza andrewforest hozzászólására (») Nov 5, 2006 /
 
Igen, nagy segítség... Thx

Tulképp elképesztő, h mennyi mindent megoldottak már, csak össze kell szedni....

an526e.pdf
    
(#) hyperprof hozzászólása Nov 7, 2006 /
 
Vajon hogyan lehetne hardveresen megoldani az osztást?
(#) andrewforest válasza hyperprof hozzászólására (») Nov 7, 2006 /
 
Egyes AVR-ekben van szorzás művelet, akkor szerintem van PICben is. Úgy tudom, bár lehet h hülyeséget mondok, hogy valamilyen trükk segitségével szorzást felhasználva lehet osztást is végezni... valaki hallott már ilyesmiről??
(#) hyperprof válasza andrewforest hozzászólására (») Nov 7, 2006 /
 
Elméletileg a reciprokkal való szorzás osztást jelent, de a reciprok képzéshez osztás kell...
Igen PIC-ben is van szorzás....van amelyik hardveres szorzásra képes....

Harveres osztást miért nem találok?
(#) hyperprof hozzászólása Nov 7, 2006 /
 
Sztem nincs is...

Pedig megvan az algoritmus rá....
(#) Gagyi hozzászólása Nov 8, 2006 /
 
Hi. Hogy miért nem találtok beépített osztás parancsot a Pic-ben, arra egyértelmű a válasz: mert gyárilag nincs benne. A 8 bites szorzás is csak a 18-as pictől felfelé van hardveresen, de osztás itt sincs, ezt szoftverből kell megoldani. A complex utasításkészletű kontrollerekben 8051-ekben van mindkettő ha jól emlékszem.
(#) hyperprof hozzászólása Nov 8, 2006 /
 
Nem a PIC-ben kerestem az osztás parancsot, azt vágom, hogy nincs.
Osztást végző IC-t keresek, és 8-bitesnél nagyobb szinkron számlálót egy tokban...

De ezeket nem fogom megtalálni, mert nincs..
(#) pokot hozzászólása Nov 9, 2006 /
 
DSP_k tudnak hardveresen osztani, de azokis csak több órajel alatt.mi úgy oldottuk meg a 32 bites osztást(az ugyanis nincs DSP-ben sem)hogyaddog shifteled lefelé,amig még nagyobb az osztandó az osztónál, utána pedig kivonás...amennyivel shift,annyiszor exp2.úgy tudom hardveresen is vhogy így van megvalósítva
(#) potyo hozzászólása Nov 9, 2006 /
 
Alapprobléma a hardveres osztásnál, hogy csak több órajelciklus alatt szolgáltat eredményt, míg a szorzás eredménye egy megfelelő logikai hálózaton a tényezők beállítása után azonnal megjelenik. Az osztás hardveres megvalósítása sem sokkal gyorsabb, mint a szoftveres, bár kétségtelen, hogy az idő alatt a program tudna mást csinálni.
(#) pokot válasza potyo hozzászólására (») Nov 10, 2006 /
 
hardveres osztást ugyanúgy lehet csinálni 1 órajel alatt un. LUT-módszerrel, bár egy 8biteshez 64kbyte-os LUT kellene, 16biteshez pedig 4G és lássuk be,ennyi memót nemigazán szoktak egy PIC-be integrálni

hyperprof: neked mi az elképzelésed az osztás megvalósításáról?
(#) hyperprof válasza pokot hozzászólására (») Nov 10, 2006 /
 
Igen, erre is gondoltam, de ez tényleg nagyon sok helyet foglal el....


Én most a napokban azt gondoltam ki:
mivel nekem az osztandó nem nagyobb az osztó 9x-esénél, és nekem BCD-ben kell az eredmény, így már könnyű dolgom van...

hexában dolgozok

Fogom az osztót és előállítom a szorzatait 9-ig.

Összehasonlítom az osztót és az osztandót, ha egyenlő az eredmény: 1
ha nagyobb: sorra megnézem, h melyik szorzat van meg benne, azt kivonom belőle, a maradékot pedig megszorzom 0xA-val, ezt hasonlítom megint az osztóval...
Így akár egy végtelen számot is kiszámolhatok....

példa:
osztandó: 0x1AE (430)
osztó: 0x4F (79) (430:79=5,443079975..)

szorzótábla:
1 : 4F
2 : 9E
3 : ED
4 : 13C
5 : 18B
6 : 1DA
7 : 229
8 : 278
9 : 2C7

Számolás:
1AE:4F=5
Maradék: 23 (1AE-18B=23)
23*A=15E
15E:4F=4
22*A
154:4F=4
18*A
F0:4F=3
3*A
1E:4F=0
1E*A
12C:4F=3
3F*A
276:4F=7
4D

és így tovább...
Az eredmény eddig: 5,443037....
(#) watt hozzászólása Nov 23, 2006 /
 
Esetleg nézzétek meg ezt:
Bináris osztás
Próbáltam szemléletesen leírni, mi történik bit szinten A dolgot ki lehet bővítni bárhány bitre.
Következő: »»   1 / 1
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem