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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-10-13T19:44:58+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=13210&amp;mode</id>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2015-10-13T19:44:58+01:00</updated>
<published>2015-10-13T19:44:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13210&amp;p=142331#p142331</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13210&amp;p=142331#p142331"/>
<title type="html"><![CDATA[Re: Sprawdzenie stanu na porcie ustawionym jako wyjscie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13210&amp;p=142331#p142331"><![CDATA[
<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />oczywiście można do tego dać jakąś zmienną globalną, ale tak wydaj mi się prościej (nie wiem czy lepiej)<br /></div>Lepiej:<br />- nie zajmujesz niepotrzebnie pamięci na co i tak jest przechowywane w mikroprocesorze<br />- wykonujesz operacje na rejestrze na którym są szybsze operacje niż na pamięci RAM<br /><br />W Twoim przypadku to czy sprawdzasz PINx czy PORTx nie ma znaczenia.<br />Według mnie u Ciebie bardziej elegancko jest sprawdzenie PORTx. Ale tylko jak na pewno nigdy nie skopiujesz tego fragmentu kodu by nim chcieć tak czytać stanu pinu wejściowego  <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />. Więc jak nie zagwarantujesz sobie tego, to może użyj czytania z PINx, wtedy operacja będzie działać zawsze (na piny wejściowe i wyjściowe).<br /><br />Co do pociągnięcia do innego stanu wyjścia to należy się trochę postarać. ATmegi mają dość dużą wydajność prądową i zmiana stanu wymaja dość mocnego podciągnięcia. Ale są tacy co podłączają bezpośrednio bazę tranzystora NPN sterującego przekaźnikiem do wyjścia pinu (bez żadnych rezystorów)  <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /> .<br /><br />-- <br />Pozdrawiam,<br />Robert<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 13 paź 2015, o 19:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sauron80]]></name></author>
<updated>2015-10-13T18:48:22+01:00</updated>
<published>2015-10-13T18:48:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13210&amp;p=142326#p142326</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13210&amp;p=142326#p142326"/>
<title type="html"><![CDATA[Re: Sprawdzenie stanu na porcie ustawionym jako wyjscie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13210&amp;p=142326#p142326"><![CDATA[
Tak jak napisałem na początku, steruje 4 urządzeniami, ale oddzielnie jest funkcja wyświetlająca dane na wyświetlaczu i tam aby wyświetlić odpowiedni komunikat sprawdzam jaki jest stan wyjścia, oczywiście można do tego dać jakąś zmienną globalną, ale tak wydaj mi się prościej (nie wiem czy lepiej) <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1037">sauron80</a> — 13 paź 2015, o 18:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Grzegorz...]]></name></author>
<updated>2015-10-13T18:38:32+01:00</updated>
<published>2015-10-13T18:38:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13210&amp;p=142323#p142323</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13210&amp;p=142323#p142323"/>
<title type="html"><![CDATA[Re: Sprawdzenie stanu na porcie ustawionym jako wyjscie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13210&amp;p=142323#p142323"><![CDATA[
No to skoro sam ustawiasz i twierdzisz, że taki &quot;musi być&quot; to po co to sprawdzać.<br />Przecież wiesz kiedy wystawiłeś dany stan na danej &quot;nóżce&quot; uC?<br /><br />-- <br />Grzegorz...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1748">Grzegorz...</a> — 13 paź 2015, o 18:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sauron80]]></name></author>
<updated>2015-10-13T18:31:53+01:00</updated>
<published>2015-10-13T18:31:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13210&amp;p=142322#p142322</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13210&amp;p=142322#p142322"/>
<title type="html"><![CDATA[Re: Sprawdzenie stanu na porcie ustawionym jako wyjscie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13210&amp;p=142322#p142322"><![CDATA[
Rozumiem rozważania teoretyczne, ale ten pin steruje triakiem przez optotriak i nie ma tam możliwości wymuszenia innego stanu niż ustawiony na porcie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1037">sauron80</a> — 13 paź 2015, o 18:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Grzegorz...]]></name></author>
<updated>2015-10-13T17:48:37+01:00</updated>
<published>2015-10-13T17:48:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13210&amp;p=142317#p142317</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13210&amp;p=142317#p142317"/>
<title type="html"><![CDATA[Re: Sprawdzenie stanu na porcie ustawionym jako wyjscie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13210&amp;p=142317#p142317"><![CDATA[
Fakt zdaje się, że kolega ma rację, bo jak damy rezystor pull-down to może być inny stan niż w rejestrze.<br /><br />-- <br />Grzegorz...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1748">Grzegorz...</a> — 13 paź 2015, o 17:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2015-10-13T17:30:51+01:00</updated>
<published>2015-10-13T17:30:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13210&amp;p=142313#p142313</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13210&amp;p=142313#p142313"/>
<title type="html"><![CDATA[Re: Sprawdzenie stanu na porcie ustawionym jako wyjscie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13210&amp;p=142313#p142313"><![CDATA[
<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Cytuję:<br />&quot;W przypadku, gdy pin mikrokontrolera ustawiony jest jako wyjście, odczytanie stanu pinu powoduje faktycznie odczytanie wartości zapisanej w rejestrze wyjściowym PORTx, gdyż to on wtedy wymusza stan pinu.&quot;<br /></div><br />Oj, nie mogę się z tym zgodzić. Jak odczytujesz rejestr PINx to odczytujesz faktyczny stan pinu a nie wartość ustawioną w PORTx. Oczywiście aby była różnica musisz brutalnie wymusić zmianę stanu portu poprzez podłączenie czegoś wysokoprądowego do niego.<br /><br /><br />Edit:<br />@sauron80:<br />zapis [syntax=c]if (! (PINA &amp; (1 &lt;&lt; PA1)))[/syntax] odczytuje stan fizycznego pinu a zapis [syntax=c]if (! (PORTA &amp; (1 &lt;&lt; PA1)))[/syntax] odczytuje stan rejestru, czyli co chciałeś mieć na tym porcie.<br />W większości przypadków będziesz miał tam to samo.<br /><br />-- <br />Pozdrawiam,<br />Robert<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 13 paź 2015, o 17:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sauron80]]></name></author>
<updated>2015-10-13T17:24:12+01:00</updated>
<published>2015-10-13T17:24:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13210&amp;p=142308#p142308</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13210&amp;p=142308#p142308"/>
<title type="html"><![CDATA[Re: Sprawdzenie stanu na porcie ustawionym jako wyjscie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13210&amp;p=142308#p142308"><![CDATA[
Dzięki za pomoc, niestety nie mogę tego w tej chwili przetestować, ale rozumiem, że dla pinu PA1 taki zapis będzie prawidłowy:<br />if (!(PINA &amp;(1&lt;&lt;PA1)))<br />powyższy if wykona się dla stanu niskiego na porcie?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1037">sauron80</a> — 13 paź 2015, o 17:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Grzegorz...]]></name></author>
<updated>2015-10-13T16:25:42+01:00</updated>
<published>2015-10-13T16:25:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13210&amp;p=142302#p142302</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13210&amp;p=142302#p142302"/>
<title type="html"><![CDATA[Re: Sprawdzenie stanu na porcie ustawionym jako wyjscie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13210&amp;p=142302#p142302"><![CDATA[
@Bartek123.<br />Myślę, że koledze chodziło o coś zupełnie innego, a mianowicie WYJŚCIE, a nie WEJŚCIE - w uC robi to sporą różnicę.<br /><br />Cytuję:<br />&quot;W przypadku, gdy pin mikrokontrolera ustawiony jest jako wyjście, odczytanie stanu pinu powoduje faktycznie odczytanie wartości zapisanej w rejestrze wyjściowym PORTx, gdyż to on wtedy wymusza stan pinu.&quot;<br /><br />Jednak trzeba uważać, aby nie sprawdzać za wcześnie, bo stan musi się ustalić.<br /><br />-- <br />Grzegorz...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1748">Grzegorz...</a> — 13 paź 2015, o 16:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2015-10-13T16:19:33+01:00</updated>
<published>2015-10-13T16:19:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13210&amp;p=142301#p142301</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13210&amp;p=142301#p142301"/>
<title type="html"><![CDATA[Re: Sprawdzenie stanu na porcie ustawionym jako wyjscie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13210&amp;p=142301#p142301"><![CDATA[
A czy chcesz wiedzieć jaki jest stan ustawiony przez Ciebie na tym wyjściu czy stan faktyczny?<br />Jak będziesz czytał z rejestru PORTx (PORTx &amp; (1 &lt;&lt; Pxy)) to masz stan teoretyczny (czyli czy ustawiłeś jako wyjście o wartości 1 czy 0). Jak odczytasz z rejestru PINx (PINx &amp; (1 &lt;&lt; Pxy)) to odczytujesz stan fizycznego wejścia a ten może być czasami inny od ustawionego (np. coś ściągnęło linię ustawioną jako wyjście o stanie 1 do GND).<br /><br />-- <br />Pozdrawiam,<br />Robert<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 13 paź 2015, o 16:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Bartek123]]></name></author>
<updated>2015-10-13T13:58:59+01:00</updated>
<published>2015-10-13T13:58:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13210&amp;p=142292#p142292</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13210&amp;p=142292#p142292"/>
<title type="html"><![CDATA[Re: Sprawdzenie stanu na porcie ustawionym jako wyjscie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13210&amp;p=142292#p142292"><![CDATA[
Jeśli przycisk podłączony do masy to chyba tak sprawdź dawno nie używałem avr :<br />if(!(PINX &amp; (1&lt;&lt;PX)))<br />X = zależna do jakiego pinu podłączasz przycisk.<br />Obejrzyj poradniki mirka &quot;chyba o przyciskach&quot; i &quot;led czwiczenia&quot; czy cóś takiego poszukaj a znajdzesz tam mirek pokazuje różne proste efekty led.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10617">Bartek123</a> — 13 paź 2015, o 13:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[aaadamw]]></name></author>
<updated>2015-10-13T13:57:31+01:00</updated>
<published>2015-10-13T13:57:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13210&amp;p=142290#p142290</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13210&amp;p=142290#p142290"/>
<title type="html"><![CDATA[Re: Sprawdzenie stanu na porcie ustawionym jako wyjscie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13210&amp;p=142290#p142290"><![CDATA[
odczytaj rejestr PORTx<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=360">aaadamw</a> — 13 paź 2015, o 13:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sauron80]]></name></author>
<updated>2015-10-13T13:41:33+01:00</updated>
<published>2015-10-13T13:41:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13210&amp;p=142286#p142286</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13210&amp;p=142286#p142286"/>
<title type="html"><![CDATA[Sprawdzenie stanu na porcie ustawionym jako wyjscie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13210&amp;p=142286#p142286"><![CDATA[
Witam, po pona dwuletniej przerwie, właśnie siadłem do starego projektu i natrafiłem na następujący problem:<br />Jak programowo sprawdzić, jaki jest stan na porcie skonfigurowanym jako wyjście?<br /><br />Dodam może, że projekt zawiera 4 timery, którym podajemy HH:MM:SS startu i HH:MM:SS stopu. Informację o czasie włączenia/wyłączenia poszczególnych timerów chcę umieścić na LCD.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1037">sauron80</a> — 13 paź 2015, o 13:41</p><hr />
]]></content>
</entry>
</feed>