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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2021-01-30T13:14:48+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=23571&amp;mode</id>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2021-01-30T13:14:48+01:00</updated>
<published>2021-01-30T13:14:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23571&amp;p=230832#p230832</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23571&amp;p=230832#p230832"/>
<title type="html"><![CDATA[Re: PCF8563 - problem z datą]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23571&amp;p=230832#p230832"><![CDATA[
No i SUPER! o to chodziło - gratulacje <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> — 30 sty 2021, o 13:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mtbchn]]></name></author>
<updated>2021-01-30T13:10:48+01:00</updated>
<published>2021-01-30T13:10:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23571&amp;p=230830#p230830</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23571&amp;p=230830#p230830"/>
<title type="html"><![CDATA[Re: PCF8563 - problem z datą]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23571&amp;p=230830#p230830"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br /><div class="quotetitle">mtbchn napisał(a):</div><div class="quotecontent">Widzę, że rok zapisany jest pod adresem 0x08 w postaci dwuliczbowej<br /></div><br />Nie - rok jest zapisywany jako JEDNA liczba a jej możliwe do przyjęcia wartości to od 0 do 99. Wszystko zapisane na jednym bajcie i bez żadnego kodowania BCD, więc prościej się nie da.<br />Dlatego myślę że jak zajrzysz do BB i przejrzysz opis sposobu zapisu do starszej wersji PCF'a to sporo ci to da. W szczególności jeśli na początek napiszesz sobie własną funkcję to swojego scalaka do zapisu daty i czasu. Na razie pomiń tą funkcję z poradnika w ogóle ok?<br /><br />Jak zaczniesz pisać własne ustawianie czasu i daty to pokaż tu - wtedy łatwiej będzie ci szybko pomóc ok?</div><br /><br /><br />Sytuacja opanowana. Napisałem własne funkcje, zegarek pięknie działa a przy okazji zrozumiałem zasadność maskowania danych, które pobieram z poszczególnych adresów PCF8563.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18960">mtbchn</a> — 30 sty 2021, o 13:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2021-01-29T23:11:29+01:00</updated>
<published>2021-01-29T23:11:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23571&amp;p=230824#p230824</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23571&amp;p=230824#p230824"/>
<title type="html"><![CDATA[Re: PCF8563 - problem z datą]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23571&amp;p=230824#p230824"><![CDATA[
<div class="quotetitle">mtbchn napisał(a):</div><div class="quotecontent"><br />Widzę, że rok zapisany jest pod adresem 0x08 w postaci dwuliczbowej<br /></div><br />Nie - rok jest zapisywany jako JEDNA liczba a jej możliwe do przyjęcia wartości to od 0 do 99. Wszystko zapisane na jednym bajcie i bez żadnego kodowania BCD, więc prościej się nie da.<br />Dlatego myślę że jak zajrzysz do BB i przejrzysz opis sposobu zapisu do starszej wersji PCF'a to sporo ci to da. W szczególności jeśli na początek napiszesz sobie własną funkcję to swojego scalaka do zapisu daty i czasu. Na razie pomiń tą funkcję z poradnika w ogóle ok?<br /><br />Jak zaczniesz pisać własne ustawianie czasu i daty to pokaż tu - wtedy łatwiej będzie ci szybko pomóc ok?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 29 sty 2021, o 23:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mtbchn]]></name></author>
<updated>2021-01-29T21:33:01+01:00</updated>
<published>2021-01-29T21:33:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23571&amp;p=230820#p230820</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23571&amp;p=230820#p230820"/>
<title type="html"><![CDATA[Re: PCF8563 - problem z datą]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23571&amp;p=230820#p230820"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />to jest kompletne nieporozumienie .... proponuję ci wrócić na chwilę do Bluebooka i zobaczyć jak wygląda taka podstawowe podejście do zapisu / odczytu z PCF8583 - z wyjaśnieniem właśnie rejestrów itp - żebyś wiedział co i gdzie trzeba sobie zmienić.<br /></div><br /><br /><br />Tak uczynię. Widzę, że rok zapisany jest pod adresem 0x08 w postaci dwuliczbowej (od 0 do 99, czyli tak jak w DS3231). Tylko stanąłem w miejscu, usiłując przerobić funkcję set_rtc_date(). Przestudiuję raz jeszcze BB.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18960">mtbchn</a> — 29 sty 2021, o 21:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2021-01-29T21:23:24+01:00</updated>
<published>2021-01-29T21:23:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23571&amp;p=230819#p230819</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23571&amp;p=230819#p230819"/>
<title type="html"><![CDATA[Re: PCF8563 - problem z datą]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23571&amp;p=230819#p230819"><![CDATA[
<div class="quotetitle">mtbchn napisał(a):</div><div class="quotecontent"><br />Domyślam się, że jest to kwestia innych niż w PCF8583 rejestrów, w których przechowywany jest rok oraz sposobu jego przechowywania.<br /></div><br />No ale zobacz, piszesz że &quot;domyślasz&quot; się więc wydawać by się mogło, że nawet nie zajrzałeś do noty PDF, a jeśli będą (i są) różnice no to jak możesz się spodziewać, że w taki sam sposób jak z BB odczytasz czy zapiszesz rok?<br /><br />A tu niespodzianka - na końcu sam prezentujesz ładnie i konkretny wycinek noty PDF, który prezentuje te rejestry do przechowywania czasu i daty w twoim scalaku.<br /><br />Masz podane tam bardzo wyraźnie w którym rejestrze tzn pod jakim adresem przechowywany jest rok, i co więcej masz tam też przecież jak byk napisane, że rok trzymany jest jako liczba w zakresie 0-99 a ty tymczasem w kodzie niefrasobliwie zapisujesz sobie i odczytujesz nie dość, że sposobem z Bluebooka dla PCF8583 czyli pod jego adresy i wręcz bity - to na dodatek próbujesz zapisywać rok w postaci liczby która jest większa niż 99 - tak czy nie ?<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 3 minutach ]</span></strong><br /><br />a nie - jednak nie - ty w ogóle wykorzystałeś nadrzędną moją jakąś funkcję z poradnika set_rtc_date() która później dzieli zapis roku w specyficzny sposób tak aby zapisać wprawdzie rok jako liczbę dwubajtową ale wykorzystując do tego jeszcze wolną pamięć RAM w PCF8583 poza kilkoma bitami gdzie końcówkę roku można przechowywać tylko jako liczbę od 0-4<br /><br />to jest kompletne nieporozumienie .... proponuję ci wrócić na chwilę do Bluebooka i zobaczyć jak wygląda taka podstawowe podejście do zapisu / odczytu z PCF8583 - z wyjaśnieniem właśnie rejestrów itp - żebyś wiedział co i gdzie trzeba sobie zmienić.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 29 sty 2021, o 21:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mtbchn]]></name></author>
<updated>2021-01-29T17:25:43+01:00</updated>
<published>2021-01-29T17:25:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23571&amp;p=230816#p230816</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23571&amp;p=230816#p230816"/>
<title type="html"><![CDATA[PCF8563 - problem z datą]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23571&amp;p=230816#p230816"><![CDATA[
Cześć,<br /><br />przerobiłem cały cykl Mirka (YouTube) dotyczący RTC i scalaka PCF8583. Sam posiadam układ PCF8563, podłączony do uC ATmega644P. Po drobnych modyfikacjach kodu (włączenie przerwania na wyjściu INT w PCF8563) udało mi się uruchomić układ, nawiązać połączenie, ustawić i odczytać godzinę, ale mam problem z datą. Domyślam się, że jest to kwestia innych niż w PCF8583 rejestrów, w których przechowywany jest rok oraz sposobu jego przechowywania. <br /><br />Korzystam z bibliotek I2C/TWI z Bluebook'a. <br /><br />Mogę zarówno ustawić, jak i bezproblemowo odczytać godzinę na ekranie LCD.<br /><br />Problem:<br />- używając funkcji set_rtc_date( &amp;datetime, 2015,14,2 ); na ekranie uzyskuję efekt: -325.14.02, który czasem losowo przechodzi w efekt: -325.04.02<br /><br />Poniżej przedstawiam ciało obu funkcji, odpowiedzialnych za datę (ustawianie i pobieranie):<br /><br />[syntax=c]void set_rtc_date( TDATETIME * dt, uint16_t YY, uint8_t MM, uint8_t DD )<br />{<br />dt -&gt; pcf_buf&#91;3&#93; = dec2bcd(DD) | ((YY&amp;0x03) &lt;&lt; 6);<br />dt -&gt; pcf_buf&#91;4&#93; = dec2bcd(MM) | (oblicz_week_day(DD, MM, YY) &lt;&lt; 5);<br />TWI_write_buf( PCF8563_ADDR, 0x05, 2, &amp;dt -&gt; pcf_buf&#91;3&#93; );<br />TWI_write_buf( PCF8563_ADDR, 0x10, 2, (uint8_t*)&amp;YY );<br />}[/syntax]<br /><br />[syntax=c]void get_rtc_datetime( TDATETIME * dt )<br />{<br />TWI_read_buf( PCF8563_ADDR, 2, 5, dt-&gt;pcf_buf);<br />TWI_read_buf( PCF8563_ADDR, 0x10, 2, (uint8_t*) &amp;dt-&gt;YY);<br /><br />int8_t i;<br />uint8_t * wsk = dt -&gt; pcf_buf;//wskaznik na pierwszy znak bufora<br /><br />#if DATETIME_AS_STRING == 1<br />char * znak = dt -&gt; time;<br />#endif<br /><br />for( i = 2; i &gt; -1; i-- )<br />{<br />#if DATETIME_AS_STRING == 1<br />*(znak++) = ((*(wsk + i) &amp; ( i == 2 ? 0x3f : 0x7f)) &gt;&gt; 4) + '0';//dziesiątki godzin<br />*(znak++) = (*(wsk + i) &amp; 0x0f) + '0';//jednostki godzin<br />*(znak++) = i ? ':' : 0;//wpisuje zero na koniec stringa<br />#endif<br />*( (uint8_t *)dt + 2 - i) = bcd2dec( *(wsk + i) );<br />}<br /><br />dt -&gt; DD = bcd2dec( *(wsk+3) &amp; 0x3f );<br />uint8_t yr = wsk&#91;3&#93; &gt;&gt; 6;<br /><br /><br />//sylwestrowa procedura dla PCF8563<br />if( (dt -&gt; YY &amp; 3) != yr){<br />while( (dt -&gt; YY &amp; 3) != yr ) dt -&gt; YY++;<br />TWI_write_buf( PCF8563_ADDR, 0x10, 2, (uint8_t *)&amp;dt -&gt; YY);<br />}<br /><br /><br />dt -&gt; MM = bcd2dec( *(wsk+4) &amp; 0x1f );<br /><br />dt -&gt; weekday = wsk&#91;4&#93; &gt;&gt; 5;<br /><br />#if DATETIME_AS_STRING == 1<br /><br />znak = dt -&gt; date;<br /><br /><br />if( dt -&gt; YY &lt; 10 ) *(znak++) = '0';<br />if( dt -&gt; YY &lt; 100 ) *(znak++) = '0';<br />if( dt -&gt; YY &lt; 1000 ) *(znak++) = '0';<br />itoa(dt -&gt; YY, znak, 10 );<br /><br />znak = dt -&gt; date;<br />znak += 4;<br />*(znak++) = DATE_SEPARATOR;<br /><br />*(znak++) = ( (wsk&#91;4&#93; &amp; 0x1f ) &gt;&gt; 4 ) + '0';<br />*(znak++) = ( (wsk&#91;4&#93; &amp; 0x0f ) ) + '0';<br /><br />*(znak++) = DATE_SEPARATOR;<br /><br />*(znak++) = ( ( wsk&#91;3&#93; &amp; 0x3f ) &gt;&gt; 4 ) + '0';<br />*(znak++) = ( ( wsk&#91;3&#93; &amp; 0x0f ) ) + '0';<br /><br />*znak = 0;<br /><br />#endif<br />}[/syntax]<br /><br />Załączam również fragment dokumentacji scalaka PCF8563. Proszę o pomoc w modyfikacji kodu, tak aby usprawnić <strong>ustawianie i pobieranie / wyświetlanie daty</strong>. Z góry dziękuję.<br /><br /><a href="https://obrazkiforum.atnel.pl/18960/9b18ae013ea2afeddf72a660263217b7.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/18960/9b18ae013ea2afeddf72a660263217b7.png" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18960">mtbchn</a> — 29 sty 2021, o 17:25</p><hr />
]]></content>
</entry>
</feed>