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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-10-30T15:58:23+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=4628&amp;mode</id>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-10-30T15:58:23+01:00</updated>
<published>2013-10-30T15:58:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4628&amp;p=54814#p54814</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4628&amp;p=54814#p54814"/>
<title type="html"><![CDATA[Re: instrukcje _delayloop_1(1) i _delayloop_1(2) w I2C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4628&amp;p=54814#p54814"><![CDATA[
<div class="quotetitle">mg101 napisał(a):</div><div class="quotecontent"><br />Co ciekawe to <br />_delay_loop_1(0) powoduje opóźnienie 256x3 cykli zegarowych Maksymalne opóźnienie= &quot;przekręcenie licznika&quot;! (a nie opóźnienie 0, jakby się wydawało)<br /></div><br /><br />Raczej typowe, startuje licznik od zera w dół, dzięki czemu zlicza 256 razy ot tyle <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=54">mirekk36</a> — 30 paź 2013, o 15:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mg101]]></name></author>
<updated>2013-10-30T13:08:33+01:00</updated>
<published>2013-10-30T13:08:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4628&amp;p=54802#p54802</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4628&amp;p=54802#p54802"/>
<title type="html"><![CDATA[Re: instrukcje _delayloop_1(1) i _delayloop_1(2) w I2C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4628&amp;p=54802#p54802"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />...bazują one na zliczaniu pojedynczych taktów zegara<br /></div><br />Dzięki<br />Po rozgryzieniu (tak mi się przynajmniej zdaje) <!-- 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 --> <br />_delay_loop_1(1) powoduje opóźnienie <strong>1x3 cykli zegarowych</strong><br />_delay_loop_1(2) powoduje opóźnienie <strong>2x3 cykli zegarowych</strong><br />....<br />_delay_loop_1(100) powoduje opóźnienie <strong>100x3 cykli zegarowych</strong><br />...<br />_delay_loop_1(255) powoduje opóźnienie <strong>255x3 cykli zegarowych</strong><br />Co ciekawe to <br />_delay_loop_1(0) powoduje opóźnienie <strong>256x3 cykli zegarowych</strong> Maksymalne opóźnienie= &quot;przekręcenie licznika&quot;! (a nie opóźnienie 0, jakby się wydawało)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=683">mg101</a> — 30 paź 2013, o 13:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-10-30T12:23:57+01:00</updated>
<published>2013-10-30T12:23:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4628&amp;p=54800#p54800</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4628&amp;p=54800#p54800"/>
<title type="html"><![CDATA[Re: instrukcje _delayloop_1(1) i _delayloop_1(2) w I2C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4628&amp;p=54800#p54800"><![CDATA[
<div class="quotetitle">mg101 napisał(a):</div><div class="quotecontent"><br />Do szczęścia brakuje mi tylko co robią dokładnie te delaye<br /></div><br /><br />tzn ja nie rozumiem do końca pytania <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> .... jak to co robią ? ... wprowadzają opóźnienia <br /><br />a dokładniej to jest to oczywiście opisane u źródła:<br /><br /><!-- 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 --><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: kilkunastu sekundach ]</span></strong><br /><br />bazują one na zliczaniu pojedynczych taktów zegara<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 30 paź 2013, o 12:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mg101]]></name></author>
<updated>2013-10-30T12:05:39+01:00</updated>
<published>2013-10-30T12:05:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4628&amp;p=54799#p54799</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4628&amp;p=54799#p54799"/>
<title type="html"><![CDATA[Re: instrukcje _delayloop_1(1) i ...loop_1(2) w I2C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4628&amp;p=54799#p54799"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />...Tak to wygląda.<br /></div><br />Dzięki , prawie świta. Do szczęścia brakuje mi tylko co robią dokładnie te delaye . Domyślam się że opóźniają o kilkanaście cykli zegarowych. Na pewno HDEL to 2 razy więcej niż QDEL. Pozostało tylko doprecyzowanie to  &quot;kilkanaście&quot;<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=683">mg101</a> — 30 paź 2013, o 12:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-10-30T11:51:54+01:00</updated>
<published>2013-10-30T11:51:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4628&amp;p=54798#p54798</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4628&amp;p=54798#p54798"/>
<title type="html"><![CDATA[Re: instrukcje _delayloop_1(1) i ...loop_1(2) w I2C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4628&amp;p=54798#p54798"><![CDATA[
<div class="quotetitle">mg101 napisał(a):</div><div class="quotecontent"><br />Skąd program wie jakie urządzenie<br /></div><br /><br />Myślę, że jak koledze odpowiem na to pytanie to inne się same wyjaśnią ...<br /><br />program NIE WIE. <br /><br />Bo niby skąd program ma coś wiedzieć ? To kolega jako programista MUSI WIEDZIEĆ i to przewidzieć. Ja pokazałem prostą implementację, którą na dodatek przygotowałem na konkretne taktowanie 8MHz ...<br /><br />i jak dasz sobie kwarc/taktowanie 16MHz to już koniec - nie będzie działać - trzeba wtedy sięgnąć do tych delayów o które pytasz i je dwukrotnie wydłużyć - żeby działało ...<br /><br />Poza tym przy programowej wersji I2C nawet nie rozpatrujemy za bardzo czy mamy podłączone urządzenie wolne czy szybkie (czyli czy np 100kHz czy 400kHz albo jeszcze szybsze) ....<br /><br />programowa wersja ma po prostu działać - i zwykle dobrze żeby działała przynajmniej 100kHz - chociaż czasem może i wolniej działać bo to zwykle przy foft I2C nie ma żadnego znaczenia - ważne żeby działało<br /><br />Dopiero przy sprzętowym I2C gdzie wspomaga cię moduł sprzętowy procka TWI, można pokusić się o obsługę wolnych czy szybkich urządzeń bo masz pan rejestry nawet do konfiguracji tych prędkości.<br /><br />Tak to wygląda.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 30 paź 2013, o 11:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mg101]]></name></author>
<updated>2013-10-30T12:09:05+01:00</updated>
<published>2013-10-30T11:44:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4628&amp;p=54796#p54796</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4628&amp;p=54796#p54796"/>
<title type="html"><![CDATA[instrukcje _delayloop_1(1) i _delayloop_1(2) w I2C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4628&amp;p=54796#p54796"><![CDATA[
W programowej implementacji I2C  (4.10.2 &quot;niebieska&quot;) bardzo ważne jest <br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">#define QDEL _delay_loop(1)<br />#define HDEL _delay_loop(2)</div>Pierwsza wprowadza opóźnienie o ćwierć przesyłanego bitu, druga o pół.Czyli te &quot;delay-e&quot; tak naprawdę decydują o szybkości transmisji mikrontroler&lt;--&gt; urządzenie I2C <br />W związku z tym mam pytania<br />1. Jak działają w/w &quot;_delay-e&quot;?<br />2. Skąd program wie jakie urządzenie ( &quot;wolne?&quot;, &quot;szybkie?&quot;) podłączone jest do mikrokontrolera?  Program może korzystać tu np. z <div class="codetitle"><b>Code:</b></div><div class="codecontent">#include &lt;avr/io.h&gt;</div>. Ale to chyba za mało informacji dla programu. Przecież są różnie urządzenia I2C.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=683">mg101</a> — 30 paź 2013, o 11:44</p><hr />
]]></content>
</entry>
</feed>