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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-11-04T19:31:25+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=58&amp;t=13379&amp;mode</id>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2015-11-04T19:31:25+01:00</updated>
<published>2015-11-04T19:31:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=144384#p144384</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=144384#p144384"/>
<title type="html"><![CDATA[Re: DS1307 TWI - nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=144384#p144384"><![CDATA[
<div class="quotetitle">Zagatka napisał(a):</div><div class="quotecontent"><br />Czyli co, za każdym razem nawet do prostych testów mam wytrawiać płytkę? xD...<br /></div><br /><br />nie wystarczy sobie z robić testową z np tzw płytki sitko ... czyli wiercona universalna<br /><br /><img src="http://sklep.jabel.com.pl/upload/images/products/big/229_0.jpg" alt="Obrazek" /><br /><br />albo zaopatrzyć się w gotowe moduły łączone przewodami , lub najlepsze rozwiązanie <br />zakupić zestaw testowy , np ATB 1.4<br /><br /><!-- m --><a class="postlink" href="https://www.sklep.atnel.pl/pl/p/Zestaw-uruchomieniowy-AVR-LIBRA/2" >https://www.sklep.atnel.pl/pl/p/Zestaw- ... VR-LIBRA/2</a><!-- m --><br /><br />oszczędzisz sobie nerwów i siwych włosów <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=58">SunRiver</a> — 4 lis 2015, o 19:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Zagatka]]></name></author>
<updated>2015-11-04T18:01:54+01:00</updated>
<published>2015-11-04T18:01:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=144375#p144375</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=144375#p144375"/>
<title type="html"><![CDATA[Re: DS1307 TWI - nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=144375#p144375"><![CDATA[
Czyli co, za każdym razem nawet do prostych testów mam wytrawiać płytkę? xD...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10909">Zagatka</a> — 4 lis 2015, o 18:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[marmur]]></name></author>
<updated>2015-11-04T10:49:15+01:00</updated>
<published>2015-11-04T10:49:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=144344#p144344</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=144344#p144344"/>
<title type="html"><![CDATA[Re: DS1307 TWI - nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=144344#p144344"><![CDATA[
<div class="quotetitle">Zagatka napisał(a):</div><div class="quotecontent"><br />Stykówka?<br /></div><br /><br /><br />Niestety w 99,9% to jest przyczyna Twojego problemu... Sam posiadam stykówkę marnej jakości z chin i czasami lubi płatać figle....<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10570">marmur</a> — 4 lis 2015, o 10:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Zagatka]]></name></author>
<updated>2015-11-04T09:39:59+01:00</updated>
<published>2015-11-04T09:39:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=144336#p144336</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=144336#p144336"/>
<title type="html"><![CDATA[Re: DS1307 TWI - nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=144336#p144336"><![CDATA[
<strong>Błagam, niech mi ktoś wyjaśni, dlaczego BEZ ŻADNYCH ZMIAN z kodzie i połączeniach zaczęło to działać!!!</strong> Co mogło być tego przyczyną ?! Stykówka? <br /><br /><a href="https://obrazkiforum.atnel.pl/10909/6dc45307c261d805caa61dee6aec9347.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/10909/6dc45307c261d805caa61dee6aec9347.png" alt="Obrazek" /></a><br /><br />Bo teraz boję się, że tak jak nagle zaczeło działać, tak nagle może przestać...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10909">Zagatka</a> — 4 lis 2015, o 09:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Zagatka]]></name></author>
<updated>2015-11-03T23:49:00+01:00</updated>
<published>2015-11-03T23:49:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=144324#p144324</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=144324#p144324"/>
<title type="html"><![CDATA[Re: DS1307 TWI - nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=144324#p144324"><![CDATA[
Dalej nic.<br />Zasilam z 5V.<br /><br />Jedyne połączenia:<br />GND - do GND<br />5V - do Vcc<br />SCL - do PC5<br />SDA - do PC4<br /><br />Sprawdzone omomierzem przy odłączonym zasilaniu jest 4,7k pomiędzy SCL a Vcc oraz SDA a Vcc.<br /><br />Po sekwencji startu status: 0xF8. Czyli to by sygnalizowało problemy ze sprzętem. Ale z drugiej strony na Arduino działa. Chyba się poddaję z tym modułem.<br /><br /><span style="color: #FF0000">Źle wstawiony obrazek - Różowo-Zielony J.</span><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10909">Zagatka</a> — 3 lis 2015, o 23:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2015-10-30T21:36:42+01:00</updated>
<published>2015-10-30T21:36:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143846#p143846</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143846#p143846"/>
<title type="html"><![CDATA[Re: DS1307 TWI - nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143846#p143846"><![CDATA[
Mój kod nie był pisany / sprawdzany na DS1307 tylko dla DS3231, więc nie ma tam dodatkowej inicjalizacji. Ale bez zmiany (wykasowania) bitu CH, odczyt i zapis będzie Ci działał, a tylko czas nie będzie płynął <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />.<br /><br />Co do TWI_read_buf, to we wklejonej wersji programu jest warunkowe kompilowane i jak jest zdefiniowany DEBUG, to program nie korzysta on z funkcji TWI_read_buf tylko z cząstkowych funkcji TWI.<br /><br />Status 0xF8 jest zwracany gdy nie jest są wykonywane żadne operacje na TWI.<br /><br />Tak poprawna jest wartość TWBR = 32 przy 8MHz, gdy szyna TWI ma pracować z 100kHz.<br /><br />Czy zasilasz układ z 5V czy 3.3V? Bo DS1307 jest 5V only.<br /><br /><span style="color: #80BF00">Edit:</span><br />TWI / I2C jest szyną z przysyłającą w czasie wymiany jednego bajtu 9 bitów, z czego 8 bitów idzie w jedną stronę a na ostatnim dziewiątym jest potwierdzenia ACK (lub go nie ma).<br />Jak adresujesz to wysyłasz także daną 8 bitową z czego najmłodszy bit to znacznik czy to jest adresowanie do zapisu czy odczytu. U Ciebie to są adresy:<br />- zapis = 208 = 0xD0 = 0b11010000<br />- odczyt = 209 = 0xD1 = 0b11010001 <br />Mimo, iż wiadomo o tym że adres do odczytu ma być o 1 większy niż do zapisu, to często jest on także podawany w datasheetach.<br />Ja w swoich funkcjach mam zawsze podawanie adresu podstawowego (do zapisu) a przy adresowaniu odczytu ustawiam dodatkowo najmłodszy bit (addr | 0x01).<br /><br />Bit CH kasujesz jak wpisujesz czas, bo to jest bit w rejestrze sekund. Więc albo masz poprawny czas, bo jest podtrzymanie baterią i masz skasowany bit i działający oscylator, albo musisz wpisać poprawny czas co automatycznie wyzeruje Ci bit CH  <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" />.<br /><br />-- <br />Pozdrawiam,<br />Robert<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 30 paź 2015, o 21:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Zagatka]]></name></author>
<updated>2015-10-30T21:19:57+01:00</updated>
<published>2015-10-30T21:19:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143839#p143839</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143839#p143839"/>
<title type="html"><![CDATA[Re: DS1307 TWI - nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143839#p143839"><![CDATA[
rskup - nie działa <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> A mam wszystko to samo tylko zamiast <div class="codetitle"><b>Code:</b></div><div class="codecontent">TWI_read_buf(208, 0, 7, (uint8_t *)&amp;odczyt);</div> osobno wczytywanie po kolei<br /><br />Rezystory są na płytce.<br />Na Arduino wszystko śmiga (gdzie ktoś mądry za mnie wszystko napisał <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" />) - udało się zmienić czas, wyświetlają się ładnie godziny w terminalu oraz komunikaty o poprawności komunikacji. <br />Więc wydaje mi się, że w programie coś mieszam.<br /><br />Wogóle nie ogarniam, bo dziś np. w funkcji Start po <br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">TWCR = (1&lt;&lt;TWINT) | (1&lt;&lt;TWSTA)| (1&lt;&lt;TWEN);</div><br />jest status 0xF8 ... A jeszcze wczoraj było 0x08.  Hehe. Oprócz tego program nigdy nie wychodzi z while(!(TWCR&amp;(1&lt;&lt;TWINT))); w funkcji Start.<br /><br /><br />Ale ogólnie pomijając to wszystko mam jeszcze kilka pytań. Proszę o zweryfikowanie poprawności tych stwierdzeń:<br />1) Jeśli mam taktowanie 8MHz, to zamiast funkcji i2cSetBitrate(100); mogę napisać poprostu (zgodnie ze wzorem z noty katalogowej) TWBR = 32; (preskaler jest domyślnie po resecie ustawiony na 1).<br />2) Chodzi podawanie adresu slave'a do zapisu/odczytu ( TWI_write(208); / TWI_write(209);). W TWI &quot;format danych&quot; jest 9 bitowy (z tego ostatni bit ACK/NACK). A 208 / 209 to 7-bitowy adres. Czy nie powinno się podawać zamiast tego 0b11010000 / 0b11010001 (8 bitów zamiast 7)? (Żeby nie było: na oba sposoby mi nie działa)<br />3) Inicjalizacja DS1307 - <strong>rskup</strong>, we wklejonym przez Ciebie kodzie nie ma &quot;nic na ten temat&quot;. A w nocie DS'a piszą, żeby ustawić bit CH=0 (co miało niby być w mojej funkcji DS1307_init() ). Szukam w kodach tych bibliotek Arduino, ale oni też tam tego nie robią ...<br /><br />Btw. serdeczne dzięki za zainteresowanie i za pomoc <img src="https://forum.atnel.pl/images/smilies/icon_exclaim.gif" alt=":!:" title="Wykrzyknik" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10909">Zagatka</a> — 30 paź 2015, o 21:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[lobowilk]]></name></author>
<updated>2015-10-30T18:52:46+01:00</updated>
<published>2015-10-30T18:52:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143821#p143821</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143821#p143821"/>
<title type="html"><![CDATA[Re: DS1307 TWI - nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143821#p143821"><![CDATA[
<div class="quotetitle">rskup napisał(a):</div><div class="quotecontent"><br />Jak nie masz to proponuję od początku sprawdzić czy na pewno jest wszystko ok pod względem podłączenia.<br /><strong>Czy rezystory podciągające były już na płytce czy ty dawałeś?</strong> Nie pomyliłeś ze sobą linii SDA z SCL?<br /><br />Najlepiej zrób schemat typu &quot;spis z natury&quot; nie sugerując się tym co powinno być tylko jak jest i wstaw go tutaj (nie opisuj nazwami pinów i  przy robieniu schematu nie sprawdzaj jak powinno być, tylko daj ich fizyczne numery by się niczym nie sugerować). Schemat zrób na zwykłej kartce i wstaw zdjęcie.<br />Jak nie masz to proponuję od początku sprawdzić czy na pewno jest wszystko ok pod względem podłączenia.<br /></div><br /><br />spróbuj tak jak kolega napisał ja się kiedyś męczyłem bo rezystory podciągające miały jakąś przerwę.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11382">lobowilk</a> — 30 paź 2015, o 18:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2015-10-30T16:56:25+01:00</updated>
<published>2015-10-30T16:56:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143817#p143817</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143817#p143817"/>
<title type="html"><![CDATA[Re: DS1307 TWI - nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143817#p143817"><![CDATA[
Twój program w wersji działającej (sprawdzone <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />) po połączeniu kodu w jeden plik i wykorzystywaniu bibliotek Mirka wygląda następująco (jak nie będzie Ci działał w takiej wersji to szukaj problemu tylko w sprzęcie):[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#include &quot;i2c_twi/i2c_twi.h&quot;<br />#include &quot;USART/mkuart.h&quot;<br /><br />#define DEBUG<br /><br />typedefstruct<br />{<br />uint8_t sek;<br />uint8_t min;<br />uint8_t godz;<br />uint8_t dzient;<br />uint8_t dzien;<br />uint8_t mies;<br />uint8_t rok;<br />} czas;<br /><br />int main(void)<br />{<br />czas odczyt;<br /><br />USART_Init ( __UBRR );<br />i2cSetBitrate(100);<br />sei();<br /><br />while(1)<br />{<br />#ifdef DEBUG<br />TWI_start();//start<br />if ((TWSR &amp; 0xF8) != 0x08) uart_puts(&quot;START ERROR\r\n&quot;);<br />TWI_write(208);//adres układu slave<br />if ((TWSR &amp; 0xF8) != 0x18) uart_puts(&quot;ADRES WR ERROR\r\n&quot;);<br />TWI_write(0);//adres (rejestr), od ktorego czytamy<br />if ((TWSR &amp; 0xF8) != 0x28) uart_puts(&quot;WRITE 1 ERROR\r\n&quot;);<br />TWI_start();    //powtorzony start<br />if ((TWSR &amp; 0xF8) != 0x10) uart_puts(&quot;RESTART ERROR\r\n&quot;);<br />TWI_write(209);//adres układu slave<br />if ((TWSR &amp; 0xF8) != 0x40) uart_puts(&quot;ADRES RD ERROR\r\n&quot;);<br />odczyt.sek = TWI_read(1);<br />if ((TWSR &amp; 0xF8) != 0x50) uart_puts(&quot;READ 1 ERROR\r\n&quot;);<br />odczyt.min = TWI_read(1);<br />if ((TWSR &amp; 0xF8) != 0x50) uart_puts(&quot;READ 2 ERROR\r\n&quot;);<br />odczyt.godz = TWI_read(1);<br />if ((TWSR &amp; 0xF8) != 0x50) uart_puts(&quot;READ 3 ERROR\r\n&quot;);<br />odczyt.dzient = TWI_read(1);<br />if ((TWSR &amp; 0xF8) != 0x50) uart_puts(&quot;READ 4 ERROR\r\n&quot;);<br />odczyt.dzien =TWI_read(1);<br />if ((TWSR &amp; 0xF8) != 0x50) uart_puts(&quot;READ 5 ERROR\r\n&quot;);<br />odczyt.mies = TWI_read(1);<br />if ((TWSR &amp; 0xF8) != 0x50) uart_puts(&quot;READ 6 ERROR\r\n&quot;);<br />odczyt.rok = TWI_read(0);<br />if ((TWSR &amp; 0xF8) != 0x58) uart_puts(&quot;READ 7 ERROR\r\n&quot;);<br />TWI_stop();<br />#else<br />TWI_read_buf(208, 0, 7, (uint8_t *)&amp;odczyt);<br />#endif<br />uart_putc((odczyt.godz &gt;&gt; 4) + 48);<br />uart_putc((odczyt.godz &amp; 0x0F) + 48);<br />uart_putc(':');<br />uart_putc((odczyt.min &gt;&gt; 4) + 48);<br />uart_putc((odczyt.min &amp; 0x0F) + 48);<br />uart_putc(':');<br />uart_putc((odczyt.sek &gt;&gt; 4) + 48);<br />uart_putc((odczyt.sek &amp; 0x0F) + 48);<br />uart_putc(0x0d);<br />uart_putc(0x0a);<br />_delay_ms(1000);<br />}<br />}[/syntax]<br /><br />-- <br />Pozdrawiam,<br />Robert<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 30 paź 2015, o 16:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Zagatka]]></name></author>
<updated>2015-10-29T22:32:00+01:00</updated>
<published>2015-10-29T22:32:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143763#p143763</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143763#p143763"/>
<title type="html"><![CDATA[Re: DS1307 TWI - nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143763#p143763"><![CDATA[
Nowe wieści: udało mi się pożyczyć Arduino Leonardo. Moduł RTC podłączony został następująco: SCL oraz SDA do pinów SCL i SDA na Arduino, GND do GND na Arduino i 5V do 5V do Arduino (czyli tak samo jak do Atmegi - w Atmedze był podłączona odpowiednio do PC4 i PC5). Biblioteka do Arduino: DS1307RTC. Następuje poprawna komunikacja, odczyt i zapis danych do RTC. <br /><br />Już nic nie wiem z tego wszystkiego  <img src="https://forum.atnel.pl/images/smilies/icon_rolleyes.gif" alt=":roll:" title="Udaje, że to nie on" /> . Jutro trzeba na spokojnie usiąść i to przeanalizować...<br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />W zamianie na hexa aby wyświetlać cały zakres poprawnie musisz jeszcze sprawdzić czy przekroczyłeś 9 i wtedy dodać zamiast 48 to 55, np. na szybko<br /></div><br /><br />Dzięki, przydatne.  <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=10909">Zagatka</a> — 29 paź 2015, o 22:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2015-10-29T18:22:08+01:00</updated>
<published>2015-10-29T18:22:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143715#p143715</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143715#p143715"/>
<title type="html"><![CDATA[Re: DS1307 TWI - nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143715#p143715"><![CDATA[
Status 0x20 na adresowanie oznacza, że nie ma odpowiedzi na i2c (TWI) ze slave.<br />Masz może jakiś inny układ mający i2c? Podłączając go możesz szybko potwierdzić że na pewno jest to problem z DS1307.<br /><br />Jak nie masz to proponuję od początku sprawdzić czy na pewno jest wszystko ok pod względem podłączenia.<br />Czy rezystory podciągające były już na płytce czy ty dawałeś? Nie pomyliłeś ze sobą linii SDA z SCL?<br /><br />Najlepiej zrób schemat typu &quot;spis z natury&quot; nie sugerując się tym co powinno być tylko jak jest i wstaw go tutaj (nie opisuj nazwami pinów i  przy robieniu schematu nie sprawdzaj jak powinno być, tylko daj ich fizyczne numery by się niczym nie sugerować). Schemat zrób na zwykłej kartce i wstaw zdjęcie.<br /><br />W zamianie na hexa aby wyświetlać cały zakres poprawnie musisz jeszcze sprawdzić czy przekroczyłeś 9 i wtedy dodać zamiast 48 to 55, np. na szybko<div class="codetitle"><b>Code:</b></div><div class="codecontent">USART_transmit((status &gt;&gt; 4)&gt;9?(status &gt;&gt; 4)+55:(status &gt;&gt; 4)+48));<br />USART_transmit((status &amp; 0x0f)&gt;9?(status &amp; 0x0f)+55:(status &amp; 0x0f)+48);</div><br /><br />-- <br />Pozdrawiam,<br />Robert<br /><br />PS. Sprawdź czy na pewno masz ten tytułowy układ, bo może to jest jakaś inna wersja z innym adresem <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=3427">rskup</a> — 29 paź 2015, o 18:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Zagatka]]></name></author>
<updated>2015-10-29T16:06:31+01:00</updated>
<published>2015-10-29T16:06:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143700#p143700</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143700#p143700"/>
<title type="html"><![CDATA[Re: DS1307 TWI - nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143700#p143700"><![CDATA[
TWI_stop mam poprawne.<br /><br />ok, napisałam na szybko taką funkcję:<br /><br />[syntax=c]void wyswietl_TWSR(void)<br />{<br />uint8_t status = TWSR &amp; 0xF8;<br />USART_transmit_string(&quot;0x&quot;);<br />USART_transmit((status &gt;&gt; 4)+48);<br />USART_transmit((status &amp; 0x0f)+48);<br />USART_transmit(0x0d);<br />USART_transmit(0x0a);<br />_delay_ms(1000);<br />}[/syntax]<br /><br />Oto wyniki (wstawiając tą funkcję po kolei po każdym z tych poleceń):<br /><br />[syntax=c]void DS1307_init(void)<br />{<br />TWI_init(); //wyswietl_TWSR(); - wyswietla 0x?8<br />TWI_start();  //wyswietl_TWSR(); - wyswietla 0x08<br /><br />TWI_write(208); //wyswietl_TWSR();  - wyswietla 0x20<br /><br />TWI_write(7);  //wyswietl_TWSR(); - wyswietla 0x20<br />TWI_write(0x10); //wyswietl_TWSR(); - wyswietla 0x30<br /><br />TWI_stop();<br /><br /><br />TWI_start(); //wyswietla 0x08<br />TWI_write(208); //wyswietla 0x20<br />TWI_write(0);<br /><br />TWI_write(0x00); //wyswietla 0x30<br />TWI_stop(); //wyswietla 0x?8<br />}[/syntax]<br /><br /><a href="https://obrazkiforum.atnel.pl/10909/f7835ecd9032cf653a0e0dfffdfec766.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/10909/f7835ecd9032cf653a0e0dfffdfec766.png" alt="Obrazek" /></a><br /><br />Co ciekawe - jednak &quot;NOT ACK has been received&quot;, nie wiem czemu wcześniej przy ERROR mi tego nie wyświetlało... <br /><br />0x?8 to jest 0xF8 (kwestia przeliczania na ASCII...) czyli &quot;No relevant state information<br />available; TWINT = “0” &quot;. No TWDR action.<br /><br />Czyli jakieś błędy w połączeniach? Kwarc mam przylutowany przez producenta modułu (kwarc 32.768khz)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10909">Zagatka</a> — 29 paź 2015, o 16:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2015-10-29T12:14:09+01:00</updated>
<published>2015-10-29T12:14:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143650#p143650</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143650#p143650"/>
<title type="html"><![CDATA[Re: DS1307 TWI - nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143650#p143650"><![CDATA[
Ale błąd był w funkcji TWI_Stop <a href="http://www.atnel.pl/i2c_twi_lib_stop_error.html"  class="postlink">http://www.atnel.pl/i2c_twi_lib_stop_error.html</a>, a kolega jeszcze nie doszedł do tego, bo wiesza mu się na pierwszym TWI_Read<div class="codetitle"><b>Code:</b></div><div class="codecontent">odczyt.sek = TWI_read(1);<br />//Tu się zawiesza!<br />odczyt.min = TWI_read(1);</div><br /><br />-- <br />Pozdrawiam,<br />Robert<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 29 paź 2015, o 12:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wat1970]]></name></author>
<updated>2015-10-29T10:01:21+01:00</updated>
<published>2015-10-29T10:01:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143625#p143625</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143625#p143625"/>
<title type="html"><![CDATA[Re: DS1307 TWI - nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143625#p143625"><![CDATA[
Jeśli używasz biblioteki TWI Mirka z książki to zwróć uwagę na stronie Mirka jest errata do tej biblioteki. Bez uwzględnienia erraty nie zagadasz poprawnie z DS1307 bo TWI się będzie właśnie wieszał <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=2179">wat1970</a> — 29 paź 2015, o 10:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2015-10-28T21:37:36+01:00</updated>
<published>2015-10-28T21:37:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143590#p143590</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143590#p143590"/>
<title type="html"><![CDATA[Re: DS1307 TWI - nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143590#p143590"><![CDATA[
Jak masz działający RS232 to wysyłaj na niego wartości statusów jakie masz po każdej operacji TWI (zaczynając od startu). Zobaczymy co według avr-a się dzieje na TWI i będzie można coś więcej powiedzieć. Bo na pewno coś jest nie tak <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br />Czy po stronie DS-a masz poprawnie podłączony kwarc (i o dobrej wartości)?<br /><br />-- <br />Pozdrawiam,<br />Robert<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 28 paź 2015, o 21:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Zagatka]]></name></author>
<updated>2015-10-28T21:12:48+01:00</updated>
<published>2015-10-28T21:12:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143584#p143584</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143584#p143584"/>
<title type="html"><![CDATA[Re: DS1307 TWI - nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143584#p143584"><![CDATA[
0x20 również nie odczytuje (ERROR się aktywuje) <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br />Połączenia powinny być dobre, mam gotowy moduł z kwarcem, baterią itp. ma jedynie wyprowadzenia GND, 5V, SDA, SCL, SQW.<br />Mam podłączone do niego zasilanie oraz SDA - do SDA i SCL do SCL w procku. Sam procek też jest poprawnie podłączony (dioda działa, UART działa - jeśli wrzucę sobie do niego chociażby jakąś literkę/string). <br />Cały dzień dzisiaj się w to wgapiam i nic <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> Funkcje TWI_start(), TWI_stop() itd. takie same jak w datasheecie / BB. Co mogę jeszcze sprawdzić?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10909">Zagatka</a> — 28 paź 2015, o 21:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2015-10-28T20:59:38+01:00</updated>
<published>2015-10-28T20:59:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143579#p143579</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143579#p143579"/>
<title type="html"><![CDATA[Re: DS1307 TWI - nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143579#p143579"><![CDATA[
Brak ACKa (NACK) przy adresowaniu write powinno zwrócić Ci status 0x20. Jak ten status odczytujesz to szukaj błędu w podłączeniu / działaniu DS1307.<br />Sprawdź czy pewno masz poprawnie podpięty DS1307 do procka? Jak masz działający RS232 (a to napisałeś że tak) to tam możesz wyrzucać statusy operacji TWI.<br /><br />-- <br />Pozdrawiam,<br />Robert<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 28 paź 2015, o 20:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Zagatka]]></name></author>
<updated>2015-10-28T20:44:47+01:00</updated>
<published>2015-10-28T20:44:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143575#p143575</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143575#p143575"/>
<title type="html"><![CDATA[Re: DS1307 TWI - nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143575#p143575"><![CDATA[
Mam np. coś takiego:<br />[syntax=c]TWI_write(208);<br />if ((TWSR &amp; 0xF8) != 0x18) ERROR();[/syntax]<br /><br />ERROR(); to zapalenie się diody. Niestety już przy pierwszym odpaleniu programu dioda się zapala...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10909">Zagatka</a> — 28 paź 2015, o 20:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2015-10-28T20:23:47+01:00</updated>
<published>2015-10-28T20:23:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143571#p143571</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143571#p143571"/>
<title type="html"><![CDATA[Re: DS1307 TWI - nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143571#p143571"><![CDATA[
Informacje o zwracanych statusach masz opisane w datasheetcie to Atmega328P (<a href="http://www.atmel.com/images/atmel-8271-8-bit-avr-microcontroller-atmega48a-48pa-88a-88pa-168a-168pa-328-328p_datasheet_complete.pdf"  class="postlink">http://www.atmel.com/images/atmel-8271-8-bit-avr-microcontroller-atmega48a-48pa-88a-88pa-168a-168pa-328-328p_datasheet_complete.pdf</a>) na stronie 218 (Status codes for Master Transmitter Mode) oraz na 221 (Status codes for Master Receiver Mode).<br /><br />-- <br />Pozdrawiam,<br />Robert<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 28 paź 2015, o 20:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Zagatka]]></name></author>
<updated>2015-10-28T20:13:59+01:00</updated>
<published>2015-10-28T20:13:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143569#p143569</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143569#p143569"/>
<title type="html"><![CDATA[Re: DS1307 TWI - nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143569#p143569"><![CDATA[
Dzięki, biorę się za pisanie i zobaczymy co dalej <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=10909">Zagatka</a> — 28 paź 2015, o 20:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2015-10-28T20:05:11+01:00</updated>
<published>2015-10-28T20:05:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143567#p143567</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143567#p143567"/>
<title type="html"><![CDATA[Re: DS1307 TWI - nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143567#p143567"><![CDATA[
Nie kontrolujesz statusów zwracanych przy kolejnych operacjach TWI, dlatego nie wiesz czy poprzednie działanie Ci nie zwróciło przypadkiem błędu. Po każdej operacji (odczekaniu na jej zakończenie przez while (!(TWCR &amp; (1 &lt;&lt; TWINT)));) masz w rejestrze TWSR status tej operacji.<br />Sprawdzaj czy masz odpowiednie statusy dla (TWSR &amp; 0xF8):<br />- po poprawnym wysłaniu adresu do zapisu masz mieć 0x18<br />- po poprawnym wysłaniu danej masz mieć 0x28<br />- po poprawnym wysłaniu adresu dla odczytu masz mieć 0x40<br />- po poprawnym odczytaniu danej masz mieć 0x50 (lub jak nie wysyłałeś ACKa to 0x58)<br />Możesz jeszcze sprawdzać czy poprawnie wysłał Ci się start i ponowny start, ale to już przy jednym masterze jest nie potrzebne.<br /><br />-- <br />Pozdrawiam,<br />Robert<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 28 paź 2015, o 20:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Zagatka]]></name></author>
<updated>2015-11-03T23:59:32+01:00</updated>
<published>2015-10-28T19:04:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143560#p143560</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143560#p143560"/>
<title type="html"><![CDATA[DS1307 TWI - nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13379&amp;p=143560#p143560"><![CDATA[
Witam,<br />Robię prosty test układu RTC DS1307 - na zasadzie, żeby tylko sprawdzić, nawiązać jakiekolwiek połączenie - wyświetlić np. tylko sekundy na terminalu (nwet niepoprawnie). Sam UART oczywiście działa (używam funkcji z noty katalogowej).<br /><br />Kod może piękny nie jest (nie mam jeszcze nawet funkcji  TWI_write_buf oraz TWI_read_buf) ale kompletnie nie o to chodzi. Chcę zrobić najprostszy na świecie, mały test.<br /><br />Schemat taki jak tu: <!-- m --><a class="postlink" href="http://1.bp.blogspot.com/-CA8Ew1AhmH8/UsiOTDel5xI/AAAAAAAAAM4/AYw16Y344KA/s1600/r1.jpg" >http://1.bp.blogspot.com/-CA8Ew1AhmH8/U ... 600/r1.jpg</a><!-- m --> (mam gotowy modul). Linie SDA i SCL podciagniete do Vcc przez 4,7k. uC: Atmega328P.<br /><br />Wiem (dzięki debugerowi jednodiodowemu), że program zawiesza się w funkcji  TWI_read dokładnie po while(!(TWCR&amp;(1&lt;&lt;TWINT)));. Bardzo proszę o jakieś wskazówki dlaczego tak może być i gdzie jest błąd w programie. Proszę o sprawdzenie poprawności inicjalizacji DS1307, bo tu podejrzewam może być coś źle.<br /><br />(użyte funkcje jak w BB)<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#include &quot;RTC_DS1307/RTC_DS1307.h&quot;<br />#include &quot;i2c_twi/i2c_twi.h&quot;<br />#include &quot;USART/usart.h&quot;<br /><br /><br />int main(void)<br />{<br /><br />USART_Init ( MYUBRR );<br />DS1307init();<br /><br /><br />while(1)<br />{<br />czas testowy;<br />testowy = RTC_odczyt();<br /><br />USART_transmit(bdc_to_bin(testowy.sek)+48);<br />USART_transmit(0x0d);<br />USART_transmit(0x0a);<br />_delay_ms(1000);<br /><br />}<br />}[/syntax]<br /><br /><br /><br />[syntax=c]void DS1307_init(void)   //TU JEST PEWNIE COŚ ŹLE<br />{<br />i2cSetBitrate(100);<br /><br />TWI_start();<br />TWI_write(208);<br />TWI_write(7);<br />TWI_write(0x10);<br />TWI_stop();<br /><br />TWI_start();<br />TWI_write(208);<br />TWI_write(0);<br />TWI_write(0x00);<br />TWI_stop();<br />}<br /><br />czas RTC_odczyt(void)<br />{<br />czas odczyt;<br /><br />//odczyt danych od wskazanego adresu:<br />TWI_start();//start<br />TWI_write(208);//adres układu slave<br />TWI_write(0);//adres (rejestr), od ktorego czytamy<br /><br />TWI_start();    //powtorzony start<br />TWI_write(209);//adres układu slave<br /><br /><br />odczyt.sek = TWI_read(1);<br /><br />//Tu się zawiesza!<br /><br />odczyt.min = TWI_read(1);<br />odczyt.godz = TWI_read(1);<br />odczyt.dzient = TWI_read(1);<br />odczyt.dzien =TWI_read(1);<br />odczyt.mies = TWI_read(1);<br />odczyt.rok = TWI_read(0);<br /><br /><br />TWI_stop();<br /><br /><br /><br /><br />return odczyt;<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10909">Zagatka</a> — 28 paź 2015, o 19:04</p><hr />
]]></content>
</entry>
</feed>