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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-12-13T12:54:15+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=2339&amp;mode</id>
<entry>
<author><name><![CDATA[fobos]]></name></author>
<updated>2016-12-13T12:54:15+01:00</updated>
<published>2016-12-13T12:54:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2339&amp;p=177367#p177367</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2339&amp;p=177367#p177367"/>
<title type="html"><![CDATA[Re: I2C - Już  czuję TWI_start() rozdz. 5.9.1 z &quot;niebieskiej]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2339&amp;p=177367#p177367"><![CDATA[
No nie mogłem się powstrzymać chęć postawienia kropki wygrała:<br />1.Wartością początkową TWIN w rejestrze TWCR jest 1<br /><br />2.SET BIT-y TWINT, TWEN, TWSTA;          TWCR = (1&lt;&lt;TWINT) |(1&lt;&lt;TWEN) | (1&lt;&lt;TWSTA): <br />TWEN 1 -&gt; włacz TWI<br />TWSTA 1 -&gt;wyślij sekwencję startową jeżeli linie są wolne (stan H) <br />TWINT 1 -&gt; i to słynne masło.. należy ustawić 1 żeby wyzerować czyli:<br />SET TWINT, startuje TWI wykonując CLR TWINT <br /><br />3.Pętlunia       while (!(TWCR &amp; (1&lt;&lt;TWINT))); <br />dba o to by chwila trwała tyle ile trzeba, tak długo jak długo TWINT=0 inaczej mówiąc dokładnie tak długo dopóki nie zostanie WYSŁANA sekwencja START<br /><br />4. Sekwencja START nadana TWINT 1 koniec pętli while i koniec działania funkcji START.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7548">fobos</a> — 13 gru 2016, o 12:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[fobos]]></name></author>
<updated>2016-12-13T00:21:27+01:00</updated>
<published>2016-12-13T00:21:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2339&amp;p=177313#p177313</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2339&amp;p=177313#p177313"/>
<title type="html"><![CDATA[Re: I2C - Już  czuję TWI_start() rozdz. 5.9.1 z &quot;niebieskiej]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2339&amp;p=177313#p177313"><![CDATA[
Ja cie sune ale kwiatki, znowu kolega mig101 odwalił kawał logiki, która jest opisana w pdf ale jakże inaczej, powinno być tak:<br />1. najpierw to co napisał mg101, <br />2. a następnie pdf.<br />Należy się pomógł ale nie widzę przycisku - jeżeli to możliwe admina proszę o przyciśnięcie za mnie.<br /><br />Dzięki mg101 i Mirek &quot;.. że w AVR'ach najczęściej kasowanie bitu w jakimś rejestrze flag odbywa się przez wpisanie do niego jedynki właśnie, pomimo że siedzi w nim jedynka ..&quot;<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7548">fobos</a> — 13 gru 2016, o 00:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-02-13T19:48:51+01:00</updated>
<published>2013-02-13T19:48:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2339&amp;p=27961#p27961</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2339&amp;p=27961#p27961"/>
<title type="html"><![CDATA[Re: I2C - Już  czuję TWI_start() rozdz. 5.9.1 z &quot;niebieskiej]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2339&amp;p=27961#p27961"><![CDATA[
no tak ale to już kolega wiedział też z innych tematów <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .... wałkujemy już troszkę temat, że w AVR'ach najczęściej kasowanie bitu w jakimś rejestrze flag odbywa się przez wpisanie do niego jedynki właśnie, pomimo że siedzi w nim jedynka. Po cóż się zastanawiać więc jak to jest - że skoro jest jedynka to muszę wpisać jedynkę żeby wyzerować albo jak to działa w procku - skoro to już jest hardware jego wnętrza. Tak ma być i już.<br /><br />Więc proszę pamiętać za chwilę przy przerabianiu kolejnych modułów, że będą identyczne sytuacje z kasowaniem tych bitów w rejestrach flag <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> — 13 lut 2013, o 19:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mg101]]></name></author>
<updated>2013-02-13T18:44:48+01:00</updated>
<published>2013-02-13T18:44:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2339&amp;p=27948#p27948</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2339&amp;p=27948#p27948"/>
<title type="html"><![CDATA[I2C - Już  czuję TWI_start() rozdz. 5.9.1 z &quot;niebieskiej&quot;!]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2339&amp;p=27948#p27948"><![CDATA[
We wcześniejszym wątku &quot;I2C - Nie  czuję TWI_start() rozdz. 5.9.1 z &quot;niebieskiej&quot; &quot; nie mogłem zrozumieć tego kawałka[syntax=c]TWI_start(void) {<br />     TWCR = (1&lt;&lt;TWINT) |(1&lt;&lt;TWEN) | (1&lt;&lt;TWSTA);  // Tu &quot;zeruję&quot; TWINT<br />     while (!(TWCR &amp; (1&lt;&lt;TWINT))); // Tu czekam aż TWINT=1, co oznacza że udał się start<br />}[/syntax]W pierwszej chwili wydaje się , że jak wpisałem 1 do TWINT-a w pierwszej linijce, to druga jest niepotrzebna, bo program zawsze ją obejdzie.  Tak jak np. w poniższym kawałku, while(...) też jest niepotrzebne.[syntax=c]x = 5;<br />while (!(x==5);[/syntax]Dodatkowo przy opisie TWI_start() na str 279 nie mogłem zrozumieć zdania z pdfu dokumentacji ATMELA32 <div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Wyzerowanie (bitu TWIN - dop. autora) polega na ustawieniu tego bitu na 1<br /></div> Dla mnie to brzmiało tak jak np &quot;zgaszenie lampki polega na jej zapaleniu&quot;   itd. <br /><strong>W końcu zacząłem szperać w literaturze i doszedłem do wniosku że </strong> że ten tekst <div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Wyzerowanie (bitu TWIN - dop. autora) polega na ustawieniu tego bitu na 1<br /></div> jest skrótem czegoś takiego.<strong>Słońce zaświeciło i wszystko stało się jasne i logiczne!</strong><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />- wartością początkową TWIN w rejestrze TWCR jest 0<br />- wpisanie 1 do TWIN powoduje, że zostaje zapoczątkowany ciąg zdarzeń określony przez wpisanie pozostałych jedynek do TWEN i i TWSTA --&gt;zostanie przeprowadzona akcja startu I2C.<strong>Najważniejsze - Na początku następnej instrukcji tj while(...) bit TWINT zostanie wyzerowany!</strong> I to jest to że &quot;wpisanie 1 do TWINT-a powoduje jego wyzerowanie!&quot;<br />- Gdy ponownie TWINT = 1 to oznacza , że proces startu został przeprowadzony prawidłowo! Program przejdzie while(...) i będzie robił swoje<br /></div> <strong>Proszę zauważyć,że</strong> teraz TWINT=1. Chcąc zapoczątkować inną akcję np <strong>TWI_write(znak)</strong> należy ponownie wpisać 1 do TWINT-a (chociaż jest w nim 1!). Znowu rozpocznie się ciąg zdarzeń który wpisze znak do czegoś tam. Też z TWINT-a zrobi się 0 i ponownie 1, gdy znak zostanie gdzieś wpisany.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=683">mg101</a> — 13 lut 2013, o 18:44</p><hr />
]]></content>
</entry>
</feed>