<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[SDS PLC/PAC: Měření Energie & OnlineTechnology.cz - [vyřešeno] goniometrické fce]]></title>
		<link>https://forum.sds.an-d.cz/viewtopic.php?id=258</link>
		<atom:link href="https://forum.sds.an-d.cz/extern.php?action=feed&amp;tid=258&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Nejnovější příspěvky v [vyřešeno] goniometrické fce.]]></description>
		<lastBuildDate>Tue, 17 Apr 2012 07:24:16 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: [vyřešeno] goniometrické fce]]></title>
			<link>https://forum.sds.an-d.cz/viewtopic.php?pid=1755#p1755</link>
			<description><![CDATA[<p>Děkuji, zkusím se s tím poprat.</p>]]></description>
			<author><![CDATA[null@example.com (milan.simunek)]]></author>
			<pubDate>Tue, 17 Apr 2012 07:24:16 +0000</pubDate>
			<guid>https://forum.sds.an-d.cz/viewtopic.php?pid=1755#p1755</guid>
		</item>
		<item>
			<title><![CDATA[Re: [vyřešeno] goniometrické fce]]></title>
			<link>https://forum.sds.an-d.cz/viewtopic.php?pid=1746#p1746</link>
			<description><![CDATA[<p>Funkce sin() a cos() a další trigonometrické funkce nejsou v jazyce SDS-C definovány, ale to neznamená že je nelze použít - napište si je sám. Aktuálně je to velmi jednoduché vzhledem ke skutečným požadavkům vaší aplikace.</p><p>Stačí vyhledet &quot;sin approximation&quot; a návodů je celá řada.</p><p>Mi se líbí tento: <a href="http://www.coranac.com/2009/07/sines/">http://www.coranac.com/2009/07/sines/</a> - proto sem do příspěvku přepíšu jednu z uvedených funkcí.<br />Protože používá datový typ &quot;s32&quot; (signed 32 bit) což je to samé co interně používá SDS-C.</p><p>No a kosinus je ve výsledku to samé co sinus, ale s fázovým posunem (tj. výsledky pro kosinus dostaneme i z funkce sinus, stačí jen poskytnou funkci sinus vstupní parametr s přičtenou konstantou). Takže stačí implementovat jen aproximaci funkce sin() a je to, zbytek (vše) je středoškolská matematika.</p><div class="codebox"><pre><code>var sin_input;
var sin_output;

isin_S4
{
    // copyright by http://www.coranac.com/2009/07/sines/
    var x;
    var c, x2, y;
    var qN, qA, B, C;

    x = sin_input;

    qN= 13; qA= 12; B=19900; C=3516;

    c= x&lt;&lt;(30-qN);              // Semi-circle info into carry.
    x -= 1&lt;&lt;qN;                 // sine -&gt; cosine calc

    x= x&lt;&lt;(31-qN);              // Mask with PI
    x= x&gt;&gt;(31-qN);              // Note: SIGNED shift! (to qN)
    x= x*x&gt;&gt;(2*qN-14);          // x=x^2 To Q14

    y= B - (x*C&gt;&gt;14);           // B - x^2*C
    y= (1&lt;&lt;qA)-(x*y&gt;&gt;16);       // A - x^2*(B-x^2*C)

    if (c &gt;= 0)
   {
        sin_output = y;
   } else
   {
        sin_output = 0 - y;
   }

}


main
{

   sin_input = 1;
   isin_S4();
   echo(&#039; vysledek = &#039;, sin_output);

x: goto x;
   
}</code></pre></div><p>Správný rozsah vstupních hodnot a správnou interpretaci výstupní hodnot si už zjistěte sami, viz odkaz.<br />Základem je hodnota PI a to je 0x4000 (16384 decimálně). Zdejší funkce isin_S4() samozřejmě pracuje s radiány, ne se stupni.<br />Pak platí následující příklad: sin_input = -224385 -&gt; -13.6954*pi = -43.0253 rad -&gt; 0x1000*sin(-43.0253) = 3348 kde sin_output = 3353 což je velm blízko. Takže to i funguje, zdá se.</p>]]></description>
			<author><![CDATA[null@example.com (adamn)]]></author>
			<pubDate>Fri, 13 Apr 2012 15:54:58 +0000</pubDate>
			<guid>https://forum.sds.an-d.cz/viewtopic.php?pid=1746#p1746</guid>
		</item>
		<item>
			<title><![CDATA[Re: [vyřešeno] goniometrické fce]]></title>
			<link>https://forum.sds.an-d.cz/viewtopic.php?pid=1745#p1745</link>
			<description><![CDATA[<p>Já se to chtěl hlavně naučit napsat a odladit. O tom sol.článku jako soumrakovém čidle jsem také uvažoval jako o možném řešení, právě v návaznosti na Váš (TiborTeam) příspěvek v jiném vlákně zde na fóru. Svítání a soumrak samozřejmě stačí.<br />Každopádně díky, pokud ty fce SDS-C nepodporuje (což stále nevím), budu pokračovat cestou nejmenšího odporu.</p>]]></description>
			<author><![CDATA[null@example.com (milan.simunek)]]></author>
			<pubDate>Fri, 13 Apr 2012 13:22:36 +0000</pubDate>
			<guid>https://forum.sds.an-d.cz/viewtopic.php?pid=1745#p1745</guid>
		</item>
		<item>
			<title><![CDATA[Re: [vyřešeno] goniometrické fce]]></title>
			<link>https://forum.sds.an-d.cz/viewtopic.php?pid=1744#p1744</link>
			<description><![CDATA[<p>Měřím to přímo, dává to max cca 1.7 V. Možná by šlo vykoumat pozorováním kdy kolik dává V ale já to mám čistě jako soumrak. spínač, pod 0.9 se pro mě stmívá a zapínám světla. Mám tam prodlevu aby to nespínalo hned.</p>]]></description>
			<author><![CDATA[null@example.com (TiborTeam)]]></author>
			<pubDate>Fri, 13 Apr 2012 09:06:11 +0000</pubDate>
			<guid>https://forum.sds.an-d.cz/viewtopic.php?pid=1744#p1744</guid>
		</item>
		<item>
			<title><![CDATA[Re: [vyřešeno] goniometrické fce]]></title>
			<link>https://forum.sds.an-d.cz/viewtopic.php?pid=1743#p1743</link>
			<description><![CDATA[<p>Ahoj, mohu mít dotaz k tomu solárnímu článku? Máš tam připojenou nějakou zátěž, nebo měříš přímo napětí na článku? Poznáš podle napětí slunce, polojasno, zataženo? Já někde viděl takovou převodní tabulku (statistiky) podle které se to dalo s nějakou přesností určit, ale nemohu to najít.</p>]]></description>
			<author><![CDATA[null@example.com (badmad)]]></author>
			<pubDate>Fri, 13 Apr 2012 08:36:46 +0000</pubDate>
			<guid>https://forum.sds.an-d.cz/viewtopic.php?pid=1743#p1743</guid>
		</item>
		<item>
			<title><![CDATA[Re: [vyřešeno] goniometrické fce]]></title>
			<link>https://forum.sds.an-d.cz/viewtopic.php?pid=1742#p1742</link>
			<description><![CDATA[<p>Uvažuji k čemu to použít .... <br />Pro meteo jsem cucal data z webu ale taky jenom údaje východ/západ ... anebo si můžu udělat výpočet i na svém web serveru ....<br />Já budu řídit osvětlení u papoušků taky podle venkovního světla ale na to používám solární článek ze staré kalkulačky. Ten mám připojený na AD a hezky měří světlo <img src="https://forum.sds.an-d.cz/img/smilies/smile.png" width="15" height="15" alt="smile" /></p>]]></description>
			<author><![CDATA[null@example.com (TiborTeam)]]></author>
			<pubDate>Fri, 13 Apr 2012 06:44:05 +0000</pubDate>
			<guid>https://forum.sds.an-d.cz/viewtopic.php?pid=1742#p1742</guid>
		</item>
		<item>
			<title><![CDATA[[vyřešeno] goniometrické fce]]></title>
			<link>https://forum.sds.an-d.cz/viewtopic.php?pid=1741#p1741</link>
			<description><![CDATA[<p>Je v SDS-C možné používat goniometrické fce?<br />Myšlenka je napsat program pro výpočet východu a západu Slunce s následnou vazbou na ovládání topení, vlhkosti a osvětlení terária (+ monitoring měřených hodnot a spotřeby). Jen nevím, zda lze gon.fce používat, případně jaká jsou pravidla. Problematika výpočtu dobře zpracována např. <a href="http://www.stjarnhimlen.se/comp/tutorial.html">zde</a> (koho to zaujme, zbytkem se prokliká).</p><p>Věřím, že by to bylo lze zřejmě i obejít (nepočítat dle polohy Slunce, jen dle známých údajů o východu i západu Slunce korigovat vůči aktuálnímu datu), ale chtěl jsem se něco naučit. Můžete někdo nakopnout poučeného laika správným směrem?</p>]]></description>
			<author><![CDATA[null@example.com (milan.simunek)]]></author>
			<pubDate>Thu, 12 Apr 2012 19:43:47 +0000</pubDate>
			<guid>https://forum.sds.an-d.cz/viewtopic.php?pid=1741#p1741</guid>
		</item>
	</channel>
</rss>
