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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-08-10T10:20:49+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=8031&amp;mode</id>
<entry>
<author><name><![CDATA[Wilu88]]></name></author>
<updated>2014-08-10T10:20:49+01:00</updated>
<published>2014-08-10T10:20:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8031&amp;p=90905#p90905</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8031&amp;p=90905#p90905"/>
<title type="html"><![CDATA[Re: DS1307 nie odczytuje godziny]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8031&amp;p=90905#p90905"><![CDATA[
No widzisz nawet tego nie zauważyłem że przy zapisie w bibliotece sam zwiększany jest adres <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=743">Wilu88</a> — 10 sie 2014, o 10:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[TomDzik]]></name></author>
<updated>2014-08-09T22:18:22+01:00</updated>
<published>2014-08-09T22:18:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8031&amp;p=90873#p90873</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8031&amp;p=90873#p90873"/>
<title type="html"><![CDATA[Re: DS1307 nie odczytuje godziny]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8031&amp;p=90873#p90873"><![CDATA[
<div class="quotetitle">Wilu88 napisał(a):</div><div class="quotecontent"><br />Okazało się że odczyt też należy wykonywać za pomocą adresu 0xD0 &lt;ściana&gt;<br /></div><br /><br />A to dlatego, że Mirek nam życie ułatwił i w swoich funkcjach do I2C zaszył inkrementowanie adresu układu.<br />[syntax=c]void TWI_read_buf(uint8_t SLA, uint8_t adr, uint8_t len, uint8_t *buf) {<br />&#91;...&#93;<br />TWI_write(SLA);<br />TWI_write(adr);<br />TWI_start();<br />TWI_write(SLA + 1);<br />&#91;...&#93;<br />}[/syntax]<br />Też z tym walczyłem i byłem bardzo dumny z siebie, że jako totalnie początkujący z AVR sam do tego doszedłem  <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> <br /><br />Mój pierwszy post na forum Atnela. Cześć, TomDzik jestem <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=4223">TomDzik</a> — 9 sie 2014, o 22:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Wilu88]]></name></author>
<updated>2014-08-07T11:17:33+01:00</updated>
<published>2014-08-07T11:17:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8031&amp;p=90533#p90533</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8031&amp;p=90533#p90533"/>
<title type="html"><![CDATA[Re: DS1307 nie odczytuje godziny]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8031&amp;p=90533#p90533"><![CDATA[
OK dzięki za potwierdzenie tezy <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=743">Wilu88</a> — 7 sie 2014, o 11:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[matw]]></name></author>
<updated>2014-08-07T08:54:04+01:00</updated>
<published>2014-08-07T08:54:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8031&amp;p=90526#p90526</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8031&amp;p=90526#p90526"/>
<title type="html"><![CDATA[Re: DS1307 nie odczytuje godziny]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8031&amp;p=90526#p90526"><![CDATA[
<div class="quotetitle">Wilu88 napisał(a):</div><div class="quotecontent"><br />Ciekawi mnie tylko dlaczego gdy zabraknie prądu a nie mam połączonej bateri to godzina nie jest zapamiętywana a wszystko jest zerowane<br /></div>Sam sobie odpowiedziałeś, bateria służy do podtrzymywania rejestrów i pracy RTC podczas braku zasialania. Bez niej zawsze rejestry w układzie będą zerowane.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2394">matw</a> — 7 sie 2014, o 08:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Wilu88]]></name></author>
<updated>2014-08-06T16:28:10+01:00</updated>
<published>2014-08-06T16:28:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8031&amp;p=90468#p90468</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8031&amp;p=90468#p90468"/>
<title type="html"><![CDATA[Re: DS1307 nie odczytuje godziny]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8031&amp;p=90468#p90468"><![CDATA[
Tak wiec zapis do pamięci działa bez zarzutu, pod zmienną ctrl podstawiłem same 0 i wykonując:<br /> TWI_write_buf( DS1307_ADDR_Z, 0x07, 1, &amp;ctrl );<br /><br />W efekcie zegar przestał podawać sygnał na wyjściu SQW. To oznacza że zapis działa jednak jest problem z odczytem ciągle.<br /><br />EUREKA!!!<br /><br />Okazało się że odczyt też należy wykonywać za pomocą adresu 0xD0 &lt;ściana&gt; Ciekawi mnie tylko dlaczego gdy zabraknie prądu a nie mam połączonej bateri to godzina nie jest zapamiętywana a wszystko jest zerowane<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=743">Wilu88</a> — 6 sie 2014, o 16:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Wilu88]]></name></author>
<updated>2014-08-06T09:01:42+01:00</updated>
<published>2014-08-06T09:01:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8031&amp;p=90418#p90418</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8031&amp;p=90418#p90418"/>
<title type="html"><![CDATA[Re: DS1307 nie odczytuje godziny]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8031&amp;p=90418#p90418"><![CDATA[
Tak dioda działa ładnie, testowane także analizatorem stanów logicznych i sygnał przerwania jest równo co 1 sek.<br /><br />Jak wrócę do domu sprawdzę jeszcze czy cokolwiek się zapisuje do DS spróbuję wyłączyć sygnał SQW. Wedy będzie wiadomo czy cokolwiek się wysyła.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=743">Wilu88</a> — 6 sie 2014, o 09:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RafPe]]></name></author>
<updated>2014-08-06T08:51:08+01:00</updated>
<published>2014-08-06T08:51:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8031&amp;p=90416#p90416</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8031&amp;p=90416#p90416"/>
<title type="html"><![CDATA[Re: DS1307 nie odczytuje godziny]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8031&amp;p=90416#p90416"><![CDATA[
* Wiesz nie chce Ci marnowac czasu <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> tak jak pisalem &quot;UWAGA : probuje pomagac poczatkujacy&quot; <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> <br /><br />No to powiedzmy ze adres mamy ogarniety i nie tam jest problem. To moze po kolei ... <br /><br />Zamiast ustawiac czas sprobuj po prostu odczytac sekundy ? i czy to zadziala ?<br /><br /><br />A takie pytanie ... <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> a dziala Ci ta dioda ? <br />[syntax=c]// procedura obsługi przerwania INT 0<br />            ISR( INT0_vect ) {<br />                int0_flag = 1;<br />                LED_TOG;<br />            }[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4344">RafPe</a> — 6 sie 2014, o 08:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Wilu88]]></name></author>
<updated>2014-08-06T08:48:56+01:00</updated>
<published>2014-08-06T08:48:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8031&amp;p=90415#p90415</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8031&amp;p=90415#p90415"/>
<title type="html"><![CDATA[Re: DS1307 nie odczytuje godziny]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8031&amp;p=90415#p90415"><![CDATA[
No i tak było zrobione definicja do odczytu jest: <br /><br />#define DS1307_ADDR_O 0xD1<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=743">Wilu88</a> — 6 sie 2014, o 08:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RafPe]]></name></author>
<updated>2014-08-06T08:23:11+01:00</updated>
<published>2014-08-06T08:23:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8031&amp;p=90413#p90413</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8031&amp;p=90413#p90413"/>
<title type="html"><![CDATA[Re: DS1307 nie odczytuje godziny]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8031&amp;p=90413#p90413"><![CDATA[
A sprobuj tak:<br /><br />+ Odczyt z urzadzenia o adresie 0xD0  <br />+ Odczyt z pamieci o adresie 0xD1<br /><br />** Ehhh porady poczatkujacego <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Z noty mozna wyczytac ....<br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Slave Transmitter Mode (Read Mode): The first byte is received and handled as in the slave receiver <br />mode. However, in this mode, the direction bit will indicate that the transfer direction is reversed. The <br />DS1307 transmits serial data on SDA while the serial clock is input on SCL. START and STOP <br />conditions are recognized as the beginning and end of a serial transfer (see Figure 5). The slave <br />address byte is the first byte received after the START condition is generated by the master. The slave <br />address byte contains the 7-bit DS1307 address, which is 1101000, followed by the direction bit (R/W), <br />which is 1 for a read.<br /></div><br /><br />Wiec ja to rozumialbym ze adres do odczytu to 1101000 , a dodatkowo dochodzi bit* mowiacy czy to odczyt czy zapis czyli dla odczytu 1. Wiec powstaje 11010001 czyli hex 0xD1<br /><br />Wiec pod tym adresem musisz byc w stanie odczytac wartosci <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=4344">RafPe</a> — 6 sie 2014, o 08:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Wilu88]]></name></author>
<updated>2014-08-06T08:06:25+01:00</updated>
<published>2014-08-06T08:06:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8031&amp;p=90412#p90412</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8031&amp;p=90412#p90412"/>
<title type="html"><![CDATA[Re: DS1307 nie odczytuje godziny]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8031&amp;p=90412#p90412"><![CDATA[
Wisz co też mnie to ciekawiło bo tak jak pisałem kod pochodzi od jednego z użytkowników forum, ale na próbę wyrzuciłem ten pierwszy adres i nic się nie zmieniło.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=743">Wilu88</a> — 6 sie 2014, o 08:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RafPe]]></name></author>
<updated>2014-08-06T07:58:09+01:00</updated>
<published>2014-08-06T07:58:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8031&amp;p=90410#p90410</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8031&amp;p=90410#p90410"/>
<title type="html"><![CDATA[Re: DS1307 nie odczytuje godziny]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8031&amp;p=90410#p90410"><![CDATA[
Takie pytanie poczatkujacego .... * bo dopiero &quot;pozeram I2C&quot; <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> <br /><br />Tutaj probujesz pobrac z dwoch roznych adresow ? Nie ma to jakis skutkow ubocznych ?<br />[syntax=c]TWI_read_buf( DS1307_ADDR_Z, 0, 7, buf );                                                                               //adres pobrania danych z DS1307<br />            TWI_read_buf( DS1307_ADDR_O, 0, 7, buf );[/syntax]<br /><br />Bo tak naprawde jesli dziala na Arduino to musi dzialac na AVR <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Ja wlasnie wczoraj mialem przeprawe z odczytem z zegarka z ATB <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> okazalo sie ze zrobilem typo w adresie ... :/ zeby to rozwiazac malymi krokami skupilem sie na odczytaniu jednej wartosci <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> i to pomoglo znalezc problem <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=4344">RafPe</a> — 6 sie 2014, o 07:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Wilu88]]></name></author>
<updated>2014-08-06T06:25:01+01:00</updated>
<published>2014-08-06T06:25:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8031&amp;p=90397#p90397</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8031&amp;p=90397#p90397"/>
<title type="html"><![CDATA[Re: DS1307 nie odczytuje godziny]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8031&amp;p=90397#p90397"><![CDATA[
Przy próbie zmiany sdl i sda z ekranu znika wszystko także wnioskuje że połączenia są ok. Tak jakby zegarek nie działał a wartości pobierał gdzieś indziej.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=743">Wilu88</a> — 6 sie 2014, o 06:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jony15]]></name></author>
<updated>2014-08-05T22:44:19+01:00</updated>
<published>2014-08-05T22:44:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8031&amp;p=90383#p90383</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8031&amp;p=90383#p90383"/>
<title type="html"><![CDATA[Re: DS1307 nie odczytuje godziny]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8031&amp;p=90383#p90383"><![CDATA[
Jedyne co mi przychodzi do głowy to może zamienione sda i scl, ( adres 208 i 209 )  Ja korzystałem tak samo z funkcji do i2c z BB tylko że programowego i2c, u mnie odczyt z zegarka wygląda tak:<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">ISR(INT0_vect)<br />{<br />   <br />   //odczyt z rtc<br />   i2c_START();<br />   i2cPutbyte(WRITE_ADR);<br />   i2cPutbyte(0);//odczyt od zerowego adresu ( sekunty)<br />   i2c_REP_START();<br />   i2cPutbyte(READ_ADR);<br />   rtc.sekundy = bcd2dec(i2cGetbyte(ACK));//sekundy<br />   rtc.minuty = bcd2dec(i2cGetbyte(ACK));//minuty<br />   rtc.godziny = bcd2dec(i2cGetbyte(ACK));//godzina<br />   rtc.dni_tygodnia = i2cGetbyte(NACK);//dni tygodnia<br />   rtc.dni_tygodnia = rtc.dni_tygodnia &amp; 0x07;<br />   //maskujemy tylko trzy bity od 0 do 7<br />   i2c_STOP();<br />   czekaj_na_odczyt = 0;</div><br />Spróbuj pojedynczo odczytywać np: tylko sekundy? Powodzenia.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2183">jony15</a> — 5 sie 2014, o 22:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Wilu88]]></name></author>
<updated>2014-08-05T20:53:07+01:00</updated>
<published>2014-08-05T20:53:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8031&amp;p=90372#p90372</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8031&amp;p=90372#p90372"/>
<title type="html"><![CDATA[DS1307 nie odczytuje godziny]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8031&amp;p=90372#p90372"><![CDATA[
Witam<br /><br />od kilku godzin wałczę z ogarnięciem DS1307 podłączanego do ATB i już brak mi pomysłów. Układzik podłączony według noty do SDL i SDA podłączone rezystory 4.7kOhm do VCC, SQW do PD2 na ATB. Sprawdziłem analizatorem stanów logicznych i na pinie SQW co sekundę następuje sygnał także zegarek działa. Jednak na wyświetlaczu przy próbie pobrania godziny widnieje 132:132:132. Kod częściowo z BB z rozdziału o PCF oraz częściowo od jednego z kolegów z forum, który również walczył z DS1307.<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#include &quot;LCD/lcd44780.h&quot;<br />#include &quot;I2C_TWI/i2c_twi.h&quot;<br /><br />    typedef union {<br />            uint8_t bytes&#91;7&#93;;<br />            struct {<br />                    uint8_t ss;<br />                    uint8_t mm;<br />                    uint8_t hh;<br />                    uint8_t dayofwek;<br />                    uint8_t day;<br />                    uint8_t month;<br />                    uint8_t year;<br />            };<br />    } TDATETIME;<br /><br />    #define DS1307_ADDR_Z 0xD0                                      //adres inicjalizujący zapis do DS1307<br />    #define DS1307_ADDR_O 0xD1                                      //adres inicjalizujący odczyt z DS1307<br />    #define LED_PIN (1&lt;&lt;PB1)<br />    #define LED_TOG PORTB ^= LED_PIN<br /><br />    volatile uint8_t int0_flag=1;<br /><br /><br />    void DS1307_init(void);<br />    uint8_t dec2bcd(uint8_t dec);<br />    uint8_t bcd2dec(uint8_t bcd);<br />    void DS1307_get_datetime( TDATETIME * dt );<br />    void show_time( TDATETIME * dt );<br />    void DS1307_get_datetime2( TDATETIME * dt );<br />    void DS1307_set_time( uint8_t hh, uint8_t mm, uint8_t ss );<br />    void DS1307_set_date( uint8_t year, uint8_t month, uint8_t day, uint8_t dayofweek );<br /><br /><br />    TDATETIME datetime;<br />    char days&#91;7&#93;&#91;4&#93; = {<br />                    &quot;pon&quot;, &quot;wto&quot;, &quot;sro&quot;, &quot;czw&quot;, &quot;pia&quot;, &quot;sob&quot;, &quot;nie&quot;<br />    };<br /><br />    int main(void){<br />            DDRB |= LED_PIN;<br />            lcd_init();<br />            _delay_ms(100);<br /><br /><br />            // Przerwanie INT0<br />            MCUCR |= (1&lt;&lt;ISC01);// wyzwalanie zboczem opadającym<br />            GICR |= (1&lt;&lt;INT0);// odblokowanie przerwania<br />            PORTD |= (1&lt;&lt;PD2);// podciągnięcie pinu INT0 do VCC<br /><br />            i2cSetBitrate(100);<br /><br />            DS1307_init();<br />            DS1307_set_time( 9, 27, 00 );<br />            DS1307_set_date(10,2,14,1);<br />            sei();<br /><br />            while(1){<br />                    LED_TOG;<br />                    _delay_ms(100);<br />                    if ( int0_flag ) {<br />                    DS1307_get_datetime(&amp;datetime);<br />                    lcd_locate(1,0);<br />                    show_time(&amp;datetime);<br /><br />                    int0_flag = 0;// kasowanie flagi<br />                    }<br />            }<br /><br />    }<br /><br />            // procedura obsługi przerwania INT 0<br />            ISR( INT0_vect ) {<br />            int0_flag = 1;<br />            LED_TOG;<br />            }<br /><br /><br /><br />    //inicjalizacja DS1307<br />    void DS1307_init(void){<br />            uint8_t ctrl = 0x10;<br />            TWI_write_buf( DS1307_ADDR_Z, 0x07, 1, &amp;ctrl );<br />            uint8_t CH = 0;<br />            TWI_write_buf(DS1307_ADDR_Z, 0, 1, &amp;CH);<br />    }<br /><br />    //zamiana dec-&gt;bcd<br />    uint8_t dec2bcd(uint8_t dec){<br />            return ((dec/10)&lt;&lt;4)|(dec%10);<br />    }<br />    //zamiana bcd-&gt;dec<br />    uint8_t bcd2dec(uint8_t bcd){<br />            return ((((bcd)&gt;&gt;4)&amp;0x0F)*10)+((bcd)&amp;0x0F);<br />    }<br />    //odczyt danych z DS1307<br />    void DS1307_get_datetime( TDATETIME * dt ) {<br />            uint8_t i;<br />            uint8_t buf&#91;7&#93;;<br />            TWI_read_buf( DS1307_ADDR_Z, 0, 7, buf );                                                                               //adres pobrania danych z DS1307<br />            TWI_read_buf( DS1307_ADDR_O, 0, 7, buf );<br />            for( i=0; i&lt;7; i++ ) dt-&gt;bytes&#91;i&#93; = bcd2dec( buf&#91;i&#93; );<br />    }<br />    //zapisanie na wyswietlacz godziny<br />    void show_time( TDATETIME * dt ) {<br />            if( dt-&gt;hh &lt; 10 ) lcd_str(&quot;0&quot;);<br />            lcd_int(dt-&gt;hh);<br />            lcd_str(&quot;:&quot;);<br />            if( dt-&gt;mm &lt; 10 )  lcd_str(&quot;0&quot;);<br />            lcd_int(dt-&gt;mm);<br />            lcd_str(&quot;:&quot;);<br />            if( dt-&gt;ss &lt; 10 )  lcd_str(&quot;0&quot;);<br />            lcd_int(dt-&gt;ss);<br />    }<br />    //zaspisanie na wyswietlacz daty<br /><br />    //odczyt danych z DS1307<br />    void DS1307_get_datetime2( TDATETIME * dt ) {<br />            uint8_t i;<br />            uint8_t buf&#91;7&#93;;<br />            TWI_start();<br />            TWI_write(0xD0);<br />            TWI_write(0);<br />            TWI_read_buf( DS1307_ADDR_O, 0, 7, buf );                               //adres pobrania danych z DS1307<br />            for( i=0; i&lt;7; i++ ) dt-&gt;bytes&#91;i&#93; = bcd2dec( buf&#91;i&#93; );<br />    }<br />    //funckja ustawiająca czas w DS1307<br />    void DS1307_set_time( uint8_t hh, uint8_t mm, uint8_t ss ) {<br />            uint8_t buf&#91;3&#93;;<br />            buf&#91;0&#93;=dec2bcd(ss);<br />            buf&#91;1&#93;=dec2bcd(mm);<br />            buf&#91;2&#93;=dec2bcd(hh);<br />            TWI_write_buf( DS1307_ADDR_Z, 0x00, 3, buf );<br />    }<br />    //funckja ustawiająca datę w DS1307<br />    void DS1307_set_date( uint8_t year, uint8_t month, uint8_t day, uint8_t dayofweek ) {<br />            uint8_t buf&#91;4&#93;;<br />            buf&#91;0&#93;=dayofweek;<br />            buf&#91;1&#93;=dec2bcd(day);<br />            buf&#91;2&#93;=dec2bcd(month);<br />            buf&#91;3&#93;=dec2bcd(year);<br />            TWI_write_buf( DS1307_ADDR_Z, 0x03, 4, buf );<br />    }[/syntax]<br /><br /><br />Jeśli chodzi o podłączenia na samej ATB to tak: zworki z SDL i SDA ściagniete a SDL i SDA podłączone bezpośrednio do PC0 i PC1<br />Co najciekawsze ten sam DS podłączony do arduino działa bez zarzutu, wszystko pieknie jest pobierane.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=743">Wilu88</a> — 5 sie 2014, o 20:53</p><hr />
]]></content>
</entry>
</feed>