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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2019-04-29T20:06:55+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=24&amp;t=22204&amp;mode</id>
<entry>
<author><name><![CDATA[Daro69]]></name></author>
<updated>2019-04-29T20:06:55+01:00</updated>
<published>2019-04-29T20:06:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22204&amp;p=218569#p218569</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22204&amp;p=218569#p218569"/>
<title type="html"><![CDATA[Re: Mam problem ze zrozumieniem działania?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22204&amp;p=218569#p218569"><![CDATA[
<div class="quotetitle">AKSELINEK napisał(a):</div><div class="quotecontent"><br />if( ++s_cnt==60 ) s_cnt=0; --- czy zmienna s_cnt za każdym razem jak pętla wraca od początku zwiększa się 0 cnt+1 , a jak przeleci 60 razy to się ma wyzerować czy...<br /></div><br />mniej więcej...<br />jeżeli program wejdzie w tego ifa, to najpierw zinkrementuje zmienną 's_cnt', potem sprawdzi czy nie jest czasem równa 60, - jeżeli jest, to wykona wpis '.. =0'.<br />czyli jeżeli wejdzie z wartością '0', to najpierw zmieni na '1', a jeżeli wejdzie z wartością '59', to zmieni na 60 i porównując będzie zmuszona do wykonania ifa.(wyzerowania).<br /><div class="quotetitle">AKSELINEK napisał(a):</div><div class="quotecontent"><br />...nuje się dla 2,5,8,11,14,17<br /><br />czy tak?<br /></div><br />dokladnie tak.<br />widzę po kodzie że masz podlączony wyświetlacz.<br />możesz sprawdzić wypisując resztę z dzielenia różnych liczb przez różne liczby i wyświetlając na ekranie w sąsiedniej pozycji. <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br />pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11549">Daro69</a> — 29 kwi 2019, o 20:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[AKSELINEK]]></name></author>
<updated>2019-04-29T17:04:28+01:00</updated>
<published>2019-04-29T17:04:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22204&amp;p=218561#p218561</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22204&amp;p=218561#p218561"/>
<title type="html"><![CDATA[Re: Mam problem ze zrozumieniem działania?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22204&amp;p=218561#p218561"><![CDATA[
Faktycznie jest to dzielenie dzięki wydaje się to takie proste , ale czy zrozumiałem dobrze że jest to podobne do zapisu:<br /><br />warunek  [syntax=c]if( !(s_cnt%3) ) DS18X20_start_meas( DS18X20_POWER_PARASITE, NULL );[/syntax]<br />wykonuje się dla 0,3,6,9,12,15 itd<br />warunek  [syntax=c]if( 1==(s_cnt%3) ) czujniki_cnt = search_sensors();[/syntax]<br />wykonuje się dla 1,4,7,10,13,16 itd<br />warunek  [syntax=c]if( 2==(s_cnt%3) ) display_temp();[/syntax]<br />wykonuje się dla 2,5,8,11,14,17<br /><br />czy tak?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18152">AKSELINEK</a> — 29 kwi 2019, o 17:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[iTTiny]]></name></author>
<updated>2019-04-29T16:54:58+01:00</updated>
<published>2019-04-29T16:54:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22204&amp;p=218560#p218560</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22204&amp;p=218560#p218560"/>
<title type="html"><![CDATA[Re: Mam problem ze zrozumieniem działania?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22204&amp;p=218560#p218560"><![CDATA[
% to dzielenie modulo <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> -&gt; Bluebook <br /><br />1%3=1<br />2%3=2<br />3%3=0<br />4%3=1<br />...<br />Czyli po prostu reszta z dzielenia.<br /><br />Wysłane z mojego POCOPHONE F1 przy użyciu Tapatalka<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14220">iTTiny</a> — 29 kwi 2019, o 16:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[AKSELINEK]]></name></author>
<updated>2019-04-29T16:56:49+01:00</updated>
<published>2019-04-29T16:39:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22204&amp;p=218558#p218558</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22204&amp;p=218558#p218558"/>
<title type="html"><![CDATA[Mam problem ze zrozumieniem działania?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22204&amp;p=218558#p218558"><![CDATA[
Witam mam pewien problem ze zrozumieniem działania pewnych zapisów języka C.<br />Posłużę się przykładem zasięgniętym z lekcji z zielonej książki  L17_PetitFS_WRITE:<br /><br />[syntax=c]while(1) {<br /><br />if ( int0_flag ) {<br />if( ++s_cnt==60 ) s_cnt=0;<br /><br />if( !(s_cnt%3) ) DS18X20_start_meas( DS18X20_POWER_PARASITE, NULL );<br />if( 1==(s_cnt%3) ) czujniki_cnt = search_sensors();<br />if( 2==(s_cnt%3) ) display_temp();<br /><br />//odczyt 4 bajtów do bufora od adresu 0x01 z pamięci RAM naszego RTC<br />TWI_read_buf( PCF8583_ADDR, 0x01, 4, bufor );<br /><br />sekundy = bcd2dec( bufor&#91;ss&#93; );<br />minuty = bcd2dec( bufor&#91;mm&#93; );<br />godziny = bcd2dec( bufor&#91;hh&#93; );<br /><br />// wyświetlenie czasu na LCD<br />lcd_locate(1,0);<br />if( godziny &lt; 10 ) lcd_str(&quot;0&quot;);<br />lcd_int(godziny);<br />lcd_str(&quot;:&quot;);<br />if( minuty &lt; 10 ) lcd_str(&quot;0&quot;);<br />lcd_int(minuty);<br />lcd_str(&quot;:&quot;);<br />if( sekundy &lt; 10 ) lcd_str(&quot;0&quot;);<br />lcd_int(sekundy);<br />sprintf(czas,&quot;%02i:%02i:%02i&quot;,godziny,minuty,sekundy);<br /><br /><br />if( ts++ == 3 ) {<br />ts=0;<br />PORTD &amp;= ~(1&lt;&lt;PD7);<br />memset(rekord,0,sizeof(rekord));<br />sprintf(rekord,&quot;%s;%s;%s;\r\n&quot;,czas, t1, t2);<br />res = mk_pf_file_append(&amp;fs, &quot;loger.txt&quot;, rekord);<br />PORTD |= (1&lt;&lt;PD7);<br />}<br /><br />int0_flag=0;<br />}<br /><br />}<br />}<br /><br /><br />// procedura obsługi przerwania INT 0<br />ISR( INT0_vect ) {<br />int0_flag = 1;<br /><br />}<br /><br />// procedura obsługi przerwania INT 1<br />ISR( MY_INT_vect ) {<br />int0_flag = 1;[/syntax]<br /><br />Rozumiem że zmienna int0_flag raz na tyknięcię przerwania INT jest ustawiana na 1 dzięki temu jednorazowo jest spełniony warunek  if ( int0_flag )<br />nie wiem czy do końca rozumem dalszy zapis:<br /><br />if( ++s_cnt==60 ) s_cnt=0;  ---  czy zmienna s_cnt   za każdym razem jak pętla wraca od początku zwiększa się 0  cnt+1 , a jak przeleci 60 razy to się ma wyzerować czy tak czy zwiększenie <br />dokonuje się inaczej?<br /><br />A co znaczy zapis %  w kolejnych warunkach: <br /><br />                      [syntax=c]if( !(s_cnt%3) ) DS18X20_start_meas( DS18X20_POWER_PARASITE, NULL );<br />             if( 1==(s_cnt%3) ) czujniki_cnt = search_sensors();<br />             if( 2==(s_cnt%3) ) display_temp();[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18152">AKSELINEK</a> — 29 kwi 2019, o 16:39</p><hr />
]]></content>
</entry>
</feed>