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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-01-17T18:38:41+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=14215&amp;mode</id>
<entry>
<author><name><![CDATA[majster]]></name></author>
<updated>2016-01-17T18:38:41+01:00</updated>
<published>2016-01-17T18:38:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14215&amp;p=150860#p150860</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14215&amp;p=150860#p150860"/>
<title type="html"><![CDATA[Re: program realizujący przesunięcie bitowe- problem!]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14215&amp;p=150860#p150860"><![CDATA[
Ahh racja ... tak to jest jak sie czyta i pisze z telefonu.<br /><br />Nie mniej kolega ciscoc dowiedzial sie co to sa flagi <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Namazane ze smarta.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1628">majster</a> — 17 sty 2016, o 18:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kicajek]]></name></author>
<updated>2016-01-17T17:39:24+01:00</updated>
<published>2016-01-17T17:39:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14215&amp;p=150854#p150854</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14215&amp;p=150854#p150854"/>
<title type="html"><![CDATA[Re: program realizujący przesunięcie bitowe- problem!]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14215&amp;p=150854#p150854"><![CDATA[
Witam<br />Może mam pomroczność, ale nie bardzo rozumiem wykonywanie pętli &quot;for&quot; na raz - a to nie jest tak, że jak do jednej wejdzie to nie wyjdzie aż skończy?<br />Kol.<strong>ciscoc</strong> w tych pętlach podał złe warunki, ot i wszystko:<br />[syntax=c]#include&lt;avr/io.h&gt;<br />#include&lt;util/delay.h&gt;<br /><br />int main(void)<br />{<br />//ustawienie kierunku transmisji dla portu D<br />DDRD=0xFF;<br />//nieskończona pętla while<br />        while(1)<br />        {<br />                PORTD|=(1&lt;&lt;PD0);//zapal LED PD0<br />                for(uint8_t i=0;i&lt;7;i++)//przesunięcie bitowe w lewo (rosnąco) powodujące zapalenie PD1...PD7<br />                        {<br />                        _delay_ms(500);<br />                        PORTD&lt;&lt;=1;<br />                        _delay_ms(500);<br />                        }<br /><br />                PORTD|=(1&lt;&lt;PD7);//zapal LED PD7<br />                for(uint8_t k=7;k;k--)//przesunięcie bitowe w prawo (malejąco) powodujące zapalenie PD6...PD0<br />                        {<br />                        _delay_ms(500);<br />                        PORTD&gt;&gt;=1;<br />                        _delay_ms(500);<br />                        }<br />        }<br />}[/syntax]<br /><br />Pozdr.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=826">kicajek</a> — 17 sty 2016, o 17:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jacekk232]]></name></author>
<updated>2016-01-17T17:33:03+01:00</updated>
<published>2016-01-17T17:33:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14215&amp;p=150852#p150852</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14215&amp;p=150852#p150852"/>
<title type="html"><![CDATA[Re: program realizujący przesunięcie bitowe- problem!]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14215&amp;p=150852#p150852"><![CDATA[
Dodatkowa flaga tu nie jest potrzebna. Pętle for nie będą się wykonywać jednocześnie tylko jedna za drugą. Jeśli program wejdzie w pierwszą pętlę for to będzie się w niej kręcił tak długo aż warunek tej pętli przestanie być spełniony. W tym momencie pierwsza pętla się skończy i program wejdzie w drugą pętlę i pozostanie w niej tak długo aż warunek w tej drugiej pętli przestanie być spełniony. Następnie przejdzie znów do pierwszej pętli. I tak w kółko.<br /><br />Problem w tym, że druga pętla się nie skończy z powodu który podał kol. <strong>Bartek123</strong>.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=204">jacekk232</a> — 17 sty 2016, o 17:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[majster]]></name></author>
<updated>2016-01-17T17:05:07+01:00</updated>
<published>2016-01-17T17:05:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14215&amp;p=150850#p150850</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14215&amp;p=150850#p150850"/>
<title type="html"><![CDATA[Re: program realizujący przesunięcie bitowe- problem!]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14215&amp;p=150850#p150850"><![CDATA[
<div class="quotetitle">THEGITMAN napisał(a):</div><div class="quotecontent"><br />Tworzysz sobie &quot;uint8_t flaga = 0&quot; i po wykonanej petli zmieniasz wartosc.<br /></div><br />Odpisałem na pw ale chodzi o coś takiego że w tym momencie petla while wykonuje przy jednym obiegu obie petle for a najpierw ma sie wykonac 1 for potem 2 for dlatego piszesz <br /><br />If( flaga == 0 ) {<br /><br />1 for gdzie po ostatnim obiegu petli for dajesz flaga == 1;<br /><br />}else{<br /><br />2 for gdzie po ostatnim obiegu petli for dajesz flaga == 0;<br /><br />}<br /><br />W ten sposob najpierw wykona soe 1 for nastepnie 2 for i tak w kolo.<br /><br />Namazane ze smarta.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1628">majster</a> — 17 sty 2016, o 17:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[THEGITMAN]]></name></author>
<updated>2016-01-17T16:38:32+01:00</updated>
<published>2016-01-17T16:38:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14215&amp;p=150849#p150849</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14215&amp;p=150849#p150849"/>
<title type="html"><![CDATA[Re: program realizujący przesunięcie bitowe- problem!]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14215&amp;p=150849#p150849"><![CDATA[
Tworzysz sobie &quot;uint8_t flaga = 0&quot; i po wykonanej petli zmieniasz wartosc.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7818">THEGITMAN</a> — 17 sty 2016, o 16:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ciscoc]]></name></author>
<updated>2016-01-17T15:54:03+01:00</updated>
<published>2016-01-17T15:54:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14215&amp;p=150846#p150846</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14215&amp;p=150846#p150846"/>
<title type="html"><![CDATA[Re: program realizujący przesunięcie bitowe- problem!]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14215&amp;p=150846#p150846"><![CDATA[
Przepraszam za format kodu mam nadzieję że już jest dobrze wyświetlany.<br /><br />Mam jeszcze jedno pytanie do użytkownika 'majster' który napisał:<br /><div class="quotetitle">majster napisał(a):</div><div class="quotecontent"><br />Dodatkowo daj sobie flage aby najpierw leciala pierwsza petla a po jej wykonaniu kolejna po czym znow pieresza i tak w kolo. Bo teraz z 1 obiegiem petli while wykonuja sie obie petle for.<br /></div><br />Co oznacza, na czym polega dodanie flagi do kodu programu?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12249">ciscoc</a> — 17 sty 2016, o 15:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[majster]]></name></author>
<updated>2016-01-17T13:00:41+01:00</updated>
<published>2016-01-17T13:00:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14215&amp;p=150834#p150834</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14215&amp;p=150834#p150834"/>
<title type="html"><![CDATA[Re: program realizujący przesunięcie bitowe- problem!]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14215&amp;p=150834#p150834"><![CDATA[
Dodatkowo daj sobie flage aby najpierw leciala pierwsza petla a po jej wykonaniu kolejna po czym znow pieresza i tak w kolo. Bo teraz z 1 obiegiem petli while wykonuja sie obie petle for.<br /><br />Namazane ze smarta.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1628">majster</a> — 17 sty 2016, o 13:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Bartek123]]></name></author>
<updated>2016-01-17T12:52:16+01:00</updated>
<published>2016-01-17T12:52:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14215&amp;p=150832#p150832</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14215&amp;p=150832#p150832"/>
<title type="html"><![CDATA[Re: program realizujący przesunięcie bitowe- problem!]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14215&amp;p=150832#p150832"><![CDATA[
W drugiej pętli for masz zmienną typu uint8_t i dałeś jako warunek który będzie sprawdzany k&gt;=0 i po każdym obiegu pętli odejmowanie jeden od zmiennej k, więc kiedy zmienna k jest równa zero to pętla się wykona i później od 0 odejmie 1 zmienna uint8_t nie może być ujemna więc po tej operacji k = 255 więc znowu warunek spełniony i tak w kółko, więc musisz zastosować zmienną int8_t bądź zmodyfikować lekko tą pętle for aby nie było warunku k&gt;=0.<br />aha i poprawnie wstaw kod.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10617">Bartek123</a> — 17 sty 2016, o 12:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ciscoc]]></name></author>
<updated>2016-01-17T15:50:22+01:00</updated>
<published>2016-01-17T12:30:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14215&amp;p=150830#p150830</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14215&amp;p=150830#p150830"/>
<title type="html"><![CDATA[program realizujący przesunięcie bitowe- problem!]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14215&amp;p=150830#p150830"><![CDATA[
Witam, realizuję takie zadanie na ATmega8:<br />8 diód LED wpięte są pod linie portu D od PD0...PD7, chcę aby program zapalał mi diody od PD0 do PD7 i potem od PD7 do PD0.<br />Najpierw ma zapalić diodę wpiętą pod PD0 odczekać 0.5sek zgasić diodę PD0 i zapalić PD7 itp. W kierunku rosnącym od PD0 do PD7, a potem w kierunku malejącym od PD7 do PD0. Nie wiem dlaczego ale po wykonaniu pętli for w kierunku rosnącym a potem malejącym program przestaje działać nie realizuje pętli nieskończonej while. Dlatego zwracam się o pomoc do kolegów gdzie popełniam błąd?<br /> <br />Poniżej prezentuję kod:<br /><br />[syntax=c]/*program przesunięcie bitowe lewo-prawo*/<br />#include&lt;avr/io.h&gt;<br />#include&lt;util/delay.h&gt;<br /><br />int main(void)<br />{<br />//ustawienie kierunku transmisji dla portu D <br />DDRD=0xFF;<br />//nieskończona pętla while<br />while(1)<br />{<br />PORTD|=(1&lt;&lt;PD0);//zapal LED PD0<br />for(uint8_t i=0;i&lt;=6;i++)//przesunięcie bitowe w lewo (rosnąco) powodujące zapalenie PD1...PD7<br />{<br />_delay_ms(500);<br />PORTD&lt;&lt;=1;<br />_delay_ms(500);<br />}<br /><br />PORTD|=(1&lt;&lt;PD7);//zapal LED PD7<br />for(uint8_t k=6;k&gt;=0;k--)//przesunięcie bitowe w prawo (malejąco) powodujące zapalenie PD6...PD0<br />{<br />_delay_ms(500);<br />PORTD&gt;&gt;=1;<br />_delay_ms(500);<br />}<br />}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12249">ciscoc</a> — 17 sty 2016, o 12:30</p><hr />
]]></content>
</entry>
</feed>