<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=4&amp;t=24144&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2022-02-11T11:41:45+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=24144&amp;mode</id>
<entry>
<author><name><![CDATA[Johnnny94]]></name></author>
<updated>2022-02-11T11:41:45+01:00</updated>
<published>2022-02-11T11:41:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24144&amp;p=235050#p235050</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24144&amp;p=235050#p235050"/>
<title type="html"><![CDATA[Re: Liczby ujemne po potęgowaniu :(]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24144&amp;p=235050#p235050"><![CDATA[
Ok, już działa. Dziękuję za informację<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=20830">Johnnny94</a> — 11 lut 2022, o 11:41</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jarecki]]></name></author>
<updated>2022-02-10T15:08:30+01:00</updated>
<published>2022-02-10T15:08:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24144&amp;p=235042#p235042</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24144&amp;p=235042#p235042"/>
<title type="html"><![CDATA[Re: Liczby ujemne po potęgowaniu :(]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24144&amp;p=235042#p235042"><![CDATA[
<!-- m --><a class="postlink" href="https://atnel.pl/domyslna-promocja-do-typu-int.html" >https://atnel.pl/domyslna-promocja-do-typu-int.html</a><!-- m --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2511">Jarecki</a> — 10 lut 2022, o 15:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Johnnny94]]></name></author>
<updated>2022-02-10T11:17:57+01:00</updated>
<published>2022-02-10T11:17:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24144&amp;p=235041#p235041</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24144&amp;p=235041#p235041"/>
<title type="html"><![CDATA[Liczby ujemne po potęgowaniu :(]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24144&amp;p=235041#p235041"><![CDATA[
Witam, <br />zabrałem się za urządzenie do pomiaru napięcia skutecznego w sieci. <br />Stworzyłem sobie program, który mi nie działa. Dołączyłem bibliotekę MK_USART aby sprawdzać poszczególne wyniki działań matematycznych. Wygląda na to, że liczba po podniesieniu do kwadratu czasami jest ujemna. Poniżej kod jaki wgrywam.<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;math.h&gt;<br />#include &lt;stdlib.h&gt;<br /><br />#include &quot;MK_USART/mkuart.h&quot;<br /><br />uint16_t pomiar(uint8_t kanal);<br /><br />#define timer_start 248<br />volatile uint8_t ttn=0;<br /><br />volatile uint16_t UA;<br />volatile uint8_t czas_UA_G=0;//czas górnej połówki sinusoidy<br />volatile uint8_t czas_UA_D=0;//czas dolnej połówki sinusoidy<br />volatile uint8_t czas_UA=0;//suma czasów górnej i dolnej połówki sinusoidy<br />volatile int32_t p=0;<br />volatile int32_t p1=0;<br />volatile uint64_t Usk;<br /><br />void pomiar_UA (void)<br />{<br />UA=pomiar(0);<br /><br />if(UA&gt;=512 &amp;&amp; b==1)<br />{<br />czas_UA=czas_UA_D+czas_UA_G;<br />Usk=sqrt((p1)/czas_UA);<br />czas_UA_D=0;<br />czas_UA_G=0;<br />p=0;<br />p1=0;<br />}<br />if(UA&gt;=512)<br />{<br />czas_UA_G++;<br />p=(UA-512);<br />p1+=pow(p,2);<br />b=0;<br />}<br />if(UA&lt;512)<br />{<br />czas_UA_D++;<br />p=abs(UA-512);<br />p1+=pow(p,2);<br />b=1;<br />}<br />}<br />int main(void)<br />{<br />//POMIAR ADC<br />ADCSRA |= (1&lt;&lt;ADEN);//WLACZENIE ADC<br />ADCSRA |= (1&lt;&lt;ADPS0)|(1&lt;&lt;ADPS1);//PRESKALER 64<br />ADMUX |= (1&lt;&lt;REFS0) | (1&lt;&lt;REFS1);//NAPIECIE ODNIESIENIA 1,1V<br /><br />TCCR2B |= (1&lt;&lt;CS22) | (1&lt;&lt;CS21);//PRESKALER 256<br />TIMSK2 |= (1&lt;&lt;TOIE0);//PRZERWANIE OWERFLOW (PRZEPELNIENIE LICZNIKA)<br />TCNT2 = timer_start;<br /><br />USART_Init( __UBRR );// inicjalizacja UART<br /><br />sei();<br /><br />while(1)<br />{<br />uart_putint(p1,10);// wyślij liczbę<br />uart_putc('\r');// wyślij znak CR (enter)<br />uart_putc('\n');// wyślij znak LF (nowa linia)<br />}<br />}<br /><br />ISR(TIMER2_OVF_vect)<br />{<br />TCNT2=timer_start;<br />ttn++;<br />if(ttn&gt;=1){pomiar_UA();ttn=0;}<br />}[/syntax]<br /><br />Odczytuję wartość p1, która powinna być sumą potęg obliczonej wartości napięcia zmierzonego odjąć wartość stałą.<br />Właśnie ta wartość jest bardzo często ujemna. Kiedy mnożę wartość p przez dowolną liczbę wtedy nie ma problemów, jedynie przy działaniu potegowania.<br /><br />Gdzie tu szukać błędów? Każda podpowiedź będzie pomocna.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=20830">Johnnny94</a> — 10 lut 2022, o 11:17</p><hr />
]]></content>
</entry>
</feed>