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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-06-23T12:12:28+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=30&amp;t=12098&amp;mode</id>
<entry>
<author><name><![CDATA[Marcin_W]]></name></author>
<updated>2015-06-23T12:12:28+01:00</updated>
<published>2015-06-23T12:12:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12098&amp;p=132593#p132593</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12098&amp;p=132593#p132593"/>
<title type="html"><![CDATA[Re: DS3231 i synchronizacja licznika czasu pracy urządzenia]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12098&amp;p=132593#p132593"><![CDATA[
O widzisz... A o unix'ie jakoś w ogóle nie pomyślałem...<br />Pomysł wart przemyślenia <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=5610">Marcin_W</a> — 23 cze 2015, o 12:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[majster]]></name></author>
<updated>2015-06-23T11:38:24+01:00</updated>
<published>2015-06-23T11:38:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12098&amp;p=132592#p132592</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12098&amp;p=132592#p132592"/>
<title type="html"><![CDATA[Re: DS3231 i synchronizacja licznika czasu pracy urządzenia]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12098&amp;p=132592#p132592"><![CDATA[
Zegar ds urzywalbym do aktualnej daty i godziny.<br /><br />Godzine startu i stopu pobieralbym z ds i zapisywal w eeprom / flash<br /><br />Natomiast czas pracy liczylbym tylko iwylacznie w sekundach a konwertowal bym ja do podania ilosci dni, miesiecy, lat, godzin, minut, sekund taj jak konwertowany jest czas unix wlasnie z tej zmiennej sekundowej ktora to bylaby inkrementowana +1 gdy nadejdzie przerwanie z DS.<br /><br />Namazane ze smarta.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1628">majster</a> — 23 cze 2015, o 11:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Marcin_W]]></name></author>
<updated>2015-06-23T11:26:10+01:00</updated>
<published>2015-06-23T11:26:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12098&amp;p=132590#p132590</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12098&amp;p=132590#p132590"/>
<title type="html"><![CDATA[DS3231 i synchronizacja licznika czasu pracy urządzenia]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12098&amp;p=132590#p132590"><![CDATA[
Witam<br />Tam takie pytanie:<br />Mam urządzenie w którym mam licznik czasu pracy na zmiennych: <br /><br /><strong>sek, min, godz, dni</strong>. <br /><br />Czas pracy monitorowania to 2-4 tyg.<br />Przycisk START i licznik zaczyna odliczać czas pracy.<br /><br />Jako, że sterownik może mieć różne warunki pracy, nie polegał bym tak do końca na kwarcu atmegi, a że w szufladzie leży moduł z Arduino z układem DS3231, więc postanowiłem go wykorzystać do taktu sekundowego i raz dziennie do synchronizacji licznika.<br /><br />W tej chwili jeszcze na sucho, ale wymyśliłem to tak, że w chwili uruchomienia, do zmiennych pobieram aktualną godzinę z układu RTC. Przyjmijmy, że to zmienne: <br /><br /><strong>sek_start, min_start, godz_start, dni_start</strong>.<br /><br />Gdy mam godzinę 23, 59 to pobieram aktualną godzinę z RTC:<br /><br /><strong>sek_upd, min_upd, godz_upd, dni_upd</strong><br /><br />I teraz zastanawiam się jak efektywnie dokonywać synchronizacji czasu.<br />Widzę to tak, że od zmiennych <strong>upd</strong> odjąć zmienne <strong>start</strong>. Ale to się w sprawdzi w obrębie tych samych jednostek. Gorzej jak przesunie się dzień, godzina itd. w tedy zaczną wychodzić wartości ujemne i zaczyna się bigos. <br />Można sprawdzać poprzedzającą jednostkę i jeżeli zmienił się dzień do wyniku godzin dodawać 24h, podobnie z minutami itd. <br /><br />Ale może jest na to jakiś łatwiejszy sposób, żeby nie piętrzyć kodu. Nie ukrywam, że zaczyna mi zmniejszać się ilość miejsca w pamięci procesora i chciał by jak najefektowniej to zrobić.<br /><br />Najłatwiej było by po prostu w chwili startu odliczania, wyzerować DSa i mam czysty licznik sprzętowy od zera bez ani jednej linijki kodu i to było by piękne. <br />Ale przydało by się mieć też aktualną datę rozpoczęcia i zakończenia pracy. Choć z tego jestem skłonny zrezygnować. Ewentualnie zrobię start urządzenia z synchronizacją daty przez RS'a.<br /><br />Ale może ktoś naprowadzi na coś mądrego z moją wersją synchronizacji bez zerowania zegara.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5610">Marcin_W</a> — 23 cze 2015, o 11:26</p><hr />
]]></content>
</entry>
</feed>