<?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=6242&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-03-05T12:36:03+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=6242&amp;mode</id>
<entry>
<author><name><![CDATA[Barthap]]></name></author>
<updated>2014-03-05T12:36:03+01:00</updated>
<published>2014-03-05T12:36:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6242&amp;p=73093#p73093</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6242&amp;p=73093#p73093"/>
<title type="html"><![CDATA[Re: getchar a atmega]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6242&amp;p=73093#p73093"><![CDATA[
@matej1410:<br />Do wklejania kodu na forum używamy [ syntax] zamiast [ code] <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Zrób sobie dodatkową zmienną logiczną przechowującą stan poprzedniego pomiaru i dodatkowy warunek sprawdzający czy ten stan się zmienił.<br /><br />Pisane z palca<br />[syntax=c]uint8_t poprzedni = 0;<br /> while(1)<br />  {<br />            wynik = pomiar(PC5);<br />            uart_put_long(wynik, 10);<br />            uart_puts(&quot;  &quot;);<br />      if(wynik&lt;100)<br />      {<br />      if(!poprzedni) {<br />         poprzedni=1;<br />         PORTB ^=00000001;<br />      }<br />      }<br />      else poprzedni = 0;<br /> }[/syntax]<br /><br /><br />@kurnachatka:<br />Autorowi chyba chodziło o zmianę stanu portu (toggle), a nie o podanie stanu wysokiego bądź niskiego w zależności od wyniku pomiaru.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2576">Barthap</a> — 5 mar 2014, o 12:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kurnachatka]]></name></author>
<updated>2014-03-05T12:27:44+01:00</updated>
<published>2014-03-05T12:27:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6242&amp;p=73092#p73092</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6242&amp;p=73092#p73092"/>
<title type="html"><![CDATA[Re: getchar a atmega]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6242&amp;p=73092#p73092"><![CDATA[
Może coś takiego zadziała.<br />[syntax=c]if(wynik&lt;100)<br />      {<br />      PORTB |= (1&lt;&lt;PB0);<br />      }<br />      else<br />      {<br />        PORTB &amp;= ~(1&lt;&lt;PB0);<br />       }[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=930">kurnachatka</a> — 5 mar 2014, o 12:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[matej1410]]></name></author>
<updated>2014-03-05T12:21:28+01:00</updated>
<published>2014-03-05T12:21:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6242&amp;p=73091#p73091</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6242&amp;p=73091#p73091"/>
<title type="html"><![CDATA[getchar a atmega]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6242&amp;p=73091#p73091"><![CDATA[
Witam.<br /><br />Program, który próbuję napisać ma za zadanie zmienić stan na pinie PB0 tą komendą: PORTB ^=00000001; gdy na wejściu ADC czyli na PC5 pojawi się odpowiedni sygnał tj. wynik&lt;100. Problem jest taki, że poniższy program działa &quot;za szybko&quot; tzn. pętla while działa błyskawicznie i gdy na wejsciu ADC pojawia się odpowiedni stan czyli wynik&lt;100 (który notabene trwa kilka cykli pętli while)  to komenda PORTB ^=00000001; zadziała kilka razy. Chciałbym aby po spełnieniu warunku wynik&lt;100 komenda PORTB ^=00000001; wykonała się tylko raz.<br />Próbowałem już wielu kombinacji... nawet pętli w pętli, dodawania if w pętlach, ale zawsze jest kłopot i nie działa jak należy.<br /><br />oto fragmentu kodu.<br /><br />[syntax=c]while(1)<br />{<br />wynik = pomiar(PC5);<br />uart_put_long(wynik, 10);<br />uart_puts(&quot;  &quot;);<br />if(wynik&lt;100)<br />{<br />PORTB ^=00000001;<br /><br /><br />}<br />}[/syntax]<br /><br /><span style="color: #FF0000">Do wstawiania kodu używamy znacznika 'syntax' zamiast znacznika 'code' - poprawiłem (Sonix)</span><br />Proszę o pomoc.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1912">matej1410</a> — 5 mar 2014, o 12:21</p><hr />
]]></content>
</entry>
</feed>