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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2019-09-24T13:19:21+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=50&amp;t=22577&amp;mode</id>
<entry>
<author><name><![CDATA[kalafior911]]></name></author>
<updated>2019-09-24T13:19:21+01:00</updated>
<published>2019-09-24T13:19:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22577&amp;p=222201#p222201</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22577&amp;p=222201#p222201"/>
<title type="html"><![CDATA[Re: C++ dziwne zachowanie jednego z portów.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22577&amp;p=222201#p222201"><![CDATA[
Moscow... otworzyłeś mi oczy. Rzeczywiście. Przecież jeśli wygaszam ten jeden port B komendą 0x00, to równie dobrze wpisując komendę na port D (np.) 0x01 (00000001), i potem 0x02 (00000010), automatycznie wygaszam poprzednią(0x01), dając 0 zamiast 1, zarazem daję komendę na inne wyjście(0x02) i nie potrzebna jest osobna '0x00' gasząca całość D, czy też ten 0x01.<br />Dziękuję a wyjaśnienie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=20916">kalafior911</a> — 24 wrz 2019, o 13:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[moscow]]></name></author>
<updated>2019-09-24T12:29:27+01:00</updated>
<published>2019-09-24T12:29:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22577&amp;p=222196#p222196</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22577&amp;p=222196#p222196"/>
<title type="html"><![CDATA[Re: C++ dziwne zachowanie jednego z portów.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22577&amp;p=222196#p222196"><![CDATA[
Kolega Alef2 dokładnie napisał o co chodzi - ale sprawa jest banalnie prosta. Wpisanie do portu D nowej wartości ustawia na zera i jedynki odpowiednio każdy bit tego portu. Wpisanie kolejnej wartości za pomocą PORTD = cośtam zastępuje całkowicie poprzednią wartość - dlatego stosowne diody gasłu. W oryginalnej wersji programu wpisywałeś po prostu konkretną watość do PORTB i ona tam zostawała na zawsze. Nie była zastępowana niczym innym. Wpisanie tam 0x00 po prostu &quot;gasi&quot; stosowne bity... ot i cała filozofia.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=20760">moscow</a> — 24 wrz 2019, o 12:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kalafior911]]></name></author>
<updated>2019-09-24T11:52:16+01:00</updated>
<published>2019-09-24T11:52:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22577&amp;p=222195#p222195</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22577&amp;p=222195#p222195"/>
<title type="html"><![CDATA[Re: C++ dziwne zachowanie jednego z portów.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22577&amp;p=222195#p222195"><![CDATA[
Dziękuję za odpowiedzi. Jak wiadomo, i co widać po poście, pisanie w C++ to moje początki. <br />Panie Alef2, wygaszenie tego portu pomogło. Wszystko teraz działa jak należy, jednak kierowałem się zachowaniem portów D. Tam wygaszanie ich nie było konieczne. Wygaszały się same, a program wyglądał jak to, co wkleiłem. Nie pojmuję tego zachowania. Moje pisanie tego było dość doświadczalne. Kolejno podawałem sygnały na porty D, i te nie paliły się ciągle, a wygasały podczas zapalenia się kolejnych. Myślałem, że tak samo będzie z tym portem B, ale nie było. Nawiasem, jak wspomniałem, ten port B zastępowałem innymi 'B', a także C. Zawsze były one takimi jedynymi wśród tych D, które wykorzystywałem wszystkie. To taka połowicznie rozwiązana sprawa. Program działa, wszystko jest jak należy już, ale fakt niewiedzy, czemu tak było z tymi portami, pozostał. <br />Do Micky'ego - Była to Atmega8, nie korzystałem z żadnych portów typu reset, Xtal, SCK, Miso. Zdefiniowanie CPU w programie, czy jego brak, nic mi nie zmienił w działaniu. <br />Dziękuję, pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=20916">kalafior911</a> — 24 wrz 2019, o 11:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Alef2]]></name></author>
<updated>2019-09-24T06:18:43+01:00</updated>
<published>2019-09-24T06:18:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22577&amp;p=222185#p222185</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22577&amp;p=222185#p222185"/>
<title type="html"><![CDATA[Re: C++ dziwne zachowanie jednego z portów.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22577&amp;p=222185#p222185"><![CDATA[
Zauważ, że zapalasz pin w porcie B (PORTB = 0x01;), a go nie gasisz. Stan portu B (jak i każdego innego) pozostanie niezmienny, dopóki TY go nie zmienisz.<br />By uzyskać efekt jaki chcesz końcówka kodu mogła by wyglądać np tak[syntax=c]PORTB = 0x01;<br />_delay_ms(1000);<br />PORTB = 0x00;[/syntax]<br />popraw wklejanie kodu<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14998">Alef2</a> — 24 wrz 2019, o 06:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[micky]]></name></author>
<updated>2019-09-24T06:02:31+01:00</updated>
<published>2019-09-24T06:02:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22577&amp;p=222184#p222184</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22577&amp;p=222184#p222184"/>
<title type="html"><![CDATA[Re: C++ dziwne zachowanie jednego z portów.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22577&amp;p=222184#p222184"><![CDATA[
Po pierwsze nie używamy F_CPU w kodzie a w ustawieniach projektu. To tak na przyszłość. Po drugie to jaki to procek oraz czy patrzyłeś w pdf jakie funkcje alternatywne kryją się pod portami, które Ci nie chodzą?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1546">micky</a> — 24 wrz 2019, o 06:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kalafior911]]></name></author>
<updated>2019-09-23T22:08:49+01:00</updated>
<published>2019-09-23T22:08:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22577&amp;p=222180#p222180</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22577&amp;p=222180#p222180"/>
<title type="html"><![CDATA[C++ dziwne zachowanie jednego z portów.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22577&amp;p=222180#p222180"><![CDATA[
Dzień dobry<br />Miałem za zadanie stworzyć prosty, mały program, w którym wyjścia miały wysterowywać diody led. Teoretycznie banalna sprawa - miały się zapalać pierwsza, druga, trzecia, druga z trzecią na raz, pierwsza z trzecią.... piąta, piąta z szóstą jednocześnie... itp.<br />Problem którego nie pojmuję, i nie wiem co jest na rzeczy, polega na tym, że port B(ten ostatni na liście wyjść), który jest jedynym z pośród innych portów D, zachowuje się następująco: Zapalają się porty D, pierwszy , drugi itp., natomiast gdy przychodzi pora na port B, ten również się zapala, ale już nie gaśnie - pali się cały czas, nie reagując na fakt że inne pracują poprawnie. Zapętlenie cyklu nie wpływa na to. Czy ustawię go jako pierwszy, środkowy, czy ostatni, zachowuje się tak samo - po przyjściu jego kolei, zapala się, ale już nie gaśnie. Pali się ciągle.<br />Jak DDRB zdefiniuję na ten jedyny obsługiwany port B, to nic nie daje. Zostawiłem wszystkie - 'FF'<br />Jeszcze jedno - jak zamiast jednego wyjścia portu B, zastosuję jedno portu C, to jest to samo. C wtedy zachowuje się tak jak opisałem powyżej.<br />Gdzie tkwi błąd? Za ewentualną pomoc dziękuję.<br /><br />#define F_CPU 1000000L<br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />int main(void)<br />{<br />    DDRD  = 0xFF;<br />    DDRB  = 0xFF;<br /><br />    for(;;)<br />    {<br />         _delay_ms(1000);<br />        PORTD = 0x08;      <br />         _delay_ms(1000); <br />PORTD = 0x04;    <br />         _delay_ms(1000); <br />        PORTD = 0x18; <br />         _delay_ms(1000); <br />        PORTD = 0x0C; <br />         _delay_ms(1000); <br />        PORTD = 0x14; <br />         _delay_ms(1000); <br />        PORTB = 0x01;<br /> _delay_ms(1000);<br />    }<br />}<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=20916">kalafior911</a> — 23 wrz 2019, o 22:08</p><hr />
]]></content>
</entry>
</feed>