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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2012-11-05T21:57:20+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=1678&amp;mode</id>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2012-11-05T21:57:20+01:00</updated>
<published>2012-11-05T21:57:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1678&amp;p=18283#p18283</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1678&amp;p=18283#p18283"/>
<title type="html"><![CDATA[Re: Obsługa setnych częsci sekundy dla PCF8583]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1678&amp;p=18283#p18283"><![CDATA[
Można też tak go skonfigurować, że wcale przerwania nie generuje. A domyślnie znaczy... po włączeniu zasilania.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 5 lis 2012, o 21:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-11-01T17:58:23+01:00</updated>
<published>2012-11-01T17:58:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1678&amp;p=18003#p18003</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1678&amp;p=18003#p18003"/>
<title type="html"><![CDATA[Re: Obsługa setnych częsci sekundy dla PCF8583]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1678&amp;p=18003#p18003"><![CDATA[
.... no i co dalej po <br /><br />&quot;oraz (...)&quot; ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />bo wyjście INT może być zależne od alarmu timera itp<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 1 lis 2012, o 17:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Ledes]]></name></author>
<updated>2012-11-01T17:52:27+01:00</updated>
<published>2012-11-01T17:52:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1678&amp;p=18002#p18002</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1678&amp;p=18002#p18002"/>
<title type="html"><![CDATA[Re: Obsługa setnych częsci sekundy dla PCF8583]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1678&amp;p=18002#p18002"><![CDATA[
Mirek, to dlaczego piszesz w książce (strona 281), cytuję:<br /><br />&quot;W domyślnej konfiguracji, ustawienia pozwalają na to, aby był generowany sygnał przerwania na wyjściu INT co sekundę oraz (...)&quot;.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=355">Ledes</a> — 1 lis 2012, o 17:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-11-01T17:44:14+01:00</updated>
<published>2012-11-01T17:44:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1678&amp;p=18001#p18001</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1678&amp;p=18001#p18001"/>
<title type="html"><![CDATA[Re: Obsługa setnych częsci sekundy dla PCF8583]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1678&amp;p=18001#p18001"><![CDATA[
w tym się nie da ale w innych się da - tyle że nie tyle ile by ci się podobało - a zgodnie z propozycją producenta opisaną w PDF, np PCF8563 ? zdaje się<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 1 lis 2012, o 17:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Ledes]]></name></author>
<updated>2012-11-01T17:33:24+01:00</updated>
<published>2012-11-01T17:33:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1678&amp;p=17998#p17998</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1678&amp;p=17998#p17998"/>
<title type="html"><![CDATA[Re: Obsługa setnych częsci sekundy dla PCF8583]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1678&amp;p=17998#p17998"><![CDATA[
Czy idzie ustawić sobie wg własnego upodobania częstotliwość generowania przerwania przez PCF8583? Poczytałem datasheet i w rejestrach nie ma o tym mowy. Chciałbym, żeby zamiast co sekundę było np. co 0.1 sekundy. Da się?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=355">Ledes</a> — 1 lis 2012, o 17:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-10-21T22:21:17+01:00</updated>
<published>2012-10-21T22:21:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1678&amp;p=17313#p17313</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1678&amp;p=17313#p17313"/>
<title type="html"><![CDATA[Re: Obsługa setnych częsci sekundy dla PCF8583]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1678&amp;p=17313#p17313"><![CDATA[
I2C nie jest tak wrażliwe na ustawianie prędkości. To że układ może działać na 100kHz to nie oznacza że nie zadziała jak transmisja pójdzie np nawet na 5kHz <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .... ale na pewno może nie zadziałać gdy ustawisz na 400kHz<br /><br />więc np gdy masz taktowanie procka 8MHz to z domyślnych ustawień rejestrów (bez tej funkcji) ustawi się taka prędkość że będzie hulać - ale jak dasz taktowanie np zewn. kwarcem 16MHz - to już QNIEC - bo się prędkość zwiększy np mocno ponad 100kHz i ten RTC nie wydoli. Rozumiesz ? Ale np gdybyś działał z jakimś innym układem na I2C i on byłby zdolny gadać na 400kHz albo i więcej to też pewnie by działała komunikacja<br /><br />to o to chodzi w I2C<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 21 paź 2012, o 22:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kiclaw]]></name></author>
<updated>2012-10-21T22:07:42+01:00</updated>
<published>2012-10-21T22:07:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1678&amp;p=17311#p17311</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1678&amp;p=17311#p17311"/>
<title type="html"><![CDATA[Re: Obsługa setnych częsci sekundy dla PCF8583]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1678&amp;p=17311#p17311"><![CDATA[
OK OK, wszystko jasne.<br /><br />Zaciekawiła mnie jeszcze jedna rzecz, gdy w transmisji USART nie ustawimy prędkości, to po prostu nie będzie komunikacji, tutaj gdy wywalę całkowicie funkcję i2cSetBitrate(), to transmisja nadal chodzi. <br /><br />Czyżby ten układ miał jakąś standardową częstotliwość gdy mu jej nie podamy?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=600">kiclaw</a> — 21 paź 2012, o 22:07</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-10-21T15:09:55+01:00</updated>
<published>2012-10-21T15:09:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1678&amp;p=17270#p17270</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1678&amp;p=17270#p17270"/>
<title type="html"><![CDATA[Re: Obsługa setnych częsci sekundy dla PCF8583]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1678&amp;p=17270#p17270"><![CDATA[
i2cSetBitrate() służy Tylko i Wyłącznie do ustawiania prędkości komunikacji na magistrali I2C  .....<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 21 paź 2012, o 15:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kiclaw]]></name></author>
<updated>2012-10-21T14:53:43+01:00</updated>
<published>2012-10-21T14:53:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1678&amp;p=17269#p17269</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1678&amp;p=17269#p17269"/>
<title type="html"><![CDATA[Re: Obsługa setnych częsci sekundy dla PCF8583]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1678&amp;p=17269#p17269"><![CDATA[
W zasadzie to mirek36 i Antystatyczny dobrze odgadnęli moje intencje bo właśnie chciałem zrobić stoper <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Tak więc dzięki za wyjaśnienie.<br /><br />Jeszcze jedno:<br /><div class="quotetitle">Antystatyczny napisał(a):</div><div class="quotecontent"><br />W przypadku, gdy chcesz zbudować stoper, korzystniej jest odczytywać z częstotliwością np. 100kHz (to jest max częstotliwość dla PCF8583) jego zawartości.<br /></div><br /><br />Czyli chodzi Ci o to, żeby tak skonfigurować inne przerwanie w Atmedze, żeby działało z częstotliwością 100kHz? Pytam bo ta częstotliwość skojarzyła mi się z funkcją <strong>i2cSetBitrate()</strong>, ale to raczej nie o to chodzi.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=600">kiclaw</a> — 21 paź 2012, o 14:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-10-20T20:38:11+01:00</updated>
<published>2012-10-20T20:38:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1678&amp;p=17212#p17212</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1678&amp;p=17212#p17212"/>
<title type="html"><![CDATA[Re: Obsługa setnych częsci sekundy dla PCF8583]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1678&amp;p=17212#p17212"><![CDATA[
A ok - niestety - to nie żadna reguła - czasem ze zmęczenia mi się coś plącze - i dlatego rzeczywiście (widzę teraz dopiero) - że to  Antystatyczny pisał o stoperze .... więc to po prostu najczystsza pomyłka z mojej strony .... ale i tak cały post nie traci sensu<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: kilkunastu sekundach ]</span></strong><br /><br /><div class="quotetitle">Antystatyczny napisał(a):</div><div class="quotecontent"><br />Przepraszam, że stworzyłem zamieszanie... Autor watku dorobił sobie do zegarka obsługę setnych częsci sekundy, co skojarzyło mi się ze stoperem i stąd to wszystko...<br /></div><br /><br />Nie nie - spokojnie to moje niedopatrzenie i wina - więc przepraszam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 20 paź 2012, o 20:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-10-20T20:30:05+01:00</updated>
<published>2012-10-20T20:30:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1678&amp;p=17209#p17209</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1678&amp;p=17209#p17209"/>
<title type="html"><![CDATA[Re: Obsługa setnych częsci sekundy dla PCF8583]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1678&amp;p=17209#p17209"><![CDATA[
Gwyn - niestety nie zrozumiałem w ogóle tego niuansu tzn co miałeś na myśli.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 20 paź 2012, o 20:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-10-20T19:29:54+01:00</updated>
<published>2012-10-20T19:29:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1678&amp;p=17200#p17200</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1678&amp;p=17200#p17200"/>
<title type="html"><![CDATA[Re: Obsługa setnych częsci sekundy dla PCF8583]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1678&amp;p=17200#p17200"><![CDATA[
No dokładnie o to chodzi - jak widzisz sam doszedłeś. Jak ktoś robi zwykły zegarek to na co mu setne sekundy ?<br /><br />Wtedy INT się przydaje bo można ładnie synchronizować.... A do stopera to z drugiej strony aż szkoda wykorzystywać RTC (ale to moim zdaniem) można go zrobić równie dobrze na samym procku bez żadnego RTC w czym kłopot ?<br /><br />Zatem rozumiesz chyba, że moje porady dotyczyły zwykłego zegarka a nie zabaw w stopery <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> bo jak mówię - stoper to ja bym bez żadnego RTC robił ... a wolę zdecydowanie zmniejszyć ilość odczytów na I2C<br /><br />druga rzecz - nawet jeśli wykorzystywać przerwanie - to przykład przerwania INTx i do tego ustawianie w nim TYLKO flagi - to tylko panie kolego dydaktyczny przykład jak można wykorzystywać przerwania - co to są flagi itp ...<br /><br />więc często powtarzam, żeby nie traktować kodów z książki jako wytycznych do końca życia - to ma nauczyć podstaw - a bardziej zaawansowane rzecz są i będą dalej ...<br /><br />zatem wracając do przerwania INT - nawet wcale nie trzeba włączać przerwania aby ustawiać tą flagę - można równie dobrze w tej pętli sprawdzać flagę sprzętową od INTx i ją ręcznie zerować, wtedy mniej miejsca we Flashu stracisz i w pamięci RAM nie musisz flagi zakładać, np dla ATmega32:<br /><br />[syntax=c]if( GICR &amp; (1&lt;&lt;INTF0) ) {<br />  // tutaj odczyt z RTC<br /><br />  GIFR |= (1&lt;&lt;INTF0); // &lt;------ tu kasujemy sprzętową FLAGĘ<br />}[/syntax]<br /><br />widzisz jaka oszczędność ? tak też można <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> — 20 paź 2012, o 19:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kiclaw]]></name></author>
<updated>2012-10-20T19:07:49+01:00</updated>
<published>2012-10-20T19:07:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1678&amp;p=17198#p17198</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1678&amp;p=17198#p17198"/>
<title type="html"><![CDATA[Obsługa setnych częsci sekundy dla PCF8583]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1678&amp;p=17198#p17198"><![CDATA[
Witam<br /><br />Mam taki pytanie o sens flagi int0_flag z przerwania INT0, z przykładu RTC z niebieskiej książki.<br /><br />Mianowicie, chciałem sobie dołożyć do zegarka setne części sekundy. Podokładałem odpowiednie zmienne, no i coś mi nie grało, bo sekundy leciały w porządku a setne części wskoczyły na 50 i koniec. <br /><br />W końcu po małej zabawie z tym zmieniłem if (int0_flag ) na if (1), i setne sekundy zaczęły mi się ładnie pojawiać na LCD.<br /><br />Co więcej gdy zakomentowałem przerwanie ISR( INT0_vect ) i wyciągnąłem przewód z wyjścia INT PCF-a, to układ mi równie ładnie zliczał czas wraz z setnymi. Więc tutaj jest moje pytanie, jaki ma sens stosowanie tego przerwania oraz tej flagi skoro bez nich działa dobrze, a z przerwaniem i flagą setne części zatrzymują się na wartości 50 (resztę tj.minuty zlicza OK) .<br /><br />Mirek napisał w swojej książce że wyjście INT warto podłączać, ze względu na obsługę innych wyświetlaczy, no OK, tylko jak wtedy to obsłużyć żeby dobrze wyświetlało setne części sekundy?<br /><br />Poniżej najważniejszy kawałek kodu programu, w tej wersji działa tak, że setne wyświetla cały czas na 50. Dużymi literami zaznaczyłem te modyfikacje(+ oczywiście odpięcie wyj INT), żeby działało OK<br /><br />[syntax=c]int main()<br />{<br />// Przerwanie INT0<br />MCUCR |= (1&lt;&lt;ISC01);// wyzwalanie zboczem opadającym<br />GICR |= (1&lt;&lt;INT0);// odblokowanie przerwania<br />PORTD |= (1&lt;&lt;PD2);// podciągnięcie pinu INT0 do VCC<br /><br /><br />volatile uint8_t set=0,ss=1,mm=2,hh=3;<br />uint8_t bufor[4];// rezerwacja bufora 4 bajty<br />uint8_t setne_sek,sekundy, minuty, godziny;<br /><br />lcd_init();<br /><br />i2cSetBitrate(100);<br /><br />sei();<br /><br />lcd_locate(0,2);<br />bufor[0] = dec2bcd(00); // setne części sekundy<br />bufor[1] = dec2bcd(00);// sekundy<br />bufor[2] = dec2bcd(00);// minuty<br />bufor[3] = dec2bcd(00);// godziny<br />// zapis 4 bajtów z bufora pod adres 0x01 w pamięci RAM naszego RTC<br />TWI_write_buf( PCF8583_ADDR, 0x01, 4, bufor );<br /><br />while(1)<br />{<br />if ( int0_flag ) //TU ZMIENIAMY NA if (1)<br />{<br />TWI_read_buf( PCF8583_ADDR, 0x01, 4, bufor );<br />setne_sek =bcd2dec(bufor[set]);<br />sekundy = bcd2dec( bufor[ss] );<br />minuty = bcd2dec( bufor[mm] );<br />godziny = bcd2dec( bufor[hh] );<br />lcd_locate(1,0);<br />if( godziny &lt; 10 ) lcd_str(&quot;0&quot;);<br />lcd_int(godziny);<br />lcd_str(&quot;:&quot;);<br />if( minuty &lt; 10 ) lcd_str(&quot;0&quot;);<br />lcd_int(minuty);<br />lcd_str(&quot;:&quot;);<br />if( sekundy &lt; 10 ) lcd_str(&quot;0&quot;);<br />lcd_int(sekundy);<br />lcd_str(&quot;:&quot;);<br />if( setne_sek &lt; 10 ) lcd_str(&quot;0&quot;);<br />lcd_int(setne_sek);<br /><br /><br />int0_flag=0; //NALEŻY USUNĄĆ<br />}<br />}<br />}//klamra do main<br /><br />ISR( INT0_vect ) {<br />int0_flag = 1;<br />}                //TO PRZERWANIE USUNĄĆ + ODPIĘCIE WYJŚCIA INT<br />[/syntax]<br /><br /><br />Pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=600">kiclaw</a> — 20 paź 2012, o 19:07</p><hr />
]]></content>
</entry>
</feed>