<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Bug in GFLIB_AtanYX_F16 in Motor Control and Smart Energy</title>
    <link>https://community.nxp.com/t5/Motor-Control-and-Smart-Energy/Bug-in-GFLIB-AtanYX-F16/m-p/786377#M241</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mike,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You don't need to generate an error because the function writes to the error flag if there is no error, too.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To simulate the error situation you need to declare bErrFlag as a 32-bit value like in this example:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;static frac16_t f16Result;&lt;BR /&gt;static frac16_t f16Y, f16X;&lt;BR /&gt;static uint32_t bErrFlag;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void main(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; &amp;nbsp;bErrFlag = 0x12345678:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;f16Y = FRAC16(0.9); /* f16Y = 0.9 */&lt;BR /&gt;&amp;nbsp; &amp;nbsp;f16X = FRAC16(0.3); /* f16X = 0.3 */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;/* f16Result = atan(f16Y / f16X); f16Result * 180 =&amp;gt; angle [degree] */&lt;BR /&gt;&amp;nbsp; &amp;nbsp;f16Result = GFLIB_AtanYX_F16(f16Y, f16X, (bool_t *)&amp;amp;bErrFlag);&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You will see bErrFlag is set to 0 by the function. This should not be the case if the function returns the error flag as a 16 bit bool type.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 29 Nov 2018 08:40:35 GMT</pubDate>
    <dc:creator>raul10</dc:creator>
    <dc:date>2018-11-29T08:40:35Z</dc:date>
    <item>
      <title>Bug in GFLIB_AtanYX_F16</title>
      <link>https://community.nxp.com/t5/Motor-Control-and-Smart-Energy/Bug-in-GFLIB-AtanYX-F16/m-p/786373#M237</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm using the CM4 version of the RTCESL library. The function&amp;nbsp;GFLIB_AtanYX_F16 has an error flag as output type which the documenation claims to be a bool_t type that is 16 bit wide.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However, it seems the routine writes a 32 bit value to the error address. I've checked this with library versions 4.4 and 4.5 - both have the same behaviour.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Could you please check if other routines of the library using the bool_t type correctly as 16 bit value.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 21 Nov 2018 07:56:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Motor-Control-and-Smart-Energy/Bug-in-GFLIB-AtanYX-F16/m-p/786373#M237</guid>
      <dc:creator>raul10</dc:creator>
      <dc:date>2018-11-21T07:56:12Z</dc:date>
    </item>
    <item>
      <title>Re: Bug in GFLIB_AtanYX_F16</title>
      <link>https://community.nxp.com/t5/Motor-Control-and-Smart-Energy/Bug-in-GFLIB-AtanYX-F16/m-p/786374#M238</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sorry for the later reply.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;From GFLIB_AtanYX_F16 function declaration, the return value is frac16_t:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_1.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/77828i0B27D4D0655D4E28/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_1.png" alt="pastedImage_1.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;The use example also using frac16_t variable to receive the result:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_2.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/77872iC1811E4632DB5DAC/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_2.png" alt="pastedImage_2.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Wish it helps.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Mike&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 26 Nov 2018 02:37:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Motor-Control-and-Smart-Energy/Bug-in-GFLIB-AtanYX-F16/m-p/786374#M238</guid>
      <dc:creator>Hui_Ma</dc:creator>
      <dc:date>2018-11-26T02:37:26Z</dc:date>
    </item>
    <item>
      <title>Re: Bug in GFLIB_AtanYX_F16</title>
      <link>https://community.nxp.com/t5/Motor-Control-and-Smart-Energy/Bug-in-GFLIB-AtanYX-F16/m-p/786375#M239</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mike,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I was asking about bErrFlag.&amp;nbsp;The function writes a 32 bit value to this variable but the documentation says it is a 16 bit bool type.&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 26 Nov 2018 06:26:52 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Motor-Control-and-Smart-Energy/Bug-in-GFLIB-AtanYX-F16/m-p/786375#M239</guid>
      <dc:creator>raul10</dc:creator>
      <dc:date>2018-11-26T06:26:52Z</dc:date>
    </item>
    <item>
      <title>Re: Bug in GFLIB_AtanYX_F16</title>
      <link>https://community.nxp.com/t5/Motor-Control-and-Smart-Energy/Bug-in-GFLIB-AtanYX-F16/m-p/786376#M240</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I couldn't generate the error flag with GFLIB_AtanYX_F16 () function.&lt;/P&gt;&lt;P&gt;So, I don't find there with pass 32 bit value to the error address.&lt;/P&gt;&lt;P&gt;Could you guide me how to generate an error situation? Thanks.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_1.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/78349iBA218D878E459C95/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_1.png" alt="pastedImage_1.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Mike&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Nov 2018 02:35:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Motor-Control-and-Smart-Energy/Bug-in-GFLIB-AtanYX-F16/m-p/786376#M240</guid>
      <dc:creator>Hui_Ma</dc:creator>
      <dc:date>2018-11-29T02:35:28Z</dc:date>
    </item>
    <item>
      <title>Re: Bug in GFLIB_AtanYX_F16</title>
      <link>https://community.nxp.com/t5/Motor-Control-and-Smart-Energy/Bug-in-GFLIB-AtanYX-F16/m-p/786377#M241</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mike,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You don't need to generate an error because the function writes to the error flag if there is no error, too.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To simulate the error situation you need to declare bErrFlag as a 32-bit value like in this example:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;static frac16_t f16Result;&lt;BR /&gt;static frac16_t f16Y, f16X;&lt;BR /&gt;static uint32_t bErrFlag;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void main(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; &amp;nbsp;bErrFlag = 0x12345678:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;f16Y = FRAC16(0.9); /* f16Y = 0.9 */&lt;BR /&gt;&amp;nbsp; &amp;nbsp;f16X = FRAC16(0.3); /* f16X = 0.3 */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;/* f16Result = atan(f16Y / f16X); f16Result * 180 =&amp;gt; angle [degree] */&lt;BR /&gt;&amp;nbsp; &amp;nbsp;f16Result = GFLIB_AtanYX_F16(f16Y, f16X, (bool_t *)&amp;amp;bErrFlag);&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You will see bErrFlag is set to 0 by the function. This should not be the case if the function returns the error flag as a 16 bit bool type.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Nov 2018 08:40:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Motor-Control-and-Smart-Energy/Bug-in-GFLIB-AtanYX-F16/m-p/786377#M241</guid>
      <dc:creator>raul10</dc:creator>
      <dc:date>2018-11-29T08:40:35Z</dc:date>
    </item>
    <item>
      <title>Re: Bug in GFLIB_AtanYX_F16</title>
      <link>https://community.nxp.com/t5/Motor-Control-and-Smart-Energy/Bug-in-GFLIB-AtanYX-F16/m-p/786378#M242</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you for the guide.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I could regenerate your mentioned issue.&lt;/P&gt;&lt;P&gt;The uint32_t bErrFlag variable was totally changed with 16-bit value.&lt;/P&gt;&lt;P&gt;I need to discuss with software team about this issue.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Mike&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 30 Nov 2018 07:14:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Motor-Control-and-Smart-Energy/Bug-in-GFLIB-AtanYX-F16/m-p/786378#M242</guid>
      <dc:creator>Hui_Ma</dc:creator>
      <dc:date>2018-11-30T07:14:26Z</dc:date>
    </item>
    <item>
      <title>Re: Bug in GFLIB_AtanYX_F16</title>
      <link>https://community.nxp.com/t5/Motor-Control-and-Smart-Energy/Bug-in-GFLIB-AtanYX-F16/m-p/786379#M243</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I debug into the GFLIB_AtanYX_F16() function and find it call STR instruction to transfer error flag.&lt;/P&gt;&lt;P&gt;Please check the address 0x1FFFC9E6 was written 32-bit data with STR instruction.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_1.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/78495i5F06F13653AE7A2E/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_1.png" alt="pastedImage_1.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;I also check the ARM Cortex M4 STR instruction, which store 32bits value to R2 register.&lt;/P&gt;&lt;P&gt;Thank you let us know that, I will report this issue to software team.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Have a great day,&lt;BR /&gt;Mike&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 30 Nov 2018 07:49:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Motor-Control-and-Smart-Energy/Bug-in-GFLIB-AtanYX-F16/m-p/786379#M243</guid>
      <dc:creator>Hui_Ma</dc:creator>
      <dc:date>2018-11-30T07:49:30Z</dc:date>
    </item>
    <item>
      <title>Re: Bug in GFLIB_AtanYX_F16</title>
      <link>https://community.nxp.com/t5/Motor-Control-and-Smart-Energy/Bug-in-GFLIB-AtanYX-F16/m-p/786380#M244</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mike,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I found the same as you: the 32 bit STR instruction is used for clearing the error flag&amp;nbsp;as well as for seting it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 30 Nov 2018 08:52:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Motor-Control-and-Smart-Energy/Bug-in-GFLIB-AtanYX-F16/m-p/786380#M244</guid>
      <dc:creator>raul10</dc:creator>
      <dc:date>2018-11-30T08:52:34Z</dc:date>
    </item>
  </channel>
</rss>

