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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2018-05-15T02:33:19+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=58&amp;t=20619&amp;mode</id>
<entry>
<author><name><![CDATA[sredni]]></name></author>
<updated>2018-05-15T02:33:19+01:00</updated>
<published>2018-05-15T02:33:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20619&amp;p=207794#p207794</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20619&amp;p=207794#p207794"/>
<title type="html"><![CDATA[Re: Timer zamiast Delay_ms w pętli for]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20619&amp;p=207794#p207794"><![CDATA[
<div class="quotetitle">wrctomi napisał(a):</div><div class="quotecontent"><br />Ale jak wspomniałem że ma działać 1,3,7,15 itd na końcu 255. ?? Mógłby ktoś podpowiedzieć?<br /></div><br /><br />Proszę bardzo, teraz tylko zamiast delaya użyj timerka  <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> <br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br /><br />int main( void ) {<br /><br />    DDRC = 0xFF;<br />    PORTC = 0xFF;<br /><br />    uint8_t i, x = 0;<br /><br />    while ( 1 ) {<br /><br />        for ( ;  x &lt; 255; ++i ) {<br />            x = ( x * 2 ) + 1;<br />            PORTC &amp;= ~x ;<br /><br />            _delay_ms( 500 );<br />        }<br />    }<br />}[/syntax]<br /><br /><div style="width: 583px; height: 471px; margin: 0 auto; padding-left: 26px; padding-top: 48px; background: url('https://www.atnel.pl/download/atnel_tv.png') no-repeat;"> <strong>iframe</strong> </div><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3346">sredni</a> — 15 maja 2018, o 02:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wrctomi]]></name></author>
<updated>2018-04-21T09:44:10+01:00</updated>
<published>2018-04-21T09:44:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20619&amp;p=207019#p207019</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20619&amp;p=207019#p207019"/>
<title type="html"><![CDATA[Re: Timer zamiast Delay_ms w pętli for]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20619&amp;p=207019#p207019"><![CDATA[
Ale jak wspomniałem że ma działać 1,3,7,15 itd na końcu 255. ?? Mógłby ktoś podpowiedzieć?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17865">wrctomi</a> — 21 kwi 2018, o 09:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wrctomi]]></name></author>
<updated>2018-04-20T21:58:01+01:00</updated>
<published>2018-04-20T21:58:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20619&amp;p=207011#p207011</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20619&amp;p=207011#p207011"/>
<title type="html"><![CDATA[Re: Timer zamiast Delay_ms w pętli for]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20619&amp;p=207011#p207011"><![CDATA[
Działa ale jak dodałem tmp++ ale nie tak jak chcę.Ma działać 1,3,7,itd do 255. A to działa 2,3,4 i jeszcze bez pierwszego bita bo w kodzie tmp++ i jeszcze przesunięcie bitowe to już od drugiego zaczyna tak 2,3,4,5.Wyrzuciłem ~ i zmieniłem na tmp=0;.Bo mam inaczej podłączone diody(anodami).Ale to szczegół.Zatem jak to zrobić?  <br /><br />[syntax=c]while(1)<br />  {<br /><br />  if (!Timer1) {<br /><br />tmp++;  //jeszcze to musi być<br /><br />Timer1 = 1;<br /><br />PORTB = (tmp &lt;&lt; 1);<br /><br />if (!tmp) {<br />tmp = 0;<br />Timer1 = 100;<br />}<br />}<br />}<br />}[/syntax]<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 9 minutach ]</span></strong><br /><br />Jeszcze to zmieniłem i działa od pierwszego bitu. <br />PORTB = (tmp &lt;&lt; 0);<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17865">wrctomi</a> — 20 kwi 2018, o 21:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wrctomi]]></name></author>
<updated>2018-04-20T12:47:16+01:00</updated>
<published>2018-04-20T12:47:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20619&amp;p=206997#p206997</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20619&amp;p=206997#p206997"/>
<title type="html"><![CDATA[Re: Timer zamiast Delay_ms w pętli for]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20619&amp;p=206997#p206997"><![CDATA[
Później zobacze bo nie jestem przy kompie.Dam znać.narazie dzięki<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17865">wrctomi</a> — 20 kwi 2018, o 12:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jarecki]]></name></author>
<updated>2018-04-20T12:03:51+01:00</updated>
<published>2018-04-20T12:03:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20619&amp;p=206994#p206994</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20619&amp;p=206994#p206994"/>
<title type="html"><![CDATA[Re: Timer zamiast Delay_ms w pętli for]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20619&amp;p=206994#p206994"><![CDATA[
Może tak:<br /><br />[syntax=c]static uint8_t tmp = 255;<br />  <br />  while(1)<br />  {<br />      if (!Timer1) {<br />      <br />              Timer1 = 10;<br />              <br />              PORTB = ~(tmp&lt;&lt;1);<br />              <br />              if(!tmp)<br />              {<br />              tmp = 255;<br />              Timer1 = 100;<br />              }<br />      }<br />  }[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2511">Jarecki</a> — 20 kwi 2018, o 12:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wrctomi]]></name></author>
<updated>2018-04-20T10:40:57+01:00</updated>
<published>2018-04-20T10:40:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20619&amp;p=206989#p206989</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20619&amp;p=206989#p206989"/>
<title type="html"><![CDATA[Re: Timer zamiast Delay_ms w pętli for]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20619&amp;p=206989#p206989"><![CDATA[
Przy uint8_t licz;  zapalają się diody wszystkie lecz nie zeruje się. Natomiast jak dam uint16_t to dochodzi tylko do przed ostatniej diody ale z kolei się zeruje? A jak dam bez   licz *= 2; to inaczej zapala. Dodaje bit po bicie wiadomo ale też prawidłowo zeruje.Jak rozwiązać ten licz*=2 ?Bo chcę  efekt jak podałem wcześniej.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 52 minutyach ]</span></strong><br /><br />Dał bym tak ale :<br />[syntax=c]while (1) {<br /><br />if (!Timer1) {<br /><br />licz++;<br />Timer1 = 10;<br />PORTB = licz;<br />//licz *= 2;<br />}<br />if (licz == 1) {<br /><br />PORTB = 0x01;<br /><br />}<br />if (licz == 2) {<br /><br />PORTB = 0x03;<br /><br />}<br /><br />if (licz == 3) {<br /><br />PORTB = 0x07;<br />             licz = 0;<br />Timer1 = 100;<br />}<br />}<br /><br />}[/syntax]<br />itd. Ale znowu ta if-o logia.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17865">wrctomi</a> — 20 kwi 2018, o 10:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2018-04-20T10:17:10+01:00</updated>
<published>2018-04-20T10:17:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20619&amp;p=206988#p206988</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20619&amp;p=206988#p206988"/>
<title type="html"><![CDATA[Re: Timer zamiast Delay_ms w pętli for]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20619&amp;p=206988#p206988"><![CDATA[
a jak ma ci się zerować skoro twoje licz to pewnie typ uint8_t a ty sprawdzasz czy jest większe niż 255. A jaki jest zakres dla uint8_t ? hmm?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 20 kwi 2018, o 10:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wrctomi]]></name></author>
<updated>2018-04-20T09:50:36+01:00</updated>
<published>2018-04-20T09:50:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20619&amp;p=206987#p206987</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20619&amp;p=206987#p206987"/>
<title type="html"><![CDATA[Re: Timer zamiast Delay_ms w pętli for]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20619&amp;p=206987#p206987"><![CDATA[
Bo mam zakodowane z poradników Mirku &quot; pozbyć się obrzydliwych delay-ów &quot; .Czyli można stosować delay_ms  w pętli for? I Dlatego kombinuje jak koń pod górę.A dlaczego nie zeruje się przy 255 w tym przykładzie? I czy mógłby ktoś napisać kod za pomocą pętli for bez delay_ms żeby wyszedł efekt z portu  1, 3, 7, 15, 31, 63, 127, 255.Nie stosując tablicy.<br /><br />[syntax=c]while (1) {<br /><br />if (!Timer1) {<br /><br />licz++;<br />Timer1 = 10;<br />PORTB = licz;<br />licz *= 2;<br /><br />if(licz&gt;255) {<br /><br />PORTB = 0;<br />Timer1 = 100;<br />licz = 0;<br /><br /><br /><br />          }<br />       }<br />   }<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17865">wrctomi</a> — 20 kwi 2018, o 09:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2018-04-20T00:36:42+01:00</updated>
<published>2018-04-20T00:36:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20619&amp;p=206983#p206983</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20619&amp;p=206983#p206983"/>
<title type="html"><![CDATA[Re: Timer zamiast Delay_ms w pętli for]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20619&amp;p=206983#p206983"><![CDATA[
<div class="quotetitle">wrctomi napisał(a):</div><div class="quotecontent"><br />Wiem że można zrobić to tak:<br /></div><br />no to skoro wiesz ? ... to po co pytanie ? ja nie za bardzo rozumiem takiego podejścia - więc jeśli rozjaśnisz to może coś uda się pomóc - bo na razie to nie wiadomo w czym<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 20 kwi 2018, o 00:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2018-04-19T21:44:56+01:00</updated>
<published>2018-04-19T21:44:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20619&amp;p=206980#p206980</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20619&amp;p=206980#p206980"/>
<title type="html"><![CDATA[Re: Timer zamiast Delay_ms w pętli for]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20619&amp;p=206980#p206980"><![CDATA[
Właściwie to co za różnica czy będziesz blokował pętlę delayem czy timerem... Timery stosuje się aby był maksymalnie szybki przelot przez pętlę główną z wykluczeniem fragmentu, zależnego czasowo. W twoim wypadku jak zrozumiałem to dalej blokująca opcja i łatwiej by ją było zrealizować wpisując wartość do timera, np. Timer=100; , a następnie czekać aż odliczy go przerwanie za pomocą while(Timer); . <br />Co chcesz konkretnie osiągnąć?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1922">SylwekK</a> — 19 kwi 2018, o 21:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wrctomi]]></name></author>
<updated>2018-04-19T19:52:18+01:00</updated>
<published>2018-04-19T19:52:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20619&amp;p=206976#p206976</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20619&amp;p=206976#p206976"/>
<title type="html"><![CDATA[Re: Timer zamiast Delay_ms w pętli for]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20619&amp;p=206976#p206976"><![CDATA[
Jest tam kto?<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 27 minutach ]</span></strong><br /><br />Nie wiem czy zadałem głupie pytanie czy trudne ??????<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17865">wrctomi</a> — 19 kwi 2018, o 19:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wrctomi]]></name></author>
<updated>2018-04-19T15:22:05+01:00</updated>
<published>2018-04-19T15:22:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20619&amp;p=206973#p206973</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20619&amp;p=206973#p206973"/>
<title type="html"><![CDATA[Timer zamiast Delay_ms w pętli for]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20619&amp;p=206973#p206973"><![CDATA[
Witam.Mam pytanko jak zastosować Timer w pętli for zamiast  delay_ms().Czy w ogóle można.Z góry dziękuje.Pozdrawiam.<br /><br />[syntax=c]for (i = 0; i &lt; 255; i++) {<br /><br />PORTB = i;<br /><br />_delay_ms(100);          // zamiast delay_ms to &gt;&gt;Timer <br />}<br /><br />if (i==255) {<br />PORTB = 0x00;<br />_delay_ms(1000);   //zamiast delay_ms to &gt;&gt;Timer <br /><br />}[/syntax]<br />Wiem że można zrobić to tak:<br /><br />[syntax=c]while (1) {<br /><br />if (!Timer1) {<br /><br />zmienna++;<br />PORTB = zmienna;<br />                        Timer1 = 1;<br /><br />                if (zmienna == 255) {<br /><br />PORTB = 0x00;<br />zmienna = 0;<br />Timer1 = PAUSE;<br /><br />         }<br />     }<br />  }<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17865">wrctomi</a> — 19 kwi 2018, o 15:22</p><hr />
]]></content>
</entry>
</feed>