<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.mcselec.com/bavr/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.mcselec.com/bavr/index.php?action=history&amp;feed=atom&amp;title=FP_TRIG</id>
		<title>FP TRIG - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.mcselec.com/bavr/index.php?action=history&amp;feed=atom&amp;title=FP_TRIG"/>
		<link rel="alternate" type="text/html" href="http://wiki.mcselec.com/bavr/index.php?title=FP_TRIG&amp;action=history"/>
		<updated>2026-04-17T21:20:19Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.18.6</generator>

	<entry>
		<id>http://wiki.mcselec.com/bavr/index.php?title=FP_TRIG&amp;diff=1242&amp;oldid=prev</id>
		<title>Admin: Created page with &quot;The FP_TRIG library is written by Josef Franz Vögel.  &lt;span style=&quot;font-family: Arial;&quot;&gt;&amp;nbsp;&lt;/span&gt;  All trig functions are stored in fp_trig.lib library.  The fp_trig.lbx ...&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.mcselec.com/bavr/index.php?title=FP_TRIG&amp;diff=1242&amp;oldid=prev"/>
				<updated>2013-02-13T11:18:58Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;The FP_TRIG library is written by Josef Franz Vögel.  &amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;  All trig functions are stored in fp_trig.lib library.  The fp_trig.lbx ...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;The FP_TRIG library is written by Josef Franz Vögel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All trig functions are stored in fp_trig.lib library.&lt;br /&gt;
&lt;br /&gt;
The fp_trig.lbx contains the compiled object code and is used by BASCOM.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This sample demonstrates all the functions from the library:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bascomavr&amp;quot;&amp;gt;&lt;br /&gt;
'-----------------------------------------------------------------------------------------&lt;br /&gt;
'name : test_fptrig2.bas&lt;br /&gt;
'copyright : (c) 1995-2005, MCS Electronics&lt;br /&gt;
'purpose : demonstates FP trig library from Josef Franz Vögel&lt;br /&gt;
'micro : Mega8515&lt;br /&gt;
'suited for demo : no&lt;br /&gt;
'commercial addon needed : no&lt;br /&gt;
'-----------------------------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
$regfile = &amp;quot;m8515.dat&amp;quot; ' specify the used micro&lt;br /&gt;
$crystal = 4000000 ' used crystal frequency&lt;br /&gt;
$baud = 19200 ' use baud rate&lt;br /&gt;
$hwstack = 32 ' default use 32 for the hardware stack&lt;br /&gt;
$swstack = 10 ' default use 10 for the SW stack&lt;br /&gt;
$framesize = 40 ' default use 40 for the frame space&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
Dim S1 As Single , S2 As Single , S3 As Single , S4 As Single , S5 As Single , S6 As Single&lt;br /&gt;
Dim Vcos As Single , Vsin As Single , Vtan As Single , Vatan As Single , S7 As Single&lt;br /&gt;
Dim Wi As Single , B1 As Byte&lt;br /&gt;
Dim Ms1 As Single&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
Const Pi = 3.14159265358979&lt;br /&gt;
 &lt;br /&gt;
'calculate PI&lt;br /&gt;
Ms1 = Atn(1) * 4&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
Testing_power:&lt;br /&gt;
Print &amp;quot;Testing Power X ^ Y&amp;quot;&lt;br /&gt;
Print &amp;quot;X Y x^Y&amp;quot;&lt;br /&gt;
For S1 = 0.25 To 14 Step 0.25&lt;br /&gt;
 S2 = S1 \ 2&lt;br /&gt;
 S3 = Power(s1 , S2)&lt;br /&gt;
Print S1 ; &amp;quot; ^ &amp;quot; ; S2 ; &amp;quot; = &amp;quot; ; S3&lt;br /&gt;
Next&lt;br /&gt;
Print : Print : Print&lt;br /&gt;
 &lt;br /&gt;
Testing_exp_log:&lt;br /&gt;
 &lt;br /&gt;
Print &amp;quot;Testing EXP and LOG&amp;quot;&lt;br /&gt;
Print &amp;quot;x exp(x) log([exp(x)]) Error-abs Error-rel&amp;quot;&lt;br /&gt;
Print &amp;quot;Error is for calculating exp and back with log together&amp;quot;&lt;br /&gt;
For S1 = -88 To 88&lt;br /&gt;
 S2 = Exp(s1)&lt;br /&gt;
 S3 = Log(s2)&lt;br /&gt;
 S4 = S3 - S1&lt;br /&gt;
 S5 = S4 \ S1&lt;br /&gt;
Print S1 ; &amp;quot; &amp;quot; ; S2 ; &amp;quot; &amp;quot; ; S3 ; &amp;quot; &amp;quot; ; S4 ; &amp;quot; &amp;quot; ; S5 ; &amp;quot; &amp;quot; ;&lt;br /&gt;
Print&lt;br /&gt;
Next&lt;br /&gt;
Print : Print : Print&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
Testing_trig:&lt;br /&gt;
Print &amp;quot;Testing COS, SIN and TAN&amp;quot;&lt;br /&gt;
Print &amp;quot;Angle Degree Angle Radiant Cos Sin Tan&amp;quot;&lt;br /&gt;
For Wi = -48 To 48&lt;br /&gt;
 S1 = Wi * 15&lt;br /&gt;
 S2 = Deg2rad(s1)&lt;br /&gt;
 Vcos = Cos(s2)&lt;br /&gt;
 Vsin = Sin(s2)&lt;br /&gt;
 Vtan = Tan(s2)&lt;br /&gt;
Print S1 ; &amp;quot; &amp;quot; ; S2 ; &amp;quot; &amp;quot; ; Vcos ; &amp;quot; &amp;quot; ; Vsin ; &amp;quot; &amp;quot; ; Vtan&lt;br /&gt;
Next&lt;br /&gt;
Print : Print : Print&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
Testing_atan:&lt;br /&gt;
Print &amp;quot;Testing Arctan&amp;quot;&lt;br /&gt;
Print &amp;quot;X atan in Radiant, Degree&amp;quot;&lt;br /&gt;
S1 = 1 / 1024&lt;br /&gt;
Do&lt;br /&gt;
 S2 = Atn(s1)&lt;br /&gt;
 S3 = Rad2deg(s2)&lt;br /&gt;
Print S1 ; &amp;quot; &amp;quot; ; S2 ; &amp;quot; &amp;quot; ; S3&lt;br /&gt;
 S1 = S1 * 2&lt;br /&gt;
If S1 &amp;gt; 1000000 Then&lt;br /&gt;
 Exit Do&lt;br /&gt;
End If&lt;br /&gt;
Loop&lt;br /&gt;
 &lt;br /&gt;
Print : Print : Print&lt;br /&gt;
 &lt;br /&gt;
Testing_int_fract:&lt;br /&gt;
Print &amp;quot;Testing Int und Fract of Single&amp;quot;&lt;br /&gt;
Print &amp;quot;Value Int Frac&amp;quot;&lt;br /&gt;
S2 = Pi \ 10&lt;br /&gt;
For S1 = 1 To 8&lt;br /&gt;
 S3 = Int(s2)&lt;br /&gt;
 S4 = Frac(s2)&lt;br /&gt;
Print S2 ; &amp;quot; &amp;quot; ; S3 ; &amp;quot; &amp;quot; ; S4&lt;br /&gt;
 S2 = S2 * 10&lt;br /&gt;
Next&lt;br /&gt;
 &lt;br /&gt;
Print : Print : Print&lt;br /&gt;
 &lt;br /&gt;
Print &amp;quot;Testing degree - radiant - degree converting&amp;quot;&lt;br /&gt;
Print &amp;quot;Degree Radiant Degree Diff-abs rel&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
For S1 = 0 To 90&lt;br /&gt;
S2 = Deg2rad(s1)&lt;br /&gt;
S3 = Rad2deg(s2)&lt;br /&gt;
S4 = S3 - S1&lt;br /&gt;
S5 = S4 \ S1&lt;br /&gt;
Print S1 ; &amp;quot; &amp;quot; ; S2 ; &amp;quot; &amp;quot; ; S3 ; &amp;quot; &amp;quot; ; S4 ; &amp;quot; &amp;quot; ; S5&lt;br /&gt;
Next&lt;br /&gt;
 &lt;br /&gt;
Testing_hyperbolicus:&lt;br /&gt;
Print : Print : Print&lt;br /&gt;
Print &amp;quot;Testing SINH, COSH and TANH&amp;quot;&lt;br /&gt;
Print &amp;quot;X sinh(x) cosh(x) tanh(x)&amp;quot;&lt;br /&gt;
For S1 = -20 To 20&lt;br /&gt;
S3 = Sinh(s1)&lt;br /&gt;
S2 = Cosh(s1)&lt;br /&gt;
S4 = Tanh(s1)&lt;br /&gt;
Print S1 ; &amp;quot; &amp;quot; ; S3 ; &amp;quot; &amp;quot; ; S2 ; &amp;quot; &amp;quot; ; S4&lt;br /&gt;
Next&lt;br /&gt;
Print : Print : Print&lt;br /&gt;
 &lt;br /&gt;
Testing_log10:&lt;br /&gt;
Print &amp;quot;Testing LOG10&amp;quot;&lt;br /&gt;
Print &amp;quot;X log10(x)&amp;quot;&lt;br /&gt;
S1 = 0.01&lt;br /&gt;
S2 = Log10(s1)&lt;br /&gt;
Print S1 ; &amp;quot; &amp;quot; ; S2&lt;br /&gt;
S1 = 0.1&lt;br /&gt;
S2 = Log10(s1)&lt;br /&gt;
Print S1 ; &amp;quot; &amp;quot; ; S2&lt;br /&gt;
For S1 = 1 To 100&lt;br /&gt;
S2 = Log10(s1)&lt;br /&gt;
Print S1 ; &amp;quot; &amp;quot; ; S2&lt;br /&gt;
Next&lt;br /&gt;
 &lt;br /&gt;
Print : Print : Print&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
'test MOD on FP&lt;br /&gt;
S1 = 10000&lt;br /&gt;
S2 = 3&lt;br /&gt;
S3 = S1 Mod S2&lt;br /&gt;
Print S3&lt;br /&gt;
 &lt;br /&gt;
Print &amp;quot;Testing_SQR-Single&amp;quot;&lt;br /&gt;
For S1 = -1 To 4 Step 0.0625&lt;br /&gt;
 S2 = Sqr(s1)&lt;br /&gt;
Print S1 ; &amp;quot; &amp;quot; ; S2&lt;br /&gt;
Next&lt;br /&gt;
Print&lt;br /&gt;
For S1 = 1000000 To 1000100&lt;br /&gt;
 S2 = Sqr(s1)&lt;br /&gt;
Print S1 ; &amp;quot; &amp;quot; ; S2&lt;br /&gt;
Next&lt;br /&gt;
 &lt;br /&gt;
Testing_atn2:&lt;br /&gt;
Print &amp;quot;Testing Sin / Cos / ATN2 / Deg2Rad / Rad2Deg / Round&amp;quot;&lt;br /&gt;
Print &amp;quot;X[deg] X[Rad] Sin(x) Cos(x) Atn2 Deg of Atn2 Rounded&amp;quot;&lt;br /&gt;
For S1 = -180 To 180 Step 5&lt;br /&gt;
 S2 = Deg2rad(s1)&lt;br /&gt;
 S3 = Sin(s2)&lt;br /&gt;
 S4 = Cos(s2)&lt;br /&gt;
 S5 = Atn2(s3 , S4)&lt;br /&gt;
 S6 = Rad2deg(s5)&lt;br /&gt;
 S7 = Round(s6)&lt;br /&gt;
Print S1 ; &amp;quot; &amp;quot; ; S2 ; &amp;quot; &amp;quot; ; S3 ; &amp;quot; &amp;quot; ; S4 ; &amp;quot; &amp;quot; ; S5 ; &amp;quot; &amp;quot; ; S6 ; &amp;quot; &amp;quot; ; S7&lt;br /&gt;
Next&lt;br /&gt;
Print &amp;quot;note: -180° is equivalent to +180°&amp;quot;&lt;br /&gt;
Print&lt;br /&gt;
Testing_asin_acos:&lt;br /&gt;
Print &amp;quot;Testing ASIN, ACOS&amp;quot;&lt;br /&gt;
Print &amp;quot;X asin(x) acos(x)&amp;quot;&lt;br /&gt;
For S1 = -1.125 To 1.125 Step 0.0625&lt;br /&gt;
 S2 = Asin(s1)&lt;br /&gt;
 S3 = Acos(s1)&lt;br /&gt;
Print S1 ; &amp;quot; &amp;quot; ; S2 ; &amp;quot; &amp;quot; ; S3&lt;br /&gt;
Next&lt;br /&gt;
Print &amp;quot;Note: &amp;gt; 1.0 and &amp;lt; -1.0 are invalid and shown here for error handling&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
Testing_shift:&lt;br /&gt;
S1 = 12&lt;br /&gt;
For B1 = 1 To 20&lt;br /&gt;
 S2 = S1 : S3 = S1&lt;br /&gt;
Shift S2 , Left , B1&lt;br /&gt;
Shift S3 , Right , B1&lt;br /&gt;
Print S1 ; &amp;quot; &amp;quot; ; S2 ; &amp;quot; &amp;quot; ; S3&lt;br /&gt;
Next&lt;br /&gt;
 &lt;br /&gt;
Print &amp;quot;End of testing&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Languages}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Floating_Point]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>