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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-02-15T14:19:11+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=5911&amp;mode</id>
<entry>
<author><name><![CDATA[Dolot]]></name></author>
<updated>2014-02-15T14:19:11+01:00</updated>
<published>2014-02-15T14:19:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=70554#p70554</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=70554#p70554"/>
<title type="html"><![CDATA[Re: RTC DS1307 - problem z uruchomieniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=70554#p70554"><![CDATA[
A dziekuje bardzo <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> bede wieczorem w domu to dam znać czy poskutkowało <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> pozdrswiam <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> <br /><br />Wysłane z mojego Nexus 4 przy użyciu Tapatalka<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2695">Dolot</a> — 15 lut 2014, o 14:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2014-02-15T13:57:02+01:00</updated>
<published>2014-02-15T13:57:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=70551#p70551</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=70551#p70551"/>
<title type="html"><![CDATA[Re: RTC DS1307 - problem z uruchomieniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=70551#p70551"><![CDATA[
Raczej tak ma być:<br />[syntax=c]cz_d=elewacja/10;<br />cz_u=elewacja%10;[/syntax]<br />Jak masz liczbę 365 i chcesz mieć 36.5 to dzielenie całkowite 365/10 da 36, a reszta z dzielenia 365%10 da 5. Jak wcześniej dodatkowo dzieliłeś 365/10%10 to miałbyś wynik 36.6, bo 365/10 daje 36 i reszta z dzielenia to 6.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 15 lut 2014, o 13:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Dolot]]></name></author>
<updated>2014-02-15T13:00:25+01:00</updated>
<published>2014-02-15T13:00:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=70545#p70545</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=70545#p70545"/>
<title type="html"><![CDATA[Re: RTC DS1307 - problem z uruchomieniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=70545#p70545"><![CDATA[
Witam mam mały problem z wyświetlaniem, ponieważ wyświetlają mi się takie głupoty :<br /><br /><a href="http://forum.atnel.pl/_obrazki/o/2695/8fb3c221dd7c236c9709ab26168b0060.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/2695/8fb3c221dd7c236c9709ab26168b0060.jpg" alt="Obrazek" /></a><br /><br /><br />a powinno wyświetlać się mniej więcej tak, że  e = 6,7 natomiast a = -35,0 .... i na dodatek nie wiem skąd ta 4 na końcu :O<br /><br /><a href="http://forum.atnel.pl/_obrazki/o/2695/bf6fa668604863b63418e99df2ce014c.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/2695/bf6fa668604863b63418e99df2ce014c.jpg" alt="Obrazek" /></a><br /><br />poniżej przedstawiam pętlę while mojego programu :<br /><br />[syntax=c]while(1){<br />if( EIFR &amp; (1&lt;&lt;INTF0) ) {<br />DS1307_get_datetime(&amp;datetime);//pobranie godziny oraz daty z DS1307<br />minutygodziny(&amp;datetime);<br />dzr(&amp;datetime);<br />elewacja=(_elewacja&#91;TMINUTA+1&#93;+n_elewacja&#91;DZR&#93;);<br />azymut=(_azymut&#91;TMINUTA+1&#93;+n_azymut&#91;DZR&#93;);<br />LCD_GoTo(0,1);<br />LCD_WriteText(&quot;e=&quot;);<br />cz_d=elewacja/10;<br />cz_u=(elewacja/10)%10;<br />LCD_INT(cz_d);<br />LCD_WriteText(&quot;.&quot;);<br />LCD_INT(cz_u);<br />LCD_GoTo(9,1);<br />LCD_WriteText(&quot;a=&quot;);<br />cz_d1=azymut/10;<br />cz_u1=(azymut/10)%10;<br />LCD_INT(cz_d1);<br />LCD_WriteText(&quot;.&quot;);<br />if(cz_u1&lt;0){<br />LCD_INT(cz_u1*-1);<br />}else{<br />LCD_INT(cz_u1);<br />}<br />LCD_GoTo(0,2);//ustawienie kursora w 1 wierszu od 0 pozycji<br />show_date( &amp;datetime );//wyswietlenie daty<br />LCD_GoTo(8,2);//ustawienie kursora w 1 wierszu od 8 pozycji<br />show_time(&amp;datetime);//wyswietlenie daty<br />EIFR |= (1&lt;&lt;INTF0);  //kasowanie flagi<br />}<br />}<br /><br />}[/syntax]<br /><br />dodatkowo wrzucam zmienne zadeklarowane<br /><br />[syntax=c]uint16_t d, miesiac, h, m, TMINUTA;<br />int16_t DZR, elewacja, azymut;<br />uint8_t cz_d, cz_d1;<br />int8_t cz_u, cz_u1;[/syntax]<br /><br />oraz tablice bo może być tak, że coś w typach pokałapućkało mi się:<br /><br />[syntax=c]int16_t _azymut&#91;96&#93;= ....<br />int16_t n_azymut&#91;365&#93;= ....<br />int16_t _elewacja&#91;96&#93;= ....<br />int16_t n_elewacja&#91;365&#93;= ....[/syntax]<br /><br />dane z tablicy _azymut są z zakresu od -600 do 600<br />dane z tablicy n_azymut są z zakresu od -300 do 0<br />dane z tablicy _elewacja są z zakresu od -500 do 300<br />dane z tablicy n_elewacja są z zakresu od -10 do 400 <br /><br /><br />przykład wyświetlania jest jak z blue book'a ... dziele sobie liczbę elewacja przez 10 wyświetlam część dziesiętną, a resztę z dzielenia zapisuję do cz_u i wyświetlam no ale coś nie wychodzi .... <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> <br /><br />[syntax=c]LCD_GoTo(0,1);<br />LCD_WriteText(&quot;e=&quot;);<br />cz_d=elewacja/10;<br />cz_u=(elewacja/10)%10;<br />LCD_INT(cz_d);<br />LCD_WriteText(&quot;.&quot;);<br />LCD_INT(cz_u);[/syntax]<br /><br />proszę o pomoc <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> <br /><br />pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2695">Dolot</a> — 15 lut 2014, o 13:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[nixie]]></name></author>
<updated>2014-02-12T14:00:16+01:00</updated>
<published>2014-02-12T14:00:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=70108#p70108</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=70108#p70108"/>
<title type="html"><![CDATA[Re: RTC DS1307 - problem z uruchomieniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=70108#p70108"><![CDATA[
Zamień na<br />[syntax=c]m = dt-&gt;mm;        <br />h = dt-&gt;hh;[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=358">nixie</a> — 12 lut 2014, o 14:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Dolot]]></name></author>
<updated>2014-02-12T12:04:56+01:00</updated>
<published>2014-02-12T12:04:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=70085#p70085</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=70085#p70085"/>
<title type="html"><![CDATA[Re: RTC DS1307 - problem z uruchomieniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=70085#p70085"><![CDATA[
Poprawiłem <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> przepraszam moje nie do patrzenie <br /><br />Wysłane z mojego Nexus 4 przy użyciu Tapatalka<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2695">Dolot</a> — 12 lut 2014, o 12:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Dolot]]></name></author>
<updated>2014-02-12T12:03:44+01:00</updated>
<published>2014-02-12T12:03:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=70084#p70084</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=70084#p70084"/>
<title type="html"><![CDATA[Re: Odp: RTC DS1307 - problem z uruchomieniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=70084#p70084"><![CDATA[
<div class="quotetitle">MirkoT napisał(a):</div><div class="quotecontent"><br />Tyle, że chyba zapomniałeś pogrubić... <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":-(" title="Smutny" /><br />A przynajmniej u mnie się nic pogrubionego nie wyświetla<br /></div><br /><div class="quotetitle">Dolot napisał(a):</div><div class="quotecontent"><br />Witam,<br /><br />posiadam sobie taką funkcje, która będzie sobie wykonywać takie działanko jak jest w niej zawarte.... które posłuży mi za wskaźnik do tablicy itd itd na razie jest to mało istotne.<br /><br />Chodzi o to że wywala mi błąd w tej funkcji akurat.... w miejscach pogrubionych. te błędy to:<br /><br />błąd 1 -&gt;&gt;&gt;&gt;&gt;&gt; main.c:181:2: warning: statement with no effect [-Wunused-value] oraz błąd 2 -&gt;&gt;&gt;&gt;&gt; main.c:182:3: warning: assignment makes integer from pointer without a cast [enabled by default]<br /><br />[syntax=c]void minutygodziny(TDATETIME * dt) {<br />dt-&gt;mm;         // w tym miejscu jest błąd 1<br />m=dt;             // w tym miejscu jest błąd 2<br />LCD_WriteText(&quot;m=&quot;);<br />LCD_INT(m);<br />dt-&gt;hh;          // w tym miejscu jest błąd 1<br />h=dt;             // w tym miejscu jest błąd 2<br />LCD_WriteText(&quot;h=&quot;);<br />LCD_INT(h);<br />TMINUTA = (m+h*60)/15;<br />LCD_WriteText(&quot;;&quot;);<br />LCD_INT(TMINUTA);<br />}[/syntax]<br /><br />program zegarka:<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 />#include &quot;I2C_TWI/i2c_twi.h&quot;<br />#include &quot;lcd/hd44780.h&quot;<br />#include &lt;math.h&gt;<br /><br />uint8_t TMINUTA;<br />uint8_t m;<br />uint8_t h;<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)//definicja pinu, do którego podłączona jest dioda<br />#define LED_TOG PORTB ^= LED_PIN//makrodefinicja - zmiana stanu diody<br />//-------------------------------------------------------------------------------------------------------------------------------------<br />//<br />//DEFINIOWEANIE FUNCKJI<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_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 />void show_date( TDATETIME * dt );<br />void minutygodziny(TDATETIME*dt);<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 tab&#91;4&#93;={1,2,3,4};<br />//int i;<br />//-------------------------------------------------------------------------------------------------------------------------------------<br />//<br />//FUNCKJA WŁASCIWA<br />//<br />//-------------------------------------------------------------------------------------------------------------------------------------<br />int main(void){<br />DDRB |= LED_PIN;<br />LCD_Initalize();<br />_delay_ms(100);<br />LCD_Clear();<br />//LCD_WriteText(&quot;DUPA BLADA&quot;);<br />// konfiguracja wejścia INT0<br />PORTD |= (1&lt;&lt;PD2);<br />EICRA |= (1&lt;&lt;ISC01)|(1&lt;&lt;ISC00); // zbocze narastające<br /><br />i2cSetBitrate(100);<br /><br />DS1307_init();<br />//DS1307_set_time( 9,1, 0 );<br />//DS1307_set_date(14,2,14,1);<br />sei();<br /><br />while(1){<br />if( EIFR &amp; (1&lt;&lt;INTF0) ) {<br />DS1307_get_datetime(&amp;datetime);<br /><br />LCD_GoTo(0,2);<br />//show_date( &amp;datetime );<br />minutygodziny(&amp;datetime);<br />LCD_GoTo(0,1);<br />show_time(&amp;datetime);<br />EIFR |= (1&lt;&lt;INTF0);  // kasowanie flagi<br />}<br />}<br /><br />}<br />//-------------------------------------------------------------------------------------------------------------------------------------<br />//<br />//DEFINICJE FUNCKJI<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 );<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_WriteText(&quot;0&quot;);<br />LCD_INT(dt-&gt;hh);<br />LCD_WriteText(&quot;:&quot;);<br />if( dt-&gt;mm &lt; 10 ) LCD_WriteText(&quot;0&quot;);<br />LCD_INT(dt-&gt;mm);<br />LCD_WriteText(&quot;:&quot;);<br />if( dt-&gt;ss &lt; 10 ) LCD_WriteText(&quot;0&quot;);<br />LCD_INT(dt-&gt;ss);<br />}<br />//zaspisanie na wyswietlacz daty<br />void show_date( TDATETIME * dt ) {<br />LCD_WriteText(&quot;20&quot;);<br />if( dt-&gt;year &lt; 10 ) LCD_WriteText(&quot;0&quot;);<br />LCD_INT(dt-&gt;year);<br />LCD_WriteText(&quot;-&quot;);<br />if( dt-&gt;month &lt; 10 ) LCD_WriteText(&quot;0&quot;);<br />LCD_INT(dt-&gt;month);<br />LCD_WriteText(&quot;-&quot;);<br />if( dt-&gt;day &lt; 10 ) LCD_WriteText(&quot;0&quot;);<br />LCD_INT(dt-&gt;day);<br />LCD_WriteText(&quot;  &quot;);<br />LCD_WriteText( days&#91; dt-&gt;dayofwek - 1 &#93; );<br />}<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 />}<br /><br /><br /><br />//pobranie minut i godzin oraz obliczenie<br />void minutygodziny(TDATETIME * dt) {<br />dt-&gt;mm;<br />m=dt;<br />LCD_WriteText(&quot;m=&quot;);<br />LCD_INT(m);<br />dt-&gt;hh;<br />h=dt;<br />LCD_WriteText(&quot;h=&quot;);<br />LCD_INT(h);<br />TMINUTA = (m+h*60)/15;<br />LCD_WriteText(&quot;;&quot;);<br />LCD_INT(TMINUTA);<br />}[/syntax]<br /></div><br /><br />Wysłane z mojego Nexus 4 przy użyciu Tapatalka<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2695">Dolot</a> — 12 lut 2014, o 12:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2014-02-12T11:34:24+01:00</updated>
<published>2014-02-12T11:34:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=70078#p70078</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=70078#p70078"/>
<title type="html"><![CDATA[Re: RTC DS1307 - problem z uruchomieniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=70078#p70078"><![CDATA[
Tyle, że chyba zapomniałeś pogrubić... <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":-(" title="Smutny" /><br />A przynajmniej u mnie się nic pogrubionego nie wyświetla<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 12 lut 2014, o 11:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Dolot]]></name></author>
<updated>2014-02-12T10:55:09+01:00</updated>
<published>2014-02-12T10:55:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=70069#p70069</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=70069#p70069"/>
<title type="html"><![CDATA[Re: RTC DS1307 - problem z uruchomieniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=70069#p70069"><![CDATA[
Witam,<br /><br />posiadam sobie taką funkcje, która będzie sobie wykonywać takie działanko jak jest w niej zawarte.... które posłuży mi za wskaźnik do tablicy itd itd na razie jest to mało istotne.<br /><br />Chodzi o to że wywala mi błąd w tej funkcji akurat.... w miejscach pogrubionych. te błędy to:<br /><br />main.c:181:2: warning: statement with no effect [-Wunused-value] oraz main.c:182:3: warning: assignment makes integer from pointer without a cast [enabled by default]<br /><br />[syntax=c]void minutygodziny(TDATETIME * dt) {<br />dt-&gt;mm;<br />m=dt;<br />LCD_WriteText(&quot;m=&quot;);<br />LCD_INT(m);<br />&#91;color=#FF0000&#93;&#91;b&#93;dt-&gt;hh;<br />h=dt;&#91;/b&#93;&#91;/color&#93;<br />LCD_WriteText(&quot;h=&quot;);<br />LCD_INT(h);<br />TMINUTA = (m+h*60)/15;<br />LCD_WriteText(&quot;;&quot;);<br />LCD_INT(TMINUTA);<br />}[/syntax]<br /><br />program zegarka:<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 />#include &quot;I2C_TWI/i2c_twi.h&quot;<br />#include &quot;lcd/hd44780.h&quot;<br />#include &lt;math.h&gt;<br /><br />uint8_t TMINUTA;<br />uint8_t m;<br />uint8_t h;<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)//definicja pinu, do którego podłączona jest dioda<br />#define LED_TOG PORTB ^= LED_PIN//makrodefinicja - zmiana stanu diody<br />//-------------------------------------------------------------------------------------------------------------------------------------<br />//<br />//DEFINIOWEANIE FUNCKJI<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_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 />void show_date( TDATETIME * dt );<br />void minutygodziny(TDATETIME*dt);<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 tab&#91;4&#93;={1,2,3,4};<br />//int i;<br />//-------------------------------------------------------------------------------------------------------------------------------------<br />//<br />//FUNCKJA WŁASCIWA<br />//<br />//-------------------------------------------------------------------------------------------------------------------------------------<br />int main(void){<br />DDRB |= LED_PIN;<br />LCD_Initalize();<br />_delay_ms(100);<br />LCD_Clear();<br />//LCD_WriteText(&quot;DUPA BLADA&quot;);<br />// konfiguracja wejścia INT0<br />PORTD |= (1&lt;&lt;PD2);<br />EICRA |= (1&lt;&lt;ISC01)|(1&lt;&lt;ISC00); // zbocze narastające<br /><br />i2cSetBitrate(100);<br /><br />DS1307_init();<br />//DS1307_set_time( 9,1, 0 );<br />//DS1307_set_date(14,2,14,1);<br />sei();<br /><br />while(1){<br />if( EIFR &amp; (1&lt;&lt;INTF0) ) {<br />DS1307_get_datetime(&amp;datetime);<br /><br />LCD_GoTo(0,2);<br />//show_date( &amp;datetime );<br />minutygodziny(&amp;datetime);<br />LCD_GoTo(0,1);<br />show_time(&amp;datetime);<br />EIFR |= (1&lt;&lt;INTF0);  // kasowanie flagi<br />}<br />}<br /><br />}<br />//-------------------------------------------------------------------------------------------------------------------------------------<br />//<br />//DEFINICJE FUNCKJI<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 );<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_WriteText(&quot;0&quot;);<br />LCD_INT(dt-&gt;hh);<br />LCD_WriteText(&quot;:&quot;);<br />if( dt-&gt;mm &lt; 10 ) LCD_WriteText(&quot;0&quot;);<br />LCD_INT(dt-&gt;mm);<br />LCD_WriteText(&quot;:&quot;);<br />if( dt-&gt;ss &lt; 10 ) LCD_WriteText(&quot;0&quot;);<br />LCD_INT(dt-&gt;ss);<br />}<br />//zaspisanie na wyswietlacz daty<br />void show_date( TDATETIME * dt ) {<br />LCD_WriteText(&quot;20&quot;);<br />if( dt-&gt;year &lt; 10 ) LCD_WriteText(&quot;0&quot;);<br />LCD_INT(dt-&gt;year);<br />LCD_WriteText(&quot;-&quot;);<br />if( dt-&gt;month &lt; 10 ) LCD_WriteText(&quot;0&quot;);<br />LCD_INT(dt-&gt;month);<br />LCD_WriteText(&quot;-&quot;);<br />if( dt-&gt;day &lt; 10 ) LCD_WriteText(&quot;0&quot;);<br />LCD_INT(dt-&gt;day);<br />LCD_WriteText(&quot;  &quot;);<br />LCD_WriteText( days&#91; dt-&gt;dayofwek - 1 &#93; );<br />}<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 />}<br /><br /><br /><br />//pobranie minut i godzin oraz obliczenie<br />void minutygodziny(TDATETIME * dt) {<br />dt-&gt;mm;<br />m=dt;<br />LCD_WriteText(&quot;m=&quot;);<br />LCD_INT(m);<br />dt-&gt;hh;<br />h=dt;<br />LCD_WriteText(&quot;h=&quot;);<br />LCD_INT(h);<br />TMINUTA = (m+h*60)/15;<br />LCD_WriteText(&quot;;&quot;);<br />LCD_INT(TMINUTA);<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2695">Dolot</a> — 12 lut 2014, o 10:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Wilu88]]></name></author>
<updated>2014-02-11T09:51:51+01:00</updated>
<published>2014-02-11T09:51:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69834#p69834</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69834#p69834"/>
<title type="html"><![CDATA[Re: RTC DS1307 - problem z uruchomieniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69834#p69834"><![CDATA[
A nie prościej po prostu pobierać minuty z DS'a i wykonywać kod gdy minuta równa się 0, 15, 30 ,45<br /><br />No i <strong>nixie </strong>mnie ubiegł <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> — 11 lut 2014, o 09:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[nixie]]></name></author>
<updated>2014-02-11T09:50:11+01:00</updated>
<published>2014-02-11T09:50:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69833#p69833</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69833#p69833"/>
<title type="html"><![CDATA[Re: RTC DS1307 - problem z uruchomieniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69833#p69833"><![CDATA[
Może tak po get_datetime:<br /><br />[syntax=basic4gl]if(!(datetime.mm % 15) &amp;&amp; !datetime.ss)<br />{<br />    // wyświetl<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=358">nixie</a> — 11 lut 2014, o 09:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Dolot]]></name></author>
<updated>2014-02-11T09:25:53+01:00</updated>
<published>2014-02-11T09:25:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69829#p69829</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69829#p69829"/>
<title type="html"><![CDATA[Re: RTC DS1307 - problem z uruchomieniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69829#p69829"><![CDATA[
Czas jest odczytywany jeżeli na wejściu INT0 pojawi się zbocze narastające z wyjścia SQW DS'a ( pętla poniżej ): <br /><br />[syntax=c]while(1){<br />if( EIFR &amp; (1&lt;&lt;INTF0) ) {<br />DS1307_get_datetime(&amp;datetime);<br />LCD_GoTo(0,2);<br />show_date( &amp;datetime );<br />LCD_GoTo(0,1);<br />show_time(&amp;datetime);<br />EIFR |= (1&lt;&lt;INTF0);  // kasowanie flagi<br />}<br />}[/syntax]<br /><br />Dlatego właśnie pytam jak to można zrealizować ( może ktoś ma jakiś pomysł ) , bo jestem kompletnie początkującym i nie za bardzo ogarniam <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 1 minucie ]</span></strong><br /><br />i właśnie chciałbym docelowo żeby nie wyświetlał daty, a właśnie aktualną pozycję słońca obliczoną co 15 min.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2695">Dolot</a> — 11 lut 2014, o 09:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2014-02-11T09:19:37+01:00</updated>
<published>2014-02-11T09:19:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69828#p69828</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69828#p69828"/>
<title type="html"><![CDATA[Re: RTC DS1307 - problem z uruchomieniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69828#p69828"><![CDATA[
A co ile odczytujesz czas z DSa<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: kilkunastu sekundach ]</span></strong><br /><br />No bo po co Ci liczyć przerwania skoro w RTC masz dokładny czas?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 11 lut 2014, o 09:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Dolot]]></name></author>
<updated>2014-02-11T08:49:37+01:00</updated>
<published>2014-02-11T08:49:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69827#p69827</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69827#p69827"/>
<title type="html"><![CDATA[Re: RTC DS1307 - problem z uruchomieniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69827#p69827"><![CDATA[
Witam, <br /><br />Mam pytanko. W jaki sposób mogę zrealizować zliczanie impulsów na wejściu INT0 z tego mojego DS1307. Ponieważ chciałbym aby układ co 15 min wyświetlał coś na wyświetlaczu. Na pewno muszę wykorzystać tutaj timer 0. Tylko, że przerwania są wyłączone i wykorzystuje tutaj flagi INTF0 oraz INTF1. Jak mogę tego dokonać ? ktoś ma jakiś pomysł ? <br /><br /><br />pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2695">Dolot</a> — 11 lut 2014, o 08:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2014-02-10T19:53:24+01:00</updated>
<published>2014-02-10T19:53:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69732#p69732</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69732#p69732"/>
<title type="html"><![CDATA[Re: RTC DS1307 - problem z uruchomieniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69732#p69732"><![CDATA[
Mniej więcej rozumiem. Dzięki<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 10 lut 2014, o 19:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Dolot]]></name></author>
<updated>2014-02-10T19:48:21+01:00</updated>
<published>2014-02-10T19:48:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69729#p69729</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69729#p69729"/>
<title type="html"><![CDATA[Re: RTC DS1307 - problem z uruchomieniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69729#p69729"><![CDATA[
pozycję słońca mam obliczoną w excelu dla konkretnego dnia np 1 dnia w roku (wzorcową ) odczytaną co 15 min i to wrzucam w tablicę, następnie obliczam różnicę pomiędzy najwyższym punktem każdego dnia a dniem wzorcowym(1 w roku). i dalej do każdej pozycji wzorcowego dnia dodaję różnicę jaka wyszła dla danego dnia i to będzie wysokość z na jakiej znajduje się. Zrobiłem obliczenia tak a nie inaczej, ponieważ dokładność 5 stopni w zupełności mi wystarczy... to ma być tylko prosty projekt na układy mikroprocesorowe nic więcej mi nie potrzeba. Trochę to skomplikowane ale ciężko to wytłumaczyć pisząc jak skończę excela to może zapodam i na pewno jak skończę program również zapodam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2695">Dolot</a> — 10 lut 2014, o 19:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2014-02-10T18:42:09+01:00</updated>
<published>2014-02-10T18:42:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69707#p69707</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69707#p69707"/>
<title type="html"><![CDATA[Re: RTC DS1307 - problem z uruchomieniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69707#p69707"><![CDATA[
<div class="quotetitle">Dolot napisał(a):</div><div class="quotecontent"><br />Problem rozwiązany nie spojrzałem w notę katalogową ATmegi 328P i tam rejestrem odpowiedzialnym za flagi jest EIFCR a nie MCUCR. Mój błąd <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />dalej będę aktualizował swój program do momentu aż będzie wyświetlał pozycję słońca.<br /><br />pozdrawiam<br /></div><br />A jak będziesz obliczał pozycję słońca?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 10 lut 2014, o 18:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Dolot]]></name></author>
<updated>2014-02-10T17:48:29+01:00</updated>
<published>2014-02-10T17:48:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69696#p69696</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69696#p69696"/>
<title type="html"><![CDATA[Re: RTC DS1307 - problem z uruchomieniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69696#p69696"><![CDATA[
Problem rozwiązany nie spojrzałem w notę katalogową ATmegi 328P i tam rejestrem odpowiedzialnym za flagi jest EIFCR a nie MCUCR. Mój błąd <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />dalej będę aktualizował swój program do momentu aż będzie wyświetlał pozycję słońca.<br /><br />pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2695">Dolot</a> — 10 lut 2014, o 17:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Dolot]]></name></author>
<updated>2014-02-10T16:02:00+01:00</updated>
<published>2014-02-10T16:02:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69678#p69678</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69678#p69678"/>
<title type="html"><![CDATA[Re: RTC DS1307 - problem z uruchomieniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69678#p69678"><![CDATA[
Witam,<br /><br />Kolejna część zmagań z moim zegarkiem na DS1307.<br /><br />Tym razem mam problem z odczytem danych z DS'a.<br /><br />Poniżej przedstawiam program napisany w oparciu o poradnik Pana Mirka.<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 />#include &quot;I2C_TWI/i2c_twi.h&quot;<br />#include &quot;lcd/hd44780.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 /><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 />void show_date( TDATETIME * dt );<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_Initalize();<br />_delay_ms(100);<br />LCD_Clear();<br />LCD_WriteText(&quot;........&quot;);<br />// konfiguracja wejścia INT0<br />PORTD |= (1&lt;&lt;PD2);<br />MCUCR |= (1&lt;&lt;ISC01)|(1&lt;&lt;ISC00); // zbocze narastające<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( EIFR &amp; (1&lt;&lt;INTF0) ) {<br />DS1307_get_datetime(&amp;datetime);<br />LCD_GoTo(0,2);<br />show_date( &amp;datetime );<br />LCD_GoTo(0,1);<br />show_time(&amp;datetime);<br />EIFR |= (1&lt;&lt;INTF0);  // kasowanie flagi<br />}<br />}<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_WriteText(&quot;0&quot;);<br />LCD_INT(dt-&gt;hh);<br />LCD_WriteText(&quot;:&quot;);<br />if( dt-&gt;mm &lt; 10 ) LCD_WriteText(&quot;0&quot;);<br />LCD_INT(dt-&gt;mm);<br />LCD_WriteText(&quot;:&quot;);<br />if( dt-&gt;ss &lt; 10 ) LCD_WriteText(&quot;0&quot;);<br />LCD_INT(dt-&gt;ss);<br />}<br />//zaspisanie na wyswietlacz daty<br />void show_date( TDATETIME * dt ) {<br />LCD_WriteText(&quot;20&quot;);<br />if( dt-&gt;year &lt; 10 ) LCD_WriteText(&quot;0&quot;);<br />LCD_INT(dt-&gt;year);<br />LCD_WriteText(&quot;-&quot;);<br />if( dt-&gt;month &lt; 10 ) LCD_WriteText(&quot;0&quot;);<br />LCD_INT(dt-&gt;month);<br />LCD_WriteText(&quot;-&quot;);<br />if( dt-&gt;day &lt; 10 ) LCD_WriteText(&quot;0&quot;);<br />LCD_INT(dt-&gt;day);<br />LCD_WriteText(&quot;  &quot;);<br />LCD_WriteText( days&#91; dt-&gt;dayofwek - 1 &#93; );<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 />Układ generuje 1 Hz, jednak nie wyświetla mi się nic na wyświetlaczu, tylko te kropki które znajdują się po inicie LCD. Wydaje mi się że problem jest w tym momencie:<br /><br />[syntax=c]// konfiguracja wejścia INT0<br />PORTD |= (1&lt;&lt;PD2);<br />MCUCR |= (1&lt;&lt;ISC01)|(1&lt;&lt;ISC00); // zbocze narastające[/syntax]<br />.<br />.<br />.<br />[syntax=c]while(1){<br />LED_TOG;<br />_delay_ms(100);<br />if( EIFR &amp; (1&lt;&lt;INTF0) ) {<br />DS1307_get_datetime(&amp;datetime);<br />LCD_GoTo(0,2);<br />show_date( &amp;datetime );<br />LCD_GoTo(0,1);<br />show_time(&amp;datetime);<br />EIFR |= (1&lt;&lt;INTF0);  // kasowanie flagi<br />}<br />}[/syntax]<br /><br />dioda, którą migam w tej pętli while działa .... dlatego uważam że coś jest nie tak z tym if'em nie wiem czy są złe deklaracje flagi INT0. Nie mogę do tego dojść.<br /><br />Jeżeli ktoś jest chętny pomóc zapraszam <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> <br />pozdrawiam<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 11 minutach ]</span></strong><br /><br />uP nie reaguje w ogóle na to zbocze narastające tak mi się wydaję ... liczę na jakieś podopowiedzi <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=2695">Dolot</a> — 10 lut 2014, o 16:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Dolot]]></name></author>
<updated>2014-02-09T21:56:56+01:00</updated>
<published>2014-02-09T21:56:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69549#p69549</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69549#p69549"/>
<title type="html"><![CDATA[Re: RTC DS1307 - problem z uruchomieniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69549#p69549"><![CDATA[
Moja funckja inicjalizująca wygląda obecnie następująco:<br /><br />[syntax=c]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 />}[/syntax]<br /><br />dioda mrugnęła tylko raz i na tym koniec ... wydaję mi się że to chyba nie najlepiej <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /> <br /><br /><br />poprawka .... moja błędny adres TWI_write_buf(DS1307_ADDR_Z, <strong>0x07</strong>, 1, &amp;CH) już naprawiam<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 3 minutach ]</span></strong><br /><br />Działa dziękuję bardzo za pomoc koledzy <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> <br /><br />Tematu proszę nie zamykać, ponieważ mogę mieć kolejne pytania <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> <br /><br />pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2695">Dolot</a> — 9 lut 2014, o 21:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[nixie]]></name></author>
<updated>2014-02-09T21:49:54+01:00</updated>
<published>2014-02-09T21:49:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69548#p69548</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69548#p69548"/>
<title type="html"><![CDATA[Re: RTC DS1307 - problem z uruchomieniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69548#p69548"><![CDATA[
Bit CH w rejestrze 0x00 musisz ustawić na 0 dopiero wtedy ruszy oscylator.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=358">nixie</a> — 9 lut 2014, o 21:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kropek]]></name></author>
<updated>2014-02-09T21:40:49+01:00</updated>
<published>2014-02-09T21:40:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69544#p69544</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69544#p69544"/>
<title type="html"><![CDATA[Re: RTC DS1307 - problem z uruchomieniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69544#p69544"><![CDATA[
Witam. <br />Jak ja walczyłem z tym układem który także nie chciał migać z 1Hz.<br />Myślę ,że musisz jeszcze w inicjalizacji tego układu ustawić bit7 o nazwie CH w adresie 00h.<br /><br />pozdrawiam robert<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1560">kropek</a> — 9 lut 2014, o 21:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Dolot]]></name></author>
<updated>2014-02-09T21:39:32+01:00</updated>
<published>2014-02-09T21:39:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69543#p69543</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69543#p69543"/>
<title type="html"><![CDATA[Re: RTC DS1307 - problem z uruchomieniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69543#p69543"><![CDATA[
<div class="quotetitle">jacekk232 napisał(a):</div><div class="quotecontent"><br />Podłącz do procka diodę LED i migaj nią w pętli while. Będzie wiadomo czy program wchodzi do while czy może zawiesza się gdzieś podczas komunikacji i nie konfiguruje DS-a.<br /></div><br /><br />Done ... dioda mryga ... program wchodzi do pętli ... to co to może oznaczać ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2695">Dolot</a> — 9 lut 2014, o 21:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jacekk232]]></name></author>
<updated>2014-02-09T21:24:23+01:00</updated>
<published>2014-02-09T21:24:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69541#p69541</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69541#p69541"/>
<title type="html"><![CDATA[Re: RTC DS1307 - problem z uruchomieniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69541#p69541"><![CDATA[
Podłącz do procka diodę LED i migaj nią w pętli while. Będzie wiadomo czy program wchodzi do while czy może zawiesza się gdzieś podczas komunikacji i nie konfiguruje DS-a.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=204">jacekk232</a> — 9 lut 2014, o 21:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Dolot]]></name></author>
<updated>2014-02-09T19:07:56+01:00</updated>
<published>2014-02-09T19:07:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69505#p69505</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69505#p69505"/>
<title type="html"><![CDATA[Re: RTC DS1307 - problem z uruchomieniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69505#p69505"><![CDATA[
O ile się nie mylę to popełniłem błąd w 17 wierszu kodu .... zdefiniowanie funkcji a nie jej deklaracja za chwilę sprawdzę <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 24 minutach ]</span></strong><br /><br />niestety nadal nie działa ....<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2695">Dolot</a> — 9 lut 2014, o 19:07</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Zaba]]></name></author>
<updated>2014-02-09T18:28:56+01:00</updated>
<published>2014-02-09T18:28:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69488#p69488</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69488#p69488"/>
<title type="html"><![CDATA[Re: RTC DS1307 - problem z uruchomieniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5911&amp;p=69488#p69488"><![CDATA[
Jeśli sprawdzałeś w DS-ie to widocznie się mylę <br />dość dawno to czytałem i nie tak dokładnie ja <br />tylko korzystałem z możliwości kalibracji a tam 512 mi wystarczało<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1044">Zaba</a> — 9 lut 2014, o 18:28</p><hr />
]]></content>
</entry>
</feed>