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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-08-03T21:15:45+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=8&amp;t=18939&amp;mode</id>
<entry>
<author><name><![CDATA[xentis]]></name></author>
<updated>2017-08-03T21:15:45+01:00</updated>
<published>2017-08-03T21:15:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18939&amp;p=193010#p193010</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18939&amp;p=193010#p193010"/>
<title type="html"><![CDATA[Re: Programowa implementacja TWI (I2C)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18939&amp;p=193010#p193010"><![CDATA[
Proszę bardzo  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6265">xentis</a> — 3 sie 2017, o 21:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Bystrzacha]]></name></author>
<updated>2017-08-03T20:06:35+01:00</updated>
<published>2017-08-03T20:06:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18939&amp;p=193003#p193003</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18939&amp;p=193003#p193003"/>
<title type="html"><![CDATA[Re: Programowa implementacja TWI (I2C)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18939&amp;p=193003#p193003"><![CDATA[
Dziękuję, w końcu po tygodniowej męczarni ktoś mnie uświadomił.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17681">Bystrzacha</a> — 3 sie 2017, o 20:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xentis]]></name></author>
<updated>2017-08-03T20:01:55+01:00</updated>
<published>2017-08-03T20:01:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18939&amp;p=193002#p193002</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18939&amp;p=193002#p193002"/>
<title type="html"><![CDATA[Re: Programowa implementacja TWI (I2C)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18939&amp;p=193002#p193002"><![CDATA[
opóźnienia wynikają ze standardu I2C/TWI. Specyfikacja mówi wyraźnie 100khz dla starszych standardów, do 400khz dla nowszych.<br />Opóźnienia są właśnie po to by magistrala taktowana była wolniej tak by urządzenia nadążyły, bez opóźnień transfer danych poleciał by z max prędkością jaką procek w danej chwili dysponuje i urządzenia slave by nie nadążyły<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6265">xentis</a> — 3 sie 2017, o 20:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Bystrzacha]]></name></author>
<updated>2017-08-03T19:54:42+01:00</updated>
<published>2017-08-03T19:54:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18939&amp;p=192999#p192999</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18939&amp;p=192999#p192999"/>
<title type="html"><![CDATA[Re: Programowa implementacja TWI (I2C)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18939&amp;p=192999#p192999"><![CDATA[
Bardzo dziękuję już rozumiem dokładnie o co chodzi z tą funkcją _delay_loop_1(). Pozostaje tylko jedno pytanie, dlaczego te 2 opóźnienia muszą tyle wynosić, czy jest to związane z czasem wykonania się funkcji I2C_START (bluebook)?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17681">Bystrzacha</a> — 3 sie 2017, o 19:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xentis]]></name></author>
<updated>2017-08-03T19:36:55+01:00</updated>
<published>2017-08-03T19:36:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18939&amp;p=192996#p192996</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18939&amp;p=192996#p192996"/>
<title type="html"><![CDATA[Re: Programowa implementacja TWI (I2C)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18939&amp;p=192996#p192996"><![CDATA[
przecież masz odpowiedź w przetoczonym linku:<br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />void _delay_loop_1 ( uint8_t  __count) <br /><br />Delay loop using an 8-bit counter __count, so up to 256 iterations are possible. (The value 256 would have to be passed as 0.) The loop executes three CPU cycles per iteration, not including the overhead the compiler needs to setup the counter register.<br /><br />Thus, at a CPU speed of 1 MHz, delays of up to 768 microseconds can be achieved.<br /></div><br />Czyli do generowania opóźnienia tworzony jest licznik 8 bitowy który zlicza w dół od wartości przekazanej do funkcji. A każde tyknięcie licznika zajmuje 3 takty zegara uC. Aby przeliczyć opóźnienie musisz policzyć ile trwa jeden takt zegara uC przy danym taktowaniu i pomnożyć przez 3. Przykład masz w ostatniej linijce cytatu tyle że dla 1Mhz i przy maksymalnej wartości przekazanej do funkcji, słowem mówiąc maksymalne możliwe opóźnienie które można wygenerować tą funkcją na danym taktowaniu, a że możliwych jest 256 iteracji to minimalny czas opóźnienia możliwy do wygenerowania to 768/256=3us - oczywiście przy 1Mhz<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6265">xentis</a> — 3 sie 2017, o 19:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Bystrzacha]]></name></author>
<updated>2017-08-03T18:53:00+01:00</updated>
<published>2017-08-03T18:53:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18939&amp;p=192994#p192994</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18939&amp;p=192994#p192994"/>
<title type="html"><![CDATA[Re: Programowa implementacja TWI (I2C)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18939&amp;p=192994#p192994"><![CDATA[
Przepraszam jestem dopiero od dzisiaj na forum.<br />Dzięki <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17681">Bystrzacha</a> — 3 sie 2017, o 18:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Piotrek_P]]></name></author>
<updated>2017-08-03T18:42:24+01:00</updated>
<published>2017-08-03T18:42:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18939&amp;p=192993#p192993</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18939&amp;p=192993#p192993"/>
<title type="html"><![CDATA[Re: Programowa implementacja TWI (I2C)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18939&amp;p=192993#p192993"><![CDATA[
Koledze się chyba działy forum pomyliły <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":-)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=290">Piotrek_P</a> — 3 sie 2017, o 18:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Bystrzacha]]></name></author>
<updated>2017-08-03T18:18:02+01:00</updated>
<published>2017-08-03T18:18:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18939&amp;p=192992#p192992</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18939&amp;p=192992#p192992"/>
<title type="html"><![CDATA[Programowa implementacja TWI (I2C)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18939&amp;p=192992#p192992"><![CDATA[
Witam, <br />niedawno skończyłem czytać rozdział o programowej implementacji I2C(bluebook). Jest jedna część kodu której nie mogę zrozumieć, mianowicie:<br /><br />// i2c opóźnienie ćwierć bitu<br />#define QDEL    _delay_loop_1(1)<br />// i2c opóźnienie pół bitu<br />#define HDEL    _delay_loop_1(2)<br /><br />Oto moje pytania:<br />1. Jaki rozmiar ma ćwierć bit i pół bit, przy taktowaniu 8MHz?<br />2. Jak dział mechanizm funkcji _delay_loop_1(), bo czytałem artykuł odnośnie tej funkcji, ale mało rozumiem( <!-- m --><a class="postlink" href="http://www.nongnu.org/avr-libc/user-manual/group__util__delay__basic.html" >http://www.nongnu.org/avr-libc/user-man ... basic.html</a><!-- m --> ). Według mnie funkcja działa w ten sposób:<br /><br />_delay_loop_1(2)    przy 8MHz  --&gt;  (1/8000000)×3×2 = 7,5×10^-7 sekundy<br /><br />3. Czy można by było zamiast takich opóźnień zastosować prostą funkcję _delay_ms(), a jeżeli nie to dlaczego?<br /><br />Pozdrawiam <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17681">Bystrzacha</a> — 3 sie 2017, o 18:18</p><hr />
]]></content>
</entry>
</feed>