Pytanie z assemblera AVR

Mar 21, 2005 22 Replies

Jak podnieść jakąś zmienną do dowolnej potęgi?


No to jeszcze zdefiniuj czy dowolna oznacza:

  1. dowolną liczbę naturalną?
  2. dowolną liczbę całkowitą?
  3. dowolną liczbę?

U¿ytkownik "DScreator" snipped-for-privacy@tenbit.pl napisa³ w wiadomo¶ci news:d1mrv2$f79$ snipped-for-privacy@korweta.task.gda.pl...

ZTCP pomno¿yæ mantysê przez liczbê (potêgi) tzn. je¶li chcesz podnie¶æ do potêgi 5 to mno¿ysz mantysê razy 5

to znaczy dowolna przez dowolna :D

Żeby było precyzyjnie podam przykład zmienna jest np 20 i chcę ją podnieść do potęgi 0,16.

Moim zdaniem w uP o ograniczonych zasobach chyba nie uda siê wykonaæ operacji na dowolnej liczbie.

Pawe³

Jeśli się nie da to jest na to rozwiązanie - stworzyć tabelę z obliczonymi wartościami dla poszczególnych zmiennych. Ale jest tego trochę więc wolałbym jednak to jakoś policzyć na uP.

"Jest tego trochê" to bardzo ³agodne okre¶lenie. Ja bym powiedzia³, raczej ¿e dowolnych liczb jest nieskoñczenie du¿o.

Pawe³

Korzystajac z algorytmu CORDIC* mozesz w bardzo prosty i dosc szybki sposob wyliczyc sobie sinus oraz kosinus hiperboliczny podanej wartosci x, a nastepnie przypomniec sobie, ze e^x = sinh x + cosh x. A stad juz jest w miare prosto.

Pozdrawiam Piotr Wyderski

*) Biorac pod uwage liczbe rekomendacji, ktore mu tu ostatnio wystawilem, zaczynam sie czuc jak akwizytor... :->

A jesli chcesz podniesc do potegi pi? :-)

Pozdrawiam Piotr Wyderski

No jest to jakaś metoda. Potem dokładnie to przeliczę i sprawdzę czy nie zapłacę w ten sposób ceną skomplikowanego programu. Realizuje dość skomplikowane równanie.

Ale czy biorac metode stosowana w Cordicu za wzor nie wymyslimy jeszcze prostszego sposobu ?

A wiesz co najsmieszniejsze jest - on jest z roku 1959. Czemu tak malo popularny ze trzeba go odkrywac ?..

J.

A propos .. wpisales to w koncu w fpga ?

Gdyby podejsc do tego czysto kombinacyjnie [tzn szereg blokow z sumatorami] .. to ciekaw jestem co oscyloskop na wyjsciu pokaze przez okres ustalania wyniku. To sie juz chyba powinno dac zobaczyc :-)

J.

Nie wiem. :-) Tzn. napisalem w VHDL i sie poprawnie kompiluje (dziala do fmax=213MHz, a ja potrzebuje tylko 130MHz, wiec jest duzo rezerwy; uklad zajmuje 1215 LE), ale jeszcze nie mialem okazji przesymulowac, bo symulator udostepniany z darmowa wersja Quartusa nie potrafi wczytywac i zapisywac danych z/do pliku tekstowego, a z samego patrzenia na przebiegi nikt nie wydedukuje, czy to jest dobrze -- tu Matlaba/Octave trzeba. :-)

Wlasnie cos takiego zastosowalem -- szereg 15 blokow po 3 sumatory 24-bitowe kazdy. Tylko pomiedzy bloki wstawilem latche, by uklad nie byl czysto kombinacyjny, tj. zrobilem pelny pipelining.

Hm, ale po co?

Pozdrawiam Piotr Wyderski

Jak "jeszcze prostszego"? Przeciez sinus i kosinus hiperboliczny Cordic obliczy rownolegle w jednym przebiegu, a koszt dodawania dwoch liczb wynikowych to chyba nie jest jakies szczegolne obciazenie... Ja bym sie raczej shiftow obawial -- male procesorki zazwyczaj nie maja barrel shifterow i przesuniecia o k bitow trzeba skladac z k przesuniec o bit... :-(

Nie wiem, ale np. koprocesor matematyczny 8087 korzystal z tego wlasnie algorytmu do obliczania wielu funkcji.

Pozdrawiam Piotr Wyderski

Hm, zasadniczo powinny byc D-rejestry a nie latche

A tak z ciekawosci - zeby zobaczyc jak bramki pracuja :-)

J.

Ale na podobnej zasadzie chyba mozna liczyc bezposrednio exp.

Ale jakos nigdy wczesniej na niego nie trafilem. Tzn tak zeby byl wymieniony jako najlepszy i ladnie opisany. Fakt ze nie siedzialem az tak w temacie, ale chocby przypadkiem powinienem trafic.

J.

A jaka jest miedzy nimi roznica? Zasze nazywalem latchem wektor przerzutnikow D wyzwalanych zboczem. :-) W koncu zatrzask...

Ale w takim ukladzie kombinacyjnym stan nieustalony bedzie trwal na tyle dlugo, ze na wyjsciu ukladu bedzie mozna zaobserwowac rozne bardzo dziwne przejscia, niekoniecznie zwiazane z algorytmem, a bardziej ze struktura fizyczna ukladu. :-)

Pozdrawiam Piotr Wyderski

A to fakt, w zadnej ksiazce do informatyki tez nie znalazlem o nim wzmianki. Ale za to w podrecznikach do DSP to juz calkiem sporo.

Pozdrawiam Piotr Wyderski

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required