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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2022-10-21T15:00:13+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=24332&amp;mode</id>
<entry>
<author><name><![CDATA[macieju-1974]]></name></author>
<updated>2022-10-21T15:00:13+01:00</updated>
<published>2022-10-21T15:00:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24332&amp;p=236139#p236139</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24332&amp;p=236139#p236139"/>
<title type="html"><![CDATA[Re: Cwiczenia diody led]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24332&amp;p=236139#p236139"><![CDATA[
Dzięki cdrom masz rację to bardziej czytelne. Twoja tablica na dwa światełka a poniżej jest na trzy światełka jakby ktoś potrzebował: <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> <br /><br />[syntax]uint16_t tab&#91;&#93;={7,14,28,56,112,224,448,896,1792,3584,7168,14336};[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21975">macieju-1974</a> — 21 paź 2022, o 15:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[cedrom]]></name></author>
<updated>2022-10-21T08:47:21+01:00</updated>
<published>2022-10-21T08:47:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24332&amp;p=236137#p236137</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24332&amp;p=236137#p236137"/>
<title type="html"><![CDATA[Re: Cwiczenia diody led]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24332&amp;p=236137#p236137"><![CDATA[
poprawka, powinno byc:<br />[syntax=c]for(int8_t i=11; i&gt;=0;i--){<br />            //ciało pętli<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21939">cedrom</a> — 21 paź 2022, o 08:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[cedrom]]></name></author>
<updated>2022-10-21T06:37:18+01:00</updated>
<published>2022-10-21T06:37:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24332&amp;p=236134#p236134</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24332&amp;p=236134#p236134"/>
<title type="html"><![CDATA[Re: Cwiczenia diody led]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24332&amp;p=236134#p236134"><![CDATA[
Myślę że do końca nie rozumiesz działania swojej pętli, choć już coś zaczyna ci świtać. Dałeś delaya pomiędzy wysyłanie na porty. Taki zapis działa oczywiście, ale nie potrzebnie zaciemnia działanie i wprowadza dodatkowe obliczenia. Jeśli byś wprowadził inny wzór to wyświetlanie się rozjedzie.<br /><br />spróbuj np. taką tablicę<br /><br />[syntax=c]uint16_t tab&#91;&#93;={3,6,12,24,48,96,192,384,768,1536,3072,2049};[/syntax]<br /><br /><br /><br />Nie prościej tak? i nie czytelniej.<br /><br />[syntax=c]for(i=0; i&lt;12;i++){<br />                        PORTB = tab&#91;i&#93;;<br />                        PORTD =tab&#91;i&#93;&gt;&gt;4 &amp; MASKA;<br />                        _delay_ms(150);<br />}[/syntax]<br /><br /><br />I mały tip. Jeśli zmiennej iteracyjnej nie używasz nigdzie poza pętlą, to możesz ją zdefiniować bezpośrednio w pętli. Nie musisz robić osobnej definicji.<br /><br />[syntax=c]for(uint8_t i=11; i==0;i--){<br />            //ciało pętli<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21939">cedrom</a> — 21 paź 2022, o 06:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[macieju-1974]]></name></author>
<updated>2022-10-20T20:13:04+01:00</updated>
<published>2022-10-20T20:13:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24332&amp;p=236132#p236132</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24332&amp;p=236132#p236132"/>
<title type="html"><![CDATA[Re: Cwiczenia diody led]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24332&amp;p=236132#p236132"><![CDATA[
Dziękuję bardzo cedrom wyszło mi coś takiego i działa !!!<br /><br />[syntax=&quot;c&quot;]#define MASKA 0b11111100;<br /><br />int main(void) {<br />uint16_t tab[]={1,2,4,8,16,32,64,128,256,512,1024,2048};<br /><br />DDRB = 0xff;<br />DDRD = 0xff;<br />PORTD = 0;<br />PORTB = 0;<br /><br />while(1){<br /><br />uint16_t i;<br /><br />for(i=0; i&lt;12;i++){<br />PORTB = tab[i];<br />_delay_ms(150);<br />PORTD =tab[i-1]&gt;&gt;2 &amp; MASKA;<br />}<br />}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21975">macieju-1974</a> — 20 paź 2022, o 20:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[cedrom]]></name></author>
<updated>2022-10-20T18:39:14+01:00</updated>
<published>2022-10-20T18:39:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24332&amp;p=236131#p236131</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24332&amp;p=236131#p236131"/>
<title type="html"><![CDATA[Re: Cwiczenia diody led]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24332&amp;p=236131#p236131"><![CDATA[
Masz 12 diod led to musisz mieć 12 pozycji w tablicy czyli brakuje ci jeszcze 4: 256, 512,1024,2048.<br /><br />masz tablice z elementami 16-bitowymi litery to twoje diody<br /><br />0000 yyyy yyxx xxxx<br /><br />Potrzebujesz żeby x znalazły się w porcie B a y w porcie D<br /><br />Robiąc PORTB = tab[i]; <br />wpisujesz na port B  yyxx xxxx<br />ponieważ w PORTB w 328p nie ma fizycznych PB6 i PB7 więc y są nieważne, można je zignorować jednak gdybyś używał procesora z pełnym portem musiałbyś to przepuścić przez maskę 0b0011 1111<br /><br />Teraz potrzebujesz mieć w PORTD wartości  yyyy yy00 bo tak masz podłączone diody<br /><br />Czyli musisz do PORTD wpisać tab[i] przesunięte w prawo o 4 i przepuscić to przez maskę 0b1111 1100 żeby nie wystawiać na dwóch najstarszych x na piny gdzie mają być zera.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21939">cedrom</a> — 20 paź 2022, o 18:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[macieju-1974]]></name></author>
<updated>2022-10-19T19:55:17+01:00</updated>
<published>2022-10-19T19:55:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24332&amp;p=236129#p236129</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24332&amp;p=236129#p236129"/>
<title type="html"><![CDATA[Re: Cwiczenia diody led]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24332&amp;p=236129#p236129"><![CDATA[
Dzięki cdrom za odpowiedź, z tym maskowaniem to już jestem &quot;poskładany&quot; i na pewno nic nie wymyślę choć mnie to interesuje jak byś mógł mi bardziej,  tak łopatologicznie wytłumaczyć to będę wdzięczny<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21975">macieju-1974</a> — 19 paź 2022, o 19:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[cedrom]]></name></author>
<updated>2022-10-19T19:05:41+01:00</updated>
<published>2022-10-19T19:05:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24332&amp;p=236128#p236128</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24332&amp;p=236128#p236128"/>
<title type="html"><![CDATA[Re: Cwiczenia diody led]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24332&amp;p=236128#p236128"><![CDATA[
1. Źle dobrałeś typ zmiennej do tablicy. Masz 12 diod więc powinieneś użyć zmiennej 16-bitowej<br />2. Masz 12 diod a w pętli dałeś 8 kroków. Powinno być 12 kroków. <br />3. Bez maskowania i przesunięć bitowych się nie obejdzie.<br /><br />Nie podałeś pod które piny portów B i D masz podpięte diody. PORTB i tak ma tylko 6 pinów więc to oczywiste. Natomiast z twojego opisu działania wnioskuję że pod PD2 do PD7.<br />W kroku trzecim zapalana jest dioda L3 a po 150 ms zapalana jest L7. Pętla zaczyna kolejna iterację i w mgnieniu oka gaszone jest L3 i zapalane L4.<br />Dlatego masz wrażenie że L4 i L7 palą się jednocześnie. A one tak naprawdę zapalają się w różnych iteracjach. <br /><br />Da się to zrobić prościej właśnie na przesunięciach bitowych.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21939">cedrom</a> — 19 paź 2022, o 19:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[macieju-1974]]></name></author>
<updated>2022-10-19T17:45:33+01:00</updated>
<published>2022-10-19T17:45:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24332&amp;p=236127#p236127</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24332&amp;p=236127#p236127"/>
<title type="html"><![CDATA[Cwiczenia diody led]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24332&amp;p=236127#p236127"><![CDATA[
Witam wszystkich,<br />jestem bardzo stary(żarcik) i początkujący(nie żarcik)... Bawię się z Atmegą 328p na płycie Arduino, podłączyłem 12 ledów po 6 na port D i B (katoda na GND). <br />PortB:<strong>L1,L2,L3,L4,L5,L6</strong> (PortD:)<strong>L7,L8,L9,L10,L11,L12</strong><br />Próbuję osiągnąć efekt przesuwającej się jednej diody z lewej do prawej strony w pętli. Niestety w momęcie zaświecenia L4(portB) równocześnie zapala się L7(portD) i iteracja na obu portach &quot;idzie&quot;dalej jednocześnie. Zastanawiałem się nad przesunięciem bitowym,tylko pytanie czy można to zrobić prościej ? <br /><br />[syntax=c]int main(void) {<br /><br />uint8_t tab&#91;&#93;={1,2,4,8,16,32,64,128};  <br /><br />DDRB = 0xff;<br />DDRD = 0xff;<br />PORTD = 0;<br />PORTB = 0;<br /><br />while(1){<br /><br />uint8_t i;<br /><br />for(i=0; i&lt;8;i++){<br />PORTB = tab&#91;i&#93;;<br />_delay_ms(150);<br />PORTD = tab&#91;i&#93;;<br />}<br />}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21975">macieju-1974</a> — 19 paź 2022, o 17:45</p><hr />
]]></content>
</entry>
</feed>