Pytanie z assemblera AVR

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

Reply to
DScreator
Loading thread data ...

No to jeszcze zdefiniuj czy dowolna oznacza:

  1. dowolną liczbę naturalną?
  2. dowolną liczbę całkowitą?
  3. dowolną liczbę?
Reply to
Mariusz Dybiec

to znaczy dowolna przez dowolna :D

Reply to
DScreator

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

Reply to
DScreator
Reply to
invalid unparseable

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.

Reply to
DScreator
Reply to
invalid unparseable

Przez logarytmy juz tylko.

J.

Reply to
J.F.
Reply to
Piotr Wyderski
Reply to
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.

Reply to
DScreator

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.

Reply to
J.F.

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.

Reply to
J.F.

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

Reply to
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

Reply to
Piotr Wyderski

Hm, zasadniczo powinny byc D-rejestry a nie latche

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

J.

Reply to
J.F.

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.

Reply to
J.F.

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

Reply to
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

Reply to
Piotr Wyderski

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.