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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-02-01T15:42:45+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=12578&amp;mode</id>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2016-02-01T15:42:45+01:00</updated>
<published>2016-02-01T15:42:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12578&amp;p=152322#p152322</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12578&amp;p=152322#p152322"/>
<title type="html"><![CDATA[Re: Atmega8 z RTC (DS1307)  +  DAWCA CZASU]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12578&amp;p=152322#p152322"><![CDATA[
<div class="quotetitle">lukhol napisał(a):</div><div class="quotecontent"><br /><div class="quotetitle">MirkoT napisał(a):</div><div class="quotecontent">Bibliotekę masz dostępną na płytach w BB i GB.<br />Albo użyj dowolnej innej.<br /></div><br /><br />Rozumiem, że są to płyty dołączone do książek p. Mirka ? Niestety ich nie mam więc nie mogę z nich skorzystać.</div><br />Właśnie na tą nieszczęśliwą okoliczność napisałem &quot;użyj dowolnej innej&quot;. Na pewno w sieci coś znajdziesz.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 1 lut 2016, o 15:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[lukhol]]></name></author>
<updated>2016-02-01T14:07:09+01:00</updated>
<published>2016-02-01T14:07:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12578&amp;p=152315#p152315</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12578&amp;p=152315#p152315"/>
<title type="html"><![CDATA[Re: Atmega8 z RTC (DS1307)  +  DAWCA CZASU]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12578&amp;p=152315#p152315"><![CDATA[
<div class="quotetitle">MirkoT napisał(a):</div><div class="quotecontent"><br />Bibliotekę masz dostępną na płytach w BB i GB.<br />Albo użyj dowolnej innej.<br /></div><br /><br />Rozumiem, że są to płyty dołączone do książek p. Mirka ? Niestety ich nie mam więc nie mogę z nich skorzystać.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12509">lukhol</a> — 1 lut 2016, o 14:07</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2016-02-01T13:22:36+01:00</updated>
<published>2016-02-01T13:22:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12578&amp;p=152312#p152312</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12578&amp;p=152312#p152312"/>
<title type="html"><![CDATA[Re: Atmega8 z RTC (DS1307)  +  DAWCA CZASU]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12578&amp;p=152312#p152312"><![CDATA[
Bibliotekę masz dostępną na płytach w BB i GB.<br />Albo użyj dowolnej innej.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 1 lut 2016, o 13:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[lukhol]]></name></author>
<updated>2016-02-01T13:15:34+01:00</updated>
<published>2016-02-01T13:15:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12578&amp;p=152311#p152311</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12578&amp;p=152311#p152311"/>
<title type="html"><![CDATA[Re: Atmega8 z RTC (DS1307)  +  DAWCA CZASU]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12578&amp;p=152311#p152311"><![CDATA[
Czy mógł by ktoś udostępnić bibliotekę I2C do tego ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12509">lukhol</a> — 1 lut 2016, o 13:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mac34]]></name></author>
<updated>2015-08-09T10:51:44+01:00</updated>
<published>2015-08-09T10:51:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12578&amp;p=136845#p136845</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12578&amp;p=136845#p136845"/>
<title type="html"><![CDATA[Re: Atmega8 z RTC (DS1307)  +  DAWCA CZASU]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12578&amp;p=136845#p136845"><![CDATA[
Mirku toż to kopalnia wiedzy. Jestem na 6 odcinku.<br /><br />Już napisałem funkcję do parsowania danych i zapisu zmiennych do RTC (mi przydały sie właśnie te zmienne i wyodrębnianie ich ze stringa, oraz zamiana na liczby).<br /><br />Wreszcie też zrozumiałem w pełni wskażniki i tworzenie Eventa <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />  ( a przynajmiej tak mi się wydaje <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> )<br /><br />Super seria poradników wielkie dzięki!!!<br /><br />Zaraz biorę się do konfiguracji Atnel Wi-fi ,narazie na próbę wysyłam w swoim programie i wszystko ładnie się ustawia ,funkcja przetestowana !!! <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br /><a href="https://obrazkiforum.atnel.pl/3077/f147d429f600df84801e54a2ac19c7b0.jpg"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/3077/f147d429f600df84801e54a2ac19c7b0.jpg" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3077">mac34</a> — 9 sie 2015, o 10:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mac34]]></name></author>
<updated>2015-08-08T11:54:28+01:00</updated>
<published>2015-08-08T11:54:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12578&amp;p=136779#p136779</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12578&amp;p=136779#p136779"/>
<title type="html"><![CDATA[Re: Atmega8 z RTC (DS1307)  +  DAWCA CZASU]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12578&amp;p=136779#p136779"><![CDATA[
Musiałem przegapić któryś z odcinków.  Zaraz poszukam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3077">mac34</a> — 8 sie 2015, o 11:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-08-08T11:45:07+01:00</updated>
<published>2015-08-08T11:45:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12578&amp;p=136777#p136777</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12578&amp;p=136777#p136777"/>
<title type="html"><![CDATA[Re: Atmega8 z RTC (DS1307)  +  DAWCA CZASU]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12578&amp;p=136777#p136777"><![CDATA[
Przecież w moich poradnikach o WIFI i PCF8583 masz pokazane krok po kroku jak to zrobić .... w czym problem ? Co to za różnica jaki RTC ? <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> — 8 sie 2015, o 11:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mac34]]></name></author>
<updated>2015-08-08T11:40:31+01:00</updated>
<published>2015-08-08T11:40:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12578&amp;p=136775#p136775</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12578&amp;p=136775#p136775"/>
<title type="html"><![CDATA[Atmega8 z RTC (DS1307)  +  DAWCA CZASU]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12578&amp;p=136775#p136775"><![CDATA[
Witam wymęczyłem właśnie bibliotekę dla DS1307 ,wiem że jest z tym sporo problemów ,dlatego chętnie się nią podzielę.<br /><br />Do pełni szczęścia brakuje w niej jeszcze funkcji która zapisze czas z modułu Atnel Wi-Fi ( tu prośba do Mirka ,jeśli to nie problem by naprowadził na jakieś rozwiązanie).<br /><br />Wcześniej ustawiałem zegar w terminalu przez BT ,ale to czasochłonne wklepywanie ,zależy mi na automatycznej aktualizacji jak w MISIU z poradnika <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Kod biblioteki tak napisany ,by działał z I2C z książki Mirka, samej biblioteki I2C nie zamieszczam ,wiadomo jest w BB jak co.<br /><br />Kod dla programu<br /><br />[syntax=c]//Atmega 8A  ,kwarc 11,059MHz ,I2C zegar DS1307 + dawca czasu?<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;string.h&gt;<br />#include &lt;stdlib.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &quot;lcd44780by_mario_ver2.h&quot;<br />#include &quot;I2C_TWI_library.h&quot;<br />#include &quot;DS1307.h&quot;<br /><br />#include &lt;util/delay.h&gt;<br /><br /><br />uint8_t _ds1307_bcd_2_dec(uint8_t bcd);<br /><br /><br />uint8_t seconds;<br />uint8_t minutes;<br />uint8_t hours;<br />uint8_t days;<br />uint8_t months;<br />uint8_t years;<br /><br /><br />int main(void){<br /><br />PORTD = 0b11111111;                         //podciągniecie  portow<br />    PORTC = 0b1111111;<br /><br />// USART_Init( __UBRR );<br /><br />    i2cSetBitrate( 100 );//prędkoć I2C  100kHz dla DS1307<br />    I2C_DIR |= (1&lt;&lt;SCL) | (1&lt;&lt;SDA);<br /><br />    DS1307_init();<br />    SetTime(12,0,0);   // ustawia 12:00:00<br /><br />lcd_init();<br />    lcd_cls();<br />lcd_cursor_off();<br /><br />sei();<br /><br />while(1){<br /><br />DS1307_GetTime(&amp;hours,&amp;minutes,&amp;seconds);<br />lcd_cls();<br />lcd_locate(1,2);<br /><br />hours=_ds1307_bcd_2_dec(hours);<br />minutes=_ds1307_bcd_2_dec(minutes);<br />seconds=_ds1307_bcd_2_dec(seconds);<br /><br /><br />if(hours&lt;10) lcd_str(&quot;0&quot;);        // dokladanie 0 ,by było 00:00:00 ,a nie 0:0:0<br />lcd_int(hours);               //wyswietla godziny w wartosci 10<br />            lcd_str(&quot;:&quot;);                      //wstawia znak :<br />            if(minutes&lt;10) lcd_str(&quot;0&quot;);<br />            lcd_int(minutes);                //wstawia minuty w wartosci 10<br />            lcd_str(&quot;:&quot;);                      //ponownie znak :<br />            if(seconds&lt;10) lcd_str(&quot;0&quot;);<br />            lcd_int(seconds);               //wstawia wartosc sekundy 10<br /><br />_delay_ms(200);<br /><br /><br />} //koniec while<br /><br />}  //koniec main<br /><br />//  Converts raw data from BCD to decimal<br />//<br />uint8_t _ds1307_bcd_2_dec(uint8_t bcd)<br />{<br />    uint8_t dec = 10 * (bcd&gt;&gt;4);<br />    dec += bcd &amp; ~(0b11110000);<br />    return dec;<br />}[/syntax]<br /><br /><br />Biblioteka DS1307<br /><br />[syntax=c]#ifndef DS1307_H_<br />#define DS1307_H_<br /><br /><br />#include &lt;avr/io.h&gt;<br />#include &quot;I2C_TWI_library.h&quot;<br />#include &lt;string.h&gt;<br />#include &lt;stdlib.h&gt;<br /><br />// ---------------------------------------------------------------------------<br />// DS1307 RTC ROUTINES<br /><br />#define DS1307 0xD0 // I2C bus address of DS1307 RTC  0xD0<br /><br />#define SECONDS_REGISTER 0x00<br />#define MINUTES_REGISTER 0x01<br />#define HOURS_REGISTER 0x02<br />#define DAYOFWK_REGISTER 0x03<br />#define DAYS_REGISTER 0x04<br />#define MONTHS_REGISTER 0x05<br />#define YEARS_REGISTER 0x06<br />#define CONTROL_REGISTER 0x07<br />#define RAM_BEGIN 0x08<br />#define RAM_END 0x3F<br /><br />#define TW_NACK 0x84 // read data with NACK (last byte)<br />#define READ 1<br />#define TW_READY (TWCR &amp; 0x80) // ready when TWINT returns to logic 1.<br /><br /><br /><br />void DS1307_GetTime(uint8_t *hours, uint8_t *minutes, uint8_t *seconds);<br />// returns hours, minutes, and seconds in BCD format<br /><br />void DS1307_GetDate(uint8_t *months, uint8_t *days, uint8_t *years);<br />// returns months, days, and years in BCD format<br /><br />void SetTime(uint8_t set_hour, uint8_t set_minute, uint8_t set_second); //time set<br /><br />void SetDate(uint8_t set_day, uint8_t set_month, uint8_t set_year);  //set date<br /><br /><br />void DS1307_init(void);<br /><br />//######################################################################################################################<br /><br />uint8_t I2C_ReadNACK(void) // reads a data byte from slave  ,dodano (void)<br />{<br />TWCR = TW_NACK; // nack = not reading more data<br />while (!TW_READY); // wait<br />return TWDR;<br />}<br /><br /><br /><br /><br /><br />void I2C_WriteRegister(uint8_t busAddr, uint8_t deviceRegister, uint8_t data){   //funkcja zapisu danych po I2C<br /><br />TWI_start();  //start I2C<br />TWI_write(busAddr);  //wyslij adres DS1307<br />TWI_write(deviceRegister);<br />TWI_write(data);  //wysyłą 3 ardumenty funkcji I2C_WriteRegister<br />TWI_stop();   //stop I2C<br /><br />}<br /><br /><br /><br /><br />uint8_t I2C_ReadRegister(uint8_t busAddr, uint8_t deviceRegister){     //funkcja odczytu danych po I2C<br /><br />uint8_t data = 0;<br /><br />TWI_start();  //start I2C<br />TWI_write(busAddr);  //wyslij adres DS1307<br />TWI_write(deviceRegister);<br />TWI_start();  // 2 start I2C ,musi być!!!<br />TWI_write(DS1307+READ);<br />data = I2C_ReadNACK(); // read the register data<br /><br />TWI_stop();   //stop I2C<br /><br />return data;<br />}<br /><br />//#######################################################################################################################<br /><br /><br /><br />void DS1307_GetTime(uint8_t *hours, uint8_t *minutes, uint8_t *seconds)<br />// returns hours, minutes, and seconds in BCD format<br />{<br />*hours = I2C_ReadRegister(DS1307,HOURS_REGISTER);<br />*minutes = I2C_ReadRegister(DS1307,MINUTES_REGISTER);<br />*seconds = I2C_ReadRegister(DS1307,SECONDS_REGISTER);<br />if (*hours &amp; 0x40) // 12hr mode:<br />*hours &amp;= 0x1F; // use bottom 5 bits (pm bit = temp &amp; 0x20)<br />else *hours &amp;= 0x3F; // 24hr mode: use bottom 6 bits<br />}<br />void DS1307_GetDate(uint8_t *months, uint8_t *days, uint8_t *years)<br />// returns months, days, and years in BCD format<br />{<br />*months = I2C_ReadRegister(DS1307,MONTHS_REGISTER);<br />*days = I2C_ReadRegister(DS1307,DAYS_REGISTER);<br />*years = I2C_ReadRegister(DS1307,YEARS_REGISTER);<br />}<br />void SetTime(uint8_t set_hour, uint8_t set_minute, uint8_t set_second)<br /><br />{<br /><br />I2C_WriteRegister(DS1307,HOURS_REGISTER, set_hour); // add 0x40 for PM ,czyli -&gt; set_hour+0x40 ,dla PM<br />I2C_WriteRegister(DS1307,MINUTES_REGISTER, set_minute);<br />I2C_WriteRegister(DS1307,SECONDS_REGISTER, set_second);<br />}<br /><br /><br />void SetDate(uint8_t set_day, uint8_t set_month, uint8_t set_year){<br /><br />I2C_WriteRegister(DS1307,MONTHS_REGISTER, set_month);<br />I2C_WriteRegister(DS1307,DAYS_REGISTER, set_day);<br />I2C_WriteRegister(DS1307,YEARS_REGISTER, set_year);<br /><br /><br />}<br /><br /><br /><br />// ---------------------------------------------------------------------------<br /><br /><br />void DS1307_init(void){<br />     //clear the CH bit  0b01111111;<br />TWI_start();  //start I2C<br />TWI_write(DS1307);  //wyslij adres DS1307<br />TWI_write(SECONDS_REGISTER);<br />TWI_write(0b01111111);  //clear the CH bit ,starts clock<br />TWI_stop();   //stop I2C<br /><br />}<br /><br />#endif /* DS1307_H_ *[/syntax]<br /><br /><br /><br /><br />Zegar chodzi od tygodnia ,wszystko działa.   Brakuje jedynie aktualizacji czasu po WI-Fi <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3077">mac34</a> — 8 sie 2015, o 11:40</p><hr />
]]></content>
</entry>
</feed>