Rozklad funkce sinus, cosinus – Matematika – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Rozklad funkce sinus, cosinus – Matematika – Fórum – Programujte.comRozklad funkce sinus, cosinus – Matematika – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
svoby10
Newbie
4. 2. 2015   #1
-
0
-

Zdravim. Potreboval bych implementovat funkci sin nebo cos do 8it pocesoru s instrukcni sadou 8051. tzn Muj dotaz zni. Jak rozlozim fukci sinus na zakladni matematicke operace kde muzu pouzit jen scitani , odcitani, nasobeni, (deleni jde take ,ale rad bych se mu vyhnul pokud to jde)  Prozatim to resim prevodni tabulkou, ale neni to moc presne ani elegantni. Diky

Nahlásit jako SPAM
IP: 62.240.162.–
Reklama
Reklama
Kit+11
Guru
4. 2. 2015   #2
-
0
-

#1 svoby1
Používá se na to Taylorův rozvoj:

sin(x) = x - x**3/3! + x**5/5! - x**7/7! ...

Běžně se to však pro mikroprocesory dělá převodní tabulkou.

Nahlásit jako SPAM
IP: 147.229.242.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
KIIV+42
God of flame
4. 2. 2015   #3
-
0
-

nebo muzes pouzit treba 16 hodnot v tabulce a aproximovat presnejsi hodnotu pomerne .. jako primku mezi sousedicimi body..

a nebo proste udelat 0-90 stupnu jako tabulku 0-255 (akorat zalezi, kolik mas mista ve flashce, do ram se to urcite nevejde, pokud bys tedy nemel externi)

Nahlásit jako SPAM
IP: 94.113.95.–
Program vždy dělá to co naprogramujete, ne to co chcete...
hlucheucho+10
Posthunter
4. 2. 2015   #4
-
0
-

Každá matematická operace, kterou 8051 má, je na 2 strojové cykly. Při tom to jsou jen unsigned int operace se dvěma operandy o velikosti 1 byte, cokoliv jiného se musí naprogramovat. Proto float point algebra na 8051 moc rychlá nebude, zůstal bych u tabulky. Nejméně náročné na velikost v paměti programu se jeví 0-90 stupňů jak píše KIIV, ale volil bych 128 hodnot o velikosti 16 bitů. Čtení takové tabulky je rychlé - pokud si dobře vzpomínám na assembler 8051 je to bázová adresa tabulky dat v DPTR a offset v A jako "index" hodnoty v tabulce. Pro 0 -90 st. čteš tabulku "zdola", pro 90 - 180 st čteš tabulku "zhora", pro 180 - 360 st uděláš totéž s opačným znaménkem.

Pokud to děláš v C/C++ můžeš si zkusit rychlost výpočtu, goniometrické funkce bývají implementovány i pro překladače pro 8051.

hu

Nahlásit jako SPAM
IP: 2001:67c:1222:800:cd2a:b0...–
svoby10
Newbie
4. 2. 2015   #5
-
0
-

Diky za pomoc. Koukam ze zustanu u prevodni tabulky ale jen ji rozsirim a dam ji do externi pameti.

Nahlásit jako SPAM
IP: 62.240.162.–
hlucheucho+10
Posthunter
4. 2. 2015   #6
-
0
-

Dal bych ji do paměti programu, RAM je málo.

hu

Nahlásit jako SPAM
IP: 2001:67c:1222:800:cd2a:b0...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 5 hostů

Podobná vlákna

Sinus a cosinus — založil Jiří

C: cosinus v stupnoch — založil 8andrej8

Arkus cosinus v pascalu — založil Yety

Sinus - příklad — založil Carlos461

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý