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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2020-10-15T10:42:44+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=23387&amp;mode</id>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2020-10-15T10:42:44+01:00</updated>
<published>2020-10-15T10:42:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23387&amp;p=229427#p229427</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23387&amp;p=229427#p229427"/>
<title type="html"><![CDATA[Re: DS3231]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23387&amp;p=229427#p229427"><![CDATA[
<div class="quotetitle">cineks napisał(a):</div><div class="quotecontent"><br />Przypomnę, że działam na kodzie od @mirekk36.<br /></div><br />A co to za różnica na jakim kodzie działasz ? co to kod tego gościa <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> można obsługiwać TYLKO w jakiś jeden sposób.<br /><br />Proponuję przede wszystkim częściej zaglądaj do Bluebooka i rób ćwiczenia .... bo kłaniają się tu takie podstawy właśnie z książki ... <br /><br />zamiast szukać po necie jakichś mega wymyślnych kodów zrób najpierw coś sam mega prostego np:<br /><br />masz gdzieś zmienne do trzymania czasu, same nazwy chyba mówią co w nich jest:<br /><br />[syntax=c]uint8_t hh;<br />uint8_t mm;<br />uint8_t ss;[/syntax]<br /><br />i teraz jak porównywać różne czasy:<br /><br />[syntax=c]uint32_t czas1 = (hh*60*60) + (mm*60) + ss;<br />uint32_t czas2 = (hh*60*60) + (mm*60) + ss;[/syntax]<br /><br />i później warunek<br /><br />[syntax=c]if( czas1 &gt; czas2 ) ..... zrób coś tam[/syntax]<br /><br />postaraj się zrozumieć jak to działa to sam jak poczytasz Bluebooka dojdziesz, że można to ładnie sobie upakować później do jakiejś struktury i nawet datę dodać do czasu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 15 paź 2020, o 10:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[cineks]]></name></author>
<updated>2020-10-15T09:48:16+01:00</updated>
<published>2020-10-15T09:48:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23387&amp;p=229425#p229425</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23387&amp;p=229425#p229425"/>
<title type="html"><![CDATA[Re: DS3231]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23387&amp;p=229425#p229425"><![CDATA[
OO super , Dzięki<br />spróbuje Twój kod.<br />W miedzy czasie poszperałem na elektrodzie i znalazłem takie coś:<br /><br />[syntax=c]void change_komfort (TDATETIME * dt) {<br />uint8_t dhh = dt-&gt;hh;<br />uint8_t dmm = dt-&gt;mm;<br />uint16_t  CzasDoInt(dhh, dmm) {<br />       return (dhh*60) + dmm;<br />   }<br /><br />if(CzasDoInt(on_g,on_m) != CzasDoInt(off_g,off_m))<br />{<br />   if(CzasDoInt(on_g,on_m) &lt; CzasDoInt(off_g,off_m))<br />   {<br />      if((CzasDoInt(dhh,dmm) &gt;= CzasDoInt(on_g,on_m)) &amp;&amp; ( CzasDoInt(dhh,dmm) &lt; CzasDoInt(off_g,off_m)))<br />      {<br />GLCD_Bitmap_digit(slonce, 188, 2, 24, 24);<br />komfort_h = 1;<br />komfort_l = 0;<br />//GLCD_Bitmap_digit(literaM, 217, 5, 18, 18);<br />//wyjscie(on);<br />      }<br />      else<br />      {<br />GLCD_Bitmap_digit(ksiezyc, 188, 2, 24, 24);<br />komfort_l = 1;<br />komfort_h = 0;<br />//GLCD_Bitmap_digit(literaM, 217, 5, 18, 18);<br /><br />//      wyjscie(off);<br />      }<br />   }<br />   else<br />   {<br />      if((CzasDoInt(dhh,dmm) &lt; CzasDoInt(on_g,on_m)) &amp;&amp; (CzasDoInt(dhh,dmm) &gt;= CzasDoInt(off_g,off_m)))<br />      {<br />GLCD_Bitmap_digit(ksiezyc, 188, 2, 24, 24);<br />komfort_l = 1;<br />//GLCD_Bitmap_digit(literaM, 217, 5, 18, 18);<br />//         wyjscie(off);<br />      }<br />      else<br />      {<br />GLCD_Bitmap_digit(slonce, 188, 2, 24, 24);<br />komfort_h = 1;<br />//GLCD_Bitmap_digit(literaM, 217, 5, 18, 18);<br />//wyjscie(on);<br />      }<br />   }<br />}<br />else<br />{<br />GLCD_Bitmap_digit(ksiezyc, 188, 2, 24, 24);<br />//GLCD_Bitmap_digit(literaM, 217, 5, 18, 18);<br />//wyjscie(off);<br />}<br />}[/syntax]<br /><br />działa, czy to jest dobrze, nie wiem, dlatego piszę, może poprawicie mnie.<br /><br />Potrzebuje z tej funkcji wykorzystać &quot;komfort_l&quot;  i &quot;komfort_h by&quot;  potem zmieniać zakres histerezy<br /><br />[syntax=c]void histereza(void){<br />if ((komfort_h = 1))<br />{<br />if (celcjus  &lt;= 21 - 1)<br />  {<br />  GLCD_Bitmap_digit(wlacz, 188, 36, 24, 24);<br />  }<br />if (celcjus &gt;= 21 + 1)<br />{<br /> GLCD_Bitmap_digit(wylacz, 188, 36, 24, 24);<br />  }<br />}<br />else<br />if ((komfort_l = 1)) {<br />  if (celcjus  &lt; 17 - 1)<br />  {<br />  GLCD_Bitmap_digit(wlacz, 188, 36, 24, 24);<br />  }<br />if (celcjus &gt; 17 + 1)<br />{<br /> GLCD_Bitmap_digit(wylacz, 188, 36, 24, 24);<br />  }<br />}<br />}[/syntax]<br /><br />Założenie tej funkcja jest taka, że jak jest temperatura &quot;dzienna&quot; to termostat pracuje na &quot;wyższych&quot; temperaturach a jak jest temperatura nocna to na &quot;niższych&quot; i to niestety to nie działa. <br />Chwilowo jest na sztywno ustawione wartości temp, ale docelowo będzie pobierana z funkcji <br /><br />void show_temperature(TTEMP * tmp) i też bym prosił o pomoc jak to ogarnąć, (Przypomnę, że działam na kodzie od @mirekk36.)<br /><br />pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21562">cineks</a> — 15 paź 2020, o 09:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Rafał555]]></name></author>
<updated>2020-10-13T20:59:00+01:00</updated>
<published>2020-10-13T20:59:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23387&amp;p=229404#p229404</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23387&amp;p=229404#p229404"/>
<title type="html"><![CDATA[Re: DS3231]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23387&amp;p=229404#p229404"><![CDATA[
Pakuję cały ten czas do jednego &quot;gara&quot;<br /><br />[syntax=c]typedef union{<br />uint32_t gar;<br /> struct{<br />uint8_t ss;<br />uint8_t mm;<br />uint8_t hh;<br />uint8_t zero_byte;<br />};<br />}TALARMY;[/syntax]<br /><br />A potem w programie tego uint32 porównuję sobie np. tak<br /><br />[syntax=c]bool sprawdzanie_czasowek(TALARMY out_on, TALARMY out_off){<br />   bool ctr;<br /><br />   if(out_on.gar&gt;out_off.gar){<br /><br />   if ((out_on.gar &lt; aktual_time.gar) || (out_off.gar &gt; aktual_time.gar))<br />ctr = 1;<br />else<br />ctr = 0;<br />}<br />else<br />{<br />if ((out_on.gar &lt; aktual_time.gar) &amp;&amp; (out_off.gar &gt; aktual_time.gar))<br />ctr = 1;<br />else<br />ctr = 0;<br />}<br />   return ctr;<br />   }[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2697">Rafał555</a> — 13 paź 2020, o 20:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Draxter32]]></name></author>
<updated>2020-10-12T20:00:15+01:00</updated>
<published>2020-10-12T20:00:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23387&amp;p=229395#p229395</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23387&amp;p=229395#p229395"/>
<title type="html"><![CDATA[Re: DS3231]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23387&amp;p=229395#p229395"><![CDATA[
<div class="quotetitle">cineks napisał(a):</div><div class="quotecontent"><br />@Draxter32 timestamp jest mi znany, ale to ciężko wyłuskać godziny, przynajmniej dla mnie.<br /></div><br />Funkcja mktime() konwertuje wspomnianą wcześniej strukturę do timestamp. Odwrtną funkcjonalność daje localtime(). Tutaj trochę więcej informacji: <a href="https://www.nongnu.org/avr-libc/user-manual/group__avr__time.html#gae114b9ba0fce4e2d6297e0e66768bb75"  class="postlink">Link</a><br /><br />Tutaj przyotowałe krótki przykład: <a href="http://cpp.sh/5xmab"  class="postlink">cpp.sh/5xmab</a><br />Oczywiście trzeba dołączyć odpowiednie biblioteki dla mikrokontrolera.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 54 minutyach ]</span></strong><br /><br /><div class="quotetitle">Draxter32 napisał(a):</div><div class="quotecontent"><br /><div class="quotetitle">cineks napisał(a):</div><div class="quotecontent">@Draxter32 timestamp jest mi znany, ale to ciężko wyłuskać godziny, przynajmniej dla mnie.<br /></div><br />Funkcja mktime() konwertuje wspomnianą wcześniej strukturę do timestamp. Odwrtną funkcjonalność daje localtime(). Tutaj trochę więcej informacji: <a href="https://www.nongnu.org/avr-libc/user-manual/group__avr__time.html#gae114b9ba0fce4e2d6297e0e66768bb75"  class="postlink">Link</a><br /><br />Tutaj przyotowałem krótki przykład: <a href="http://cpp.sh/5xmab"  class="postlink">cpp.sh/5xmab</a><br />Oczywiście trzeba dołączyć odpowiednie biblioteki dla mikrokontrolera.</div><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 55 minutach ]</span></strong><br /><br /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8185">Draxter32</a> — 12 paź 2020, o 20:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[cineks]]></name></author>
<updated>2020-10-12T19:23:33+01:00</updated>
<published>2020-10-12T19:23:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23387&amp;p=229394#p229394</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23387&amp;p=229394#p229394"/>
<title type="html"><![CDATA[Re: DS3231]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23387&amp;p=229394#p229394"><![CDATA[
Dzięki za odpowiedź<br />@andrews oczywiście przedstawiłem tylko kawałeczek, bo listing byłby b. długi.<br />tak samo robię dla minut,  i cała data, więc tego jest dużo, dlatego chce to jakoś uprościć. <br />Graficzne liczby są w takiej postaci jak piszesz<br /><br />[syntax=c]const unsigned char numer0l&#91;&#93; PROGMEM  = {<br />0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x3C, 0x00, 0x00, 0x1F, 0x3F, 0x00,......[/syntax]<br /><br />spróbuje Twoje rozwiązanie.<br /><br />@Rafał555 mógłbyś trochę więcej napisać, nie ukrywam, że Twoje rozwiązanie &quot;brzmi&quot; prościej, ale nie jestem biegły,<br />dlatego proszę o większą pomoc.<br /><br />@Draxter32 timestamp jest mi znany, ale to ciężko wyłuskać godziny, przynajmniej dla mnie.<br /><br />Pozdrawiam <br />cineks<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21562">cineks</a> — 12 paź 2020, o 19:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[andrews]]></name></author>
<updated>2020-10-12T17:06:25+01:00</updated>
<published>2020-10-12T17:06:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23387&amp;p=229392#p229392</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23387&amp;p=229392#p229392"/>
<title type="html"><![CDATA[Re: DS3231]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23387&amp;p=229392#p229392"><![CDATA[
<div class="quotetitle">cineks napisał(a):</div><div class="quotecontent"><br />[syntax=c]void show_time(TDATETIME * dt) {<br />        if (dt-&gt;hh == 0) {<br />        GLCD_Bitmap_digit(numer0l, 0, 0, 24, 30);<br />        GLCD_Bitmap_digit(numer0l, 25, 0, 24, 30);<br />        }<br />        if (dt-&gt;hh == 01) {<br />        GLCD_Bitmap_digit(numer0l, 0, 0, 24, 30);<br />        GLCD_Bitmap_digit(numer1l, 25, 0, 24, 30);<br />        }<br />        else if (dt-&gt;hh == 2){<br />        GLCD_Bitmap_digit(numer0l, 0, 0, 24, 30);<br />        GLCD_Bitmap_digit(numer2l, 25, 0, 24, 30);<br />        }<br />        else if (dt-&gt;hh == 3){<br />        GLCD_Bitmap_digit(numer0l, 0, 0, 24, 30);<br />        GLCD_Bitmap_digit(numer3l, 25, 0, 24, 30);<br />        }<br />        else if (dt-&gt;hh == 4){<br />        GLCD_Bitmap_digit(numer0l, 0, 0, 24, 30);<br />        GLCD_Bitmap_digit(numer4l, 25, 0, 24, 30);<br />        }[/syntax]<br />No i właśnie pytanie jak i czy można to uprościć.<br /></div><br /><br />Ja myślę, że to nawet trzeba uprościć. Fragment kodu, który przedstawiłeś, wyświetla tylko godziny od 0 do 4, a gdzie reszta? Co z minutami i sekundami? Jak długa byłaby funkcja napisana w ten sposób?<br />Spróbuj może jakoś tak:<br />[syntax=c]// zakładam, że Twoje cyfry to coś w stylu<br />unsigned char numer0l&#91;&#93; = {/*dane*/};<br />unsigned char numer1l&#91;&#93; = {/*dane*/};<br />unsigned char numer2l&#91;&#93; = {/*dane*/};<br />unsigned char numer3l&#91;&#93; = {/*dane*/};<br />// ... i tak dalej<br /><br />// stwórz sobie tablicę wskaźników<br />unsigned char * cyfry&#91;10&#93; = {numer0l,numer1l,numer2l,numer3l,numer4l,<br />                             numer5l,numer6l,numer7l,numer8l,numer9l};<br /><br />// a wyświetlenie godziny stanie się banalne<br />void show_time(TDATETIME * dt) {<br />    <br />    uint8_t n;<br /><br />    // wyświetlenie dziesiątek godzin<br />    n = dt-&gt;hh / 10;<br />    GLCD_Bitmap_digit(cyfry&#91;n&#93;, 0, 0, 24, 30);<br /><br />    // wyświetlenie jednostek godzin<br />    n = dt-&gt;hh % 10;<br />    GLCD_Bitmap_digit(cyfry&#91;n&#93;, 25, 0, 24, 30);<br /><br />    // godzina wyświetlona, teraz analogicznie dla minut i sekund<br />    // (oczywiście współrzędne trzeba odpowiednio zmodyfikować)<br />    <br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14165">andrews</a> — 12 paź 2020, o 17:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Rafał555]]></name></author>
<updated>2020-10-12T13:14:47+01:00</updated>
<published>2020-10-12T13:14:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23387&amp;p=229389#p229389</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23387&amp;p=229389#p229389"/>
<title type="html"><![CDATA[Re: DS3231]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23387&amp;p=229389#p229389"><![CDATA[
Ja strukturę z czasem zapakowałem do int32 za pomocą unii i te liczby porównuję.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2697">Rafał555</a> — 12 paź 2020, o 13:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Draxter32]]></name></author>
<updated>2020-10-12T11:09:16+01:00</updated>
<published>2020-10-12T11:09:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23387&amp;p=229388#p229388</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23387&amp;p=229388#p229388"/>
<title type="html"><![CDATA[Re: DS3231]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23387&amp;p=229388#p229388"><![CDATA[
<div class="quotetitle">cineks napisał(a):</div><div class="quotecontent"><br />pytanie nr2<br />do przełączania temperatury dziennej na nocną potrzebuje porównać godzinę zapisaną z aktualną.<br />może mi ktoś powiedzieć jak to zrobić?<br /></div><br />Porównać tzw. znaczniki czasu - timestampy.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8185">Draxter32</a> — 12 paź 2020, o 11:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[cineks]]></name></author>
<updated>2020-10-12T10:51:23+01:00</updated>
<published>2020-10-12T10:51:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23387&amp;p=229387#p229387</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23387&amp;p=229387#p229387"/>
<title type="html"><![CDATA[DS3231]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23387&amp;p=229387#p229387"><![CDATA[
Witam,<br />buduje  prosty sterownik pieca gazowego (RTC; temperatura dzienna/nocna; godziny z temp nocną/dzienną); <br />mam pytanie nr1 :<br />Odczytuje czas i zamieniam je na duże &quot;graficzne&quot; liczby.<br />Robię tak samo z datą.<br />Liczby &quot;graficzne&quot; są umieszczone w osobnym pliku.<br />No i właśnie pytanie jak i czy można to uprościć.<br /><br />[syntax=c]void show_time(TDATETIME * dt) {<br />if (dt-&gt;hh == 0) {<br />GLCD_Bitmap_digit(numer0l, 0, 0, 24, 30);<br />GLCD_Bitmap_digit(numer0l, 25, 0, 24, 30);<br />}<br />if (dt-&gt;hh == 01) {<br />GLCD_Bitmap_digit(numer0l, 0, 0, 24, 30);<br /> GLCD_Bitmap_digit(numer1l, 25, 0, 24, 30);<br />}<br />else if (dt-&gt;hh == 2){<br />GLCD_Bitmap_digit(numer0l, 0, 0, 24, 30);<br />GLCD_Bitmap_digit(numer2l, 25, 0, 24, 30);<br />}<br />else if (dt-&gt;hh == 3){<br />GLCD_Bitmap_digit(numer0l, 0, 0, 24, 30);<br />GLCD_Bitmap_digit(numer3l, 25, 0, 24, 30);<br />}<br />else if (dt-&gt;hh == 4){<br />GLCD_Bitmap_digit(numer0l, 0, 0, 24, 30);<br />GLCD_Bitmap_digit(numer4l, 25, 0, 24, 30);<br />}[/syntax]<br /><br />i pytanie nr2<br />do przełączania temperatury dziennej na nocną potrzebuje porównać godzinę zapisaną z aktualną.<br />może mi ktoś powiedzieć jak to zrobić?<br /><br />kod zegara zaczerpnięty od @mirekk36 ( RTC DS3231 - najdokładniejszy zegarek na świecie? - Mirekk36)<br /><br />platforma to Atmega32;  Wyświetlacz 240x64 na t6963c; 11.059MHz<br />pozdrawiam<br />cineks<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21562">cineks</a> — 12 paź 2020, o 10:51</p><hr />
]]></content>
</entry>
</feed>