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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-01-21T18:44:53+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=58&amp;t=10103&amp;mode</id>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2015-01-21T18:44:53+01:00</updated>
<published>2015-01-21T18:44:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=115176#p115176</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=115176#p115176"/>
<title type="html"><![CDATA[Re: ZEGAR - problem z dokładnością czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=115176#p115176"><![CDATA[
<div class="quotetitle">Mac napisał(a):</div><div class="quotecontent"><br />zastanawiam sie nad jakąś dodatkową kalibracją.<br /></div><br />Do XTAL2 (wyjścia X) dołącz oscyloskop lub miernik częstotliwości, a jeden z kondensatorów zastąp parą kondensator o mniejszej pojemności i trymer(kondensator o zmiennej pojemności) i ustaw sobie dokładnie 8 MHz.<br /><br />Możesz też do menu dodać opcję programowej kalibracji, która raz na 24 godz będzie zmniejszać lub dodawać wpisaną liczbę sekund. Opóźnienie będzie w skali dnia, ale mnie w skali kliku dni. Przykładowo jest godzina 12:00:30. Program odejmie lub doda maksymalnie 29 sekund i zegar liczy dalej.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 21 sty 2015, o 18:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Mac]]></name></author>
<updated>2015-01-20T15:16:32+01:00</updated>
<published>2015-01-20T15:16:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=114972#p114972</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=114972#p114972"/>
<title type="html"><![CDATA[Re: ZEGAR - problem z dokładnością czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=114972#p114972"><![CDATA[
Witam ponownie <br />udało mi sie wkońcu program który nie blokuje tak procesora niestety jednak dokładnośc jest taka sama jak przy poprzedniej wersji z kwarcem zewnetrznym czyli ok 1 sek spoźnienia na 1,5h<br />zastanawiam sie nad jakąś dodatkową kalibracją.<br />albo jak tutaj kolega poradzil<br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Można też procesor puścić na np. 8MHz z wewnętrznego oscylatora a do odmierzania jednej sekundy użyć Timera2 w trybie asynchronicznym taktowanym kwarcem 32768Hz podłączonym do pinów TOSC1 i TOSC2.<br /></div><br />oto kod;<br /><br />[syntax=c]// ============== MAKRODEFINICJE DLA PREPROCESORA ==========<br /><br />#define MENU_KEY  (1&lt;&lt;PD4)<br />#define MENU  (PIND &amp; MENU_KEY)<br />#define PLUS_KEY (1&lt;&lt;PD3)<br />#define PLUS  (PIND &amp; PLUS_KEY)<br />#define MINUS_KEY (1&lt;&lt;PD2)<br />#define MINUS  (PIND &amp; MINUS_KEY)<br />#define PRZYCISKI_INPUT  ~(MENU_KEY | PLUS_KEY | MINUS_KEY)<br /><br />// ============= DEF; DEKL; DO OBSŁGI KLAWISZA =============<br /><br />typedef struct<br />{<br />volatile uint8_t *KPIN;<br />uint8_t key_mask;<br />uint8_t wait_time_s;<br />void (*kfun1)(void);<br />void (*kfun2)(void);<br />uint8_t klock;<br />uint8_t flag;<br />}TBUTTON;<br /><br />// Tmery programowe<br />volatile uint16_t Timer1, Timer2;<br /><br />//własne funkcje uzytkow.<br />void menu_zad1(void);<br />void menu_zad2(void);<br /><br />void plus_zad1(void);<br />void plus_zad2(void);<br /><br />void minus_zad1(void);<br />void minus_zad2(void);<br /><br />//funkcja obsługi pojedyńczych klawiszy<br />void key_press(TBUTTON *btn);<br />TBUTTON menu;// def. klawisza<br />TBUTTON plus;<br />TBUTTON minus;<br /><br /><br />// =============== DEFINICJE ZMIENNYCH GLOBALNYCH ==========<br /><br />volatile uint8_t sekundy;/* licznik sekund 0-59 */<br />volatile uint8_t minuty;<br />volatile uint8_t godziny;<br />volatile uint8_t cnt= 0;    /* licznik setnych sekund 0-99 */<br /><br /><br />volatile uint8_t temp_min;<br />volatile uint8_t temp_godz;<br />uint8_t pozycja_menu= 1;<br />uint8_t temp;<br /><br />// ====================== DEKLARACJE FUNKCJI =================<br /><br /><br />void PortsConfig (void);<br /><br />// ======================================= START FUNKCJI GŁÓWNEJ ============================================<br />int main(void)<br />{<br /><br />  TCCR1B |= (1&lt;&lt;WGM12);                      // ustawienie trybu CTC<br />  TCCR1B |= (1&lt;&lt;CS10) | (1&lt;&lt;CS11);           // ustawienie podziału preskalera 64<br />  OCR1A = 1249;                              // ustalenie przerwania co 10ms<br />  TIMSK |=(1&lt;&lt;OCIE1A);<br /><br />   PortsConfig();                            // konfiguracja wyjśc<br />   lcd_init();<br /><br />   //konfiguracja struktury przycisku &quot;menu&quot;<br />   menu.KPIN= &amp;PIND;<br />   menu.key_mask= MENU_KEY;<br />   menu.wait_time_s= 3;<br />   menu.kfun1= menu_zad1;<br />   menu.kfun2= menu_zad2;<br /><br />   //konfiguracja struktury przycisku &quot;plus&quot;<br />   plus.KPIN= &amp;PIND;<br />   plus.key_mask= PLUS_KEY;<br />   plus.wait_time_s= 3;<br />   plus.kfun1= plus_zad1;<br />   plus.kfun2= plus_zad2;<br /><br />   //konfiguracja struktury przycisku &quot;minus&quot;<br />   minus.KPIN= &amp;PIND;<br />   minus.key_mask= MINUS_KEY;<br />   minus.wait_time_s= 3;<br />   minus.kfun1 = minus_zad1;<br />   minus.kfun2 = minus_zad2;<br /><br />sei();<br /><br />// ---------------------------- pętla głowna ----------------------------<br />   while(1)<br />   {<br />   key_press(&amp;menu);<br />   key_press(&amp;plus);<br />   key_press(&amp;minus);<br /><br />   // obsługa menu<br />      if(!temp)<br />      {<br />      switch(pozycja_menu)<br />      {<br />      case 1:<br />      {<br />    if(!Timer2)<br />    {<br />    lcd_cls();<br />    lcd_locate(0,0);<br />    lcd_str(&quot;ustaw godzine&quot;);<br />    lcd_locate(1,0);<br />    lcd_int(temp_godz);<br />    Timer2= 5;<br />    }<br />    break;<br />      }<br />      case 2:<br />      {<br />      if(!Timer2)<br />      {<br />      lcd_cls();<br />      lcd_locate(0,0);<br />      lcd_str(&quot;ustaw minuty&quot;);<br />      lcd_locate(1,0);<br />      lcd_int(temp_min);<br />      Timer2= 5;<br />      }<br /><br />      break;<br />      }<br /><br />      }<br />      //--------- koniec switch(pozycja_menu)------------<br /><br /><br />      }<br /><br />      // obsługa wyświetlacza<br />      if(temp)<br />      {<br />      if(!Timer2)<br />  {<br />     lcd_cls();<br />         lcd_locate(0,0);<br />         lcd_str(&quot;czas&quot;);<br />         lcd_locate(1,0);<br />         lcd_int(godziny);<br />         lcd_locate(1,2);<br />         lcd_str(&quot;:&quot;);<br />         if(minuty&gt;9)<br />         {<br />         lcd_locate(1,3);<br />             lcd_int(minuty);<br />         }<br />             else<br />             {<br />             lcd_locate(1,3);<br />             lcd_str(&quot;0&quot;);<br />             lcd_locate(1,4);<br />             lcd_int(minuty);<br />             }<br /><br /><br />         lcd_locate(1,8);<br />         lcd_int(sekundy);<br /><br />         Timer2= 10;<br /><br />  }<br /><br /><br />      }<br /><br />   }<br /><br />// --------------------------koniec pętli głównej-------------------------<br /><br />}<br /><br />// ======================================== KONIEC FUNKCJI GŁÓWNEJ ===========================================<br /><br />// &lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; PROCEDURA OBSŁUGI PRZERWANIA &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;<br />ISR (TIMER1_COMPA_vect)<br />{<br />uint16_t n;<br />n= Timer1;<br />if(n) Timer1= --n;<br />n= Timer2;<br />if(n) Timer2= --n;<br /><br />if(++cnt &gt; 99)<br />{<br />sekundy++ ;<br />cnt= 0;<br />if(sekundy &gt;59)<br />{<br />minuty++ ;<br />sekundy= 0 ;<br />if(minuty &gt;59)<br />{<br />godziny++ ;<br />minuty= 0 ;<br />if (godziny &gt;23)<br />{<br />godziny= 0 ;<br />}<br /><br />}<br />}<br /><br /><br /><br />}<br />}<br /><br /><br />// ------------------------------- DEFINICJE FUNKCJI ------------------------------------------<br /><br />// ----------------- funkcja obsługi przycisku -----------------------------<br /><br /><br /><br />// ----------------- funkcja do konfigurowania portów ------------------------<br /><br />void PortsConfig (void)<br /><br />{<br />DDRD &amp;= (PRZYCISKI_INPUT);<br />PORTD |= ~(PRZYCISKI_INPUT);<br /><br />}<br /><br />// -------------------- dodatkowe funkcje obsługi klawisza --------------------<br />void key_press(TBUTTON *btn)<br />{<br />register uint8_t key_press= (*btn-&gt;KPIN &amp; btn-&gt;key_mask);<br /><br />if(!btn-&gt;klock &amp;&amp; !key_press)<br />{<br />btn-&gt;klock= 1;<br /><br />//reakcja na PRESS krótkie wciśniecie klawisza<br />if(btn-&gt;kfun1) btn-&gt;kfun1();<br />btn-&gt;flag= 1;<br />Timer1= (btn-&gt;wait_time_s * 1000)/10;<br /><br />}<br /><br />else if(btn-&gt;klock &amp;&amp; key_press)<br />{<br />(btn-&gt;klock)++;<br />if(!btn-&gt;klock)<br />{<br />Timer1= 0;<br />btn-&gt;flag= 0;<br />}<br />}<br /><br />else if(btn-&gt;flag &amp;&amp; !Timer1)<br />{<br /><br />//reakcja na dłuższe wciśniecie klawisza<br />if(btn-&gt;kfun2) btn-&gt;kfun2();<br />btn-&gt;flag= 0;<br />}<br />}<br /><br />// ------------- funkcje uzytk. -------------------------------<br /><br />void menu_zad1(void)<br />{<br /><br /><br />   pozycja_menu++;<br />   if(pozycja_menu&gt; 2) pozycja_menu = 1;<br />}<br /><br />void menu_zad2(void)<br />{<br /><br />if(temp== 0)<br />{<br />godziny= temp_godz;<br />    minuty= temp_min;<br />    sekundy= 0;<br />    cnt= 0;<br />temp++;<br /><br />}<br />else if(temp== 1)<br />{<br />temp= 0;<br />}<br />}<br />//--------------------------------------------------------------<br /><br />void plus_zad1(void)<br />{<br />if(pozycja_menu== 1)<br />{<br />temp_godz++;<br />if(temp_godz&gt; 23) temp_godz= 0;<br />}<br /><br />if(pozycja_menu== 2)<br />{<br />temp_min++;<br />if(temp_min&gt; 59) temp_min= 0;<br />}<br /><br />}<br />void plus_zad2(void)<br />{<br /><br />}<br />//--------------------------------------------------------------<br /><br />void minus_zad1(void)<br />{<br />if(pozycja_menu== 1)<br />{<br />temp_godz--;<br />if(temp_godz&gt; 23)<br />{<br />temp_godz= 23;<br />}<br /><br /><br />}<br />if(pozycja_menu== 2)<br />{<br />temp_min--;<br />if(temp_min&gt;59)<br />{<br />temp_min= 59;<br />}<br /><br />}<br /><br />}<br />void minus_zad2(void)<br />{<br /><br />}<br /><br />// ============================================== END OF FILE ================================================[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3917">Mac</a> — 20 sty 2015, o 15:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Mac]]></name></author>
<updated>2015-01-15T20:07:20+01:00</updated>
<published>2015-01-15T20:07:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=114245#p114245</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=114245#p114245"/>
<title type="html"><![CDATA[Re: ZEGAR - problem z dokładnością czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=114245#p114245"><![CDATA[
Witam<br /><br />Ciekawostka właśnie podłączyłem kwarc 8Mhz i 2 kondesatorki i po 10 minutach wg stoperu nie widze różnicy <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":-)" title="Szczęśliwy" />, ale i tak zamierzam napisac program nieblokujący procka<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 26 minutach ]</span></strong><br /><br />Dzięki Majster przerobie ten program wg twoich rad<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3917">Mac</a> — 15 sty 2015, o 20:07</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[majster]]></name></author>
<updated>2015-01-15T15:24:58+01:00</updated>
<published>2015-01-15T15:24:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=114219#p114219</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=114219#p114219"/>
<title type="html"><![CDATA[Re: ZEGAR - problem z dokładnością czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=114219#p114219"><![CDATA[
Delkarujesz sobie zmienna np tempmenu.<br /><br />A w petli sprawdzasz czy jest 0 czy 1 i np jezeli tempmenu = 0 wtedy obiczasz wyswietlasz itp. Jezeli zmienna tempmenu = 1 to realizujesz menu i ustawienia itp.<br /><br />Wchodzac np w ustawienia godziny przypisujesz ja np do tempgodzina tak samo robisz z minutami i mozesz spokojnie ustawiac czas.<br /><br />Jak juz ustawisz to wpisujesz do zmiennych czasu wartosci z temp zerujesz zmienna tempmenu i zegar dalej wyswietla to co liczyl w przerwaniu.<br /><br />W ten sposob nie blokujesz programu.<br /><br />Namazane ze smarta.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1628">majster</a> — 15 sty 2015, o 15:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Mac]]></name></author>
<updated>2015-01-15T10:37:44+01:00</updated>
<published>2015-01-15T10:37:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=114208#p114208</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=114208#p114208"/>
<title type="html"><![CDATA[Re: ZEGAR - problem z dokładnością czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=114208#p114208"><![CDATA[
<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />kolega ustawia bity w tccr1b a pozniej skacze do ocr1a.<br /></div><br /><br />Z tego co udało mi się rozszyfrować to myslałem że mam dobrze - jak wpisze ocr1b to dzieja sie &quot;dziwne &quot; rzeczy więc jak to powinno byc poprawnie? tak aby wszystko było z jednego typu.<br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Pozniej zamiast utworzyc zmienna temp do ustawiania czasu to wylacza przerwanie na czas peli 2 while<br /></div><br />O jaką zmienną temp chodzi?<br /><br />Z góry dzieki za wszelką pomoc <br />Majster oczywiście ze mam BB<br /><br />Pozdrawiam Mac<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3917">Mac</a> — 15 sty 2015, o 10:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Mac]]></name></author>
<updated>2015-01-13T13:57:24+01:00</updated>
<published>2015-01-13T13:57:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113988#p113988</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113988#p113988"/>
<title type="html"><![CDATA[Re: ZEGAR - problem z dokładnością czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113988#p113988"><![CDATA[
Dzieki Jacek <br />zaczynam łapać jak się uzywa wskaźników w strukturach<br />czyli :<br />wskaźnik na wskaźnik w strukturze dajemy gwiazdkę<br />wskaźnik na zwykła zmienną w strukturze - nie dajemy gwiazdki<br />wskaźnik na funkcję która też jest wskaźnikiem - również nie dajmy gwiazdki<br /><br />Pozdrawiam Mac<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3917">Mac</a> — 13 sty 2015, o 13:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jacekk232]]></name></author>
<updated>2015-01-12T20:12:25+01:00</updated>
<published>2015-01-12T20:12:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113912#p113912</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113912#p113912"/>
<title type="html"><![CDATA[Re: ZEGAR - problem z dokładnością czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113912#p113912"><![CDATA[
Zmienna KPIN w strukturze to wskaźnik na zmienną uint8_t. W tym przypadku będzie to jeden z rejestrów PINx procka.<br />Natomiast zmienna key_mask to zwykła zmienna uint8_t.<br /><br />Aby dostać się do pola struktury poprzez wskaźnik należy użyć operatora strzałki. Przy użyciu strzałki od razu wiadomo że chodzi o wartość zmiennej na którą wskazuje wskaźnik. <br /><br />W tym zapisie *btn-&gt;KPIN jest gwiazdka bo poprzez wskaźnik (operator strzałki) dostajemy się do pola struktury, które jest <strong>wskaźnikiem</strong> na zmienną uint8_t.<br />Natomiast w tym zapisie btn-&gt; key_mask poprzez wskaźnik dostajemy się do pola struktury które jest zwykłą zmienną.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=204">jacekk232</a> — 12 sty 2015, o 20:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Mac]]></name></author>
<updated>2015-01-12T17:33:54+01:00</updated>
<published>2015-01-12T17:33:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113870#p113870</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113870#p113870"/>
<title type="html"><![CDATA[Re: ZEGAR - problem z dokładnością czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113870#p113870"><![CDATA[
Zacząłem studiować poradnik Mirka Obsługa klawiszy - zwłoka czasowa<br /> <!-- m --><a class="postlink" href="http://mirekk36.blogspot.com/2012/10/obsuga-klawiszy-zwoka-czasowa-cd3.html" >http://mirekk36.blogspot.com/2012/10/ob ... a-cd3.html</a><!-- m --><br /><br />i prosiłbym o pomoc w zrozumieniiu tego wyrażenia : register uint8_t key_press = (*btn-&gt;KPIN &amp; btn-&gt;key_mask);<br />wyrażenie znajduje sie w definicji funkcji key_press()<br />bo ja to rozumiem tak; <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":-)" title="Szczęśliwy" /><br />*btn-&gt;KPIN jest to wskaźnik do struktury TBUTTON  tyle że w definicji klawisza TBUTTON button KPIN = &amp;PINC<br />czyli mozemy podstawic ( &amp;PINC &amp; btn -&gt; key-mask)  dlaczego do PINC  jest dołączony operator pobierania adresu skoro przy wskaźniku jest gwiazdka?<br /> Teraz druga część:  &amp; btn-&gt; key_mask dlaczegu tu z kolei nie ma gwiazdki przy wskaźniku ?<br /><br /> <br /><br />oto cały kod programu:<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br /> <br />#define LED1 (1&lt;&lt;PC5)<br />#define LED2 (1&lt;&lt;PC4)<br />#define LED3 (1&lt;&lt;PC6)<br />#define KEY1 (1&lt;&lt;PC7)<br /> <br />typedef struct {<br /> volatile uint8_t *KPIN;<br /> uint8_t key_mask;<br /> uint8_t wait_time_s;<br /> void (*kfun1)(void);<br /> void (*kfun2)(void);<br /> uint8_t klock;<br /> uint8_t flag;<br />} TBUTTON;<br /> <br />// timery programowe<br />volatile uint16_t Timer1, Timer2;<br /> <br />// własne funkcje użytkownika<br />void change_led1(void) {<br /> PORTC ^= LED1;<br />}<br /> <br />void change_led2(void) {<br /> PORTC ^= LED2;<br />}<br /> <br />// funkcja obsługi pojedynczych klawiszy<br />void key_press( TBUTTON * btn );<br /> <br /> <br />TBUTTON button; // definicja KLAWISZA<br /> <br />//------------------------------------------------------------------<br />int main(void) {<br /> <br /> PORTC |= KEY1;  // podciągamy linie klawiszy do VCC<br /> DDRC |= LED1|LED2|LED3;   // piny LED jako WYjścia<br /> <br /> /* Timer2 – konfigurcajca silnika timerów programowych */<br /> TCCR2  |= (1&lt;&lt;WGM21);   // tryb pracy CTC<br /> TCCR2  |= (1&lt;&lt;CS22)|(1&lt;&lt;CS21)|(1&lt;&lt;CS20); // preskaler = 1024<br /> OCR2  = 108;   // przerwanie porównania co 10ms (100Hz)<br /> TIMSK  = (1&lt;&lt;OCIE2); // Odblokowanie przerwania CompareMatch<br /> <br /> button.KPIN = &amp;PINC;<br /> button.key_mask = KEY1;<br /> button.wait_time_s = 3;<br /> button.kfun1 = change_led1;<br /> button.kfun2 = change_led2;<br /> <br /> sei();<br /> <br /> while(1) {<br /> <br />  key_press( &amp;button );<br /> <br />  // przykładowy niezależny i nieblokujący proces<br />  if( !Timer2 ) {<br />   Timer2=50;<br />   PORTC ^= LED3;<br />  }<br /> <br /> }<br /> <br />}<br />//------------------------------------------------------------------<br /> <br /> <br />void key_press( TBUTTON * btn ) {<br /> <br /> register uint8_t key_press = (*btn-&gt;KPIN &amp; btn-&gt;key_mask);<br /> <br /> if( !btn-&gt;klock &amp;&amp; !key_press ) {<br />  btn-&gt;klock=1;<br /> <br />  // reakcja na PRESS krótkie wcinięcie klawisza<br />  if(btn-&gt;kfun1) btn-&gt;kfun1();<br />  btn-&gt;flag=1;<br />  Timer1 = (btn-&gt;wait_time_s*1000)/10;<br /> <br /> }<br /> else if( btn-&gt;klock &amp;&amp; key_press ) {<br />  (btn-&gt;klock)++;<br />  if( !btn-&gt;klock ) {<br />   Timer1=0;<br />   btn-&gt;flag=0;<br />  }<br /> } else if( btn-&gt;flag &amp;&amp; !Timer1 ) {<br />  // reakcja na dłuższe wcinięcie klawisza<br />  if(btn-&gt;kfun2) btn-&gt;kfun2();<br />  btn-&gt;flag=0;<br /> }<br /> <br />}<br /> <br />//*** przerwanie Timer2 CompareM<br />ISR(TIMER2_COMP_vect) {<br /> <br /> uint16_t n;<br /> <br /> n = Timer1;  /* 100Hz Timer1 */<br /> if (n) Timer1 = --n;<br /> n = Timer2;  /* 100Hz Timer2 */<br /> if (n) Timer2 = --n;<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3917">Mac</a> — 12 sty 2015, o 17:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kudzu]]></name></author>
<updated>2015-01-09T21:15:29+01:00</updated>
<published>2015-01-09T21:15:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113447#p113447</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113447#p113447"/>
<title type="html"><![CDATA[Re: ZEGAR - problem z dokładnością czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113447#p113447"><![CDATA[
<div class="quotetitle">jacekk232 napisał(a):</div><div class="quotecontent"><br />Można też procesor puścić na np. 8MHz z wewnętrznego oscylatora a do odmierzania jednej sekundy użyć Timera2 w trybie asynchronicznym taktowanym kwarcem 32768Hz podłączonym do pinów TOSC1 i TOSC2.<br /></div><br /><br />Zdublowałeś mnie;)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3232">kudzu</a> — 9 sty 2015, o 21:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kudzu]]></name></author>
<updated>2015-01-09T21:03:46+01:00</updated>
<published>2015-01-09T21:03:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113442#p113442</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113442#p113442"/>
<title type="html"><![CDATA[Re: ZEGAR - problem z dokładnością czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113442#p113442"><![CDATA[
Malowałem łazienkę i się rozpuszczalnika do flalowych nawąchałem...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3232">kudzu</a> — 9 sty 2015, o 21:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jacekk232]]></name></author>
<updated>2015-01-09T21:02:30+01:00</updated>
<published>2015-01-09T21:02:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113441#p113441</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113441#p113441"/>
<title type="html"><![CDATA[Re: ZEGAR - problem z dokładnością czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113441#p113441"><![CDATA[
Można też procesor puścić na np. 8MHz z wewnętrznego oscylatora a do odmierzania jednej sekundy użyć Timera2 w trybie asynchronicznym taktowanym kwarcem 32768Hz podłączonym do pinów TOSC1 i TOSC2.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=204">jacekk232</a> — 9 sty 2015, o 21:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kudzu]]></name></author>
<updated>2015-01-09T21:01:56+01:00</updated>
<published>2015-01-09T21:01:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113440#p113440</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113440#p113440"/>
<title type="html"><![CDATA[Re: ZEGAR - problem z dokładnością czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113440#p113440"><![CDATA[
Zapomniałem o OCR;) 8000000/64/1250=100 Mój błąd. Ale drugi post pdtrzymuję:)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3232">kudzu</a> — 9 sty 2015, o 21:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kudzu]]></name></author>
<updated>2015-01-09T20:46:05+01:00</updated>
<published>2015-01-09T20:46:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113437#p113437</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113437#p113437"/>
<title type="html"><![CDATA[Re: ZEGAR - problem z dokładnością czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113437#p113437"><![CDATA[
Poza tym już gdzieś pisałem, że jak komuś 32,768kHz dla głównego programu mało, to np w mega88 można podłączyć kwarc zegarkowy do wejść TOSC i generować przerwanie od Timera2, jak dobrze pamiętam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3232">kudzu</a> — 9 sty 2015, o 20:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kudzu]]></name></author>
<updated>2015-01-09T20:41:33+01:00</updated>
<published>2015-01-09T20:41:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113434#p113434</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113434#p113434"/>
<title type="html"><![CDATA[Re: ZEGAR - problem z dokładnością czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113434#p113434"><![CDATA[
Szanowni Państwo! Choćby zastosować najdokładniejszy na świecie generator 8 MHz to i tak zegarek będzie niedokładny. Ba! Nawet na 16 Mhz będzie niewiele lepiej. Policzcie sobie 8000000/2^23. A teraz wynik *3600. Wychodzi, że na godzinę składają się 3433,2... sekundy. A teraz weźcie kwarc zegarkowy 32768/2^15. I co?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3232">kudzu</a> — 9 sty 2015, o 20:41</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[majster]]></name></author>
<updated>2015-01-09T18:22:27+01:00</updated>
<published>2015-01-09T18:22:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113390#p113390</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113390#p113390"/>
<title type="html"><![CDATA[Re: ZEGAR - problem z dokładnością czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113390#p113390"><![CDATA[
<div class="quotetitle">Mac napisał(a):</div><div class="quotecontent"><br />W poradniku odchyłki są dobrze wytłumaczone, ale komunikacji I2C jeszcze nie przerabiałem<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 7 minutach ]</span></strong><br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent">Kolego masz program strasznie blokujący pracę całego procesora.<br /><br />Wykorzystaj timer zamiast _delay_ms<br />a będzie już niebo dokładniej<br /></div><br /><br />Tzn. jakby to miało wygladać?- delay_ms stosowane są do redukcji drgań styku i stabilizacji wyświetlacza - nie wiem jak to sie robi w oparciu o Timery.<br /><br />Zaopatrze się w kwarc i kondensatorki i zobacze czy coś sie zmieni.</div><br />Skoro zostałem wywołany o delay. To zapytam czy ma kolega ksiazke bb?<br /><br />Namazane ze smarta.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1628">majster</a> — 9 sty 2015, o 18:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Marcin_G]]></name></author>
<updated>2015-01-09T13:20:03+01:00</updated>
<published>2015-01-09T13:20:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113319#p113319</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113319#p113319"/>
<title type="html"><![CDATA[Re: ZEGAR - problem z dokładnością czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113319#p113319"><![CDATA[
Jacie kręcę, w kółko to samo <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> Mirka blog się kłania, a dokładnie to tu <!-- m --><a class="postlink" href="http://mirekk36.blogspot.com/2012/10/drgania-stykow-to-bajki-wiec-jak-to.html" >http://mirekk36.blogspot.com/2012/10/dr ... ak-to.html</a><!-- m --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=758">Marcin_G</a> — 9 sty 2015, o 13:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[bodowp]]></name></author>
<updated>2015-01-09T13:13:53+01:00</updated>
<published>2015-01-09T13:13:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113315#p113315</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113315#p113315"/>
<title type="html"><![CDATA[Re: ZEGAR - problem z dokładnością czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113315#p113315"><![CDATA[
W poradnikach Mirka czy też na blogu najlepiej poszukaj po prawej stronie drgania styku. Cały poradnik jak to zrobić nie używając dalay 'ów <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /><br /><br />Dmuchnięte z pąpki od materaca.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7035">bodowp</a> — 9 sty 2015, o 13:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Mac]]></name></author>
<updated>2015-01-09T13:02:24+01:00</updated>
<published>2015-01-09T13:02:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113312#p113312</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113312#p113312"/>
<title type="html"><![CDATA[Re: ZEGAR - problem z dokładnością czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113312#p113312"><![CDATA[
W poradniku odchyłki są dobrze wytłumaczone, ale komunikacji I2C jeszcze nie przerabiałem<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 7 minutach ]</span></strong><br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Kolego masz program strasznie blokujący pracę całego procesora.<br /><br />Wykorzystaj timer zamiast _delay_ms<br />a będzie już niebo dokładniej<br /></div><br /><br />Tzn. jakby to miało wygladać?- delay_ms stosowane są do redukcji drgań styku i stabilizacji wyświetlacza - nie wiem jak to sie robi w oparciu o Timery.<br /><br />Zaopatrze się w kwarc i kondensatorki i zobacze czy coś sie zmieni.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3917">Mac</a> — 9 sty 2015, o 13:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Mac]]></name></author>
<updated>2015-01-08T20:46:14+01:00</updated>
<published>2015-01-08T20:46:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113214#p113214</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113214#p113214"/>
<title type="html"><![CDATA[Re: ZEGAR - problem z dokładnością czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113214#p113214"><![CDATA[
Dzięki  Michał<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3917">Mac</a> — 8 sty 2015, o 20:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[michal1210]]></name></author>
<updated>2015-01-08T20:40:31+01:00</updated>
<published>2015-01-08T20:40:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113212#p113212</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113212#p113212"/>
<title type="html"><![CDATA[Re: ZEGAR - problem z dokładnością czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113212#p113212"><![CDATA[
Proponuję obejrzeć filmik Mirka :<br /><a href="http://mirekk36.blogspot.com/2013/11/rtc-ds3231-najdokadniejszy-zegarek-na.html"  class="postlink">http://mirekk36.blogspot.com/2013/11/rtc-ds3231-najdokadniejszy-zegarek-na.html</a><br /><br />Nie chodzi mi oto żebyś od razu zaopatrywał się w ten układ, ale Mirek tam Ci wytłumaczy dlaczego masz takie odchyłki i nie będziesz miał już żadnych wątpliwości , że gdzieś tam doczytałeś o 2s. itp.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=998">michal1210</a> — 8 sty 2015, o 20:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Mac]]></name></author>
<updated>2015-01-08T20:30:30+01:00</updated>
<published>2015-01-08T20:30:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113207#p113207</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113207#p113207"/>
<title type="html"><![CDATA[Re: ZEGAR - problem z dokładnością czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113207#p113207"><![CDATA[
Majster to jak wtedy napisac program aby wycisnąć największą dokładnośc z wew. oscylatora i nie blokowac programu głownego?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3917">Mac</a> — 8 sty 2015, o 20:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[majster]]></name></author>
<updated>2015-01-08T19:39:07+01:00</updated>
<published>2015-01-08T19:39:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113183#p113183</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113183#p113183"/>
<title type="html"><![CDATA[Re: ZEGAR - problem z dokładnością czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113183#p113183"><![CDATA[
Nie piszę że ma wpływ na wywoływanie się timera ba piszę wyraźnie że blokuje on pętlę główną a w przypadku tego kodu to to wystarczy np też i fakt że kolega ma 2x pętlę while no i fakt że kolega ustawia bity w tccr1b a pozniej skacze do ocr1a.<br /><br />Pozniej zamiast utworzyc zmienna temp do ustawiania czasu to wylacza przerwanie na czas peli 2 while<br /><br />Wogole po co tam tyle petli while.<br /><br />Namazane ze smarta.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1628">majster</a> — 8 sty 2015, o 19:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[gumeni]]></name></author>
<updated>2015-01-08T16:57:59+01:00</updated>
<published>2015-01-08T16:57:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113146#p113146</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113146#p113146"/>
<title type="html"><![CDATA[Re: ZEGAR - problem z dokładnością czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113146#p113146"><![CDATA[
Od kiedy _delay_ms() ma wpływ na wywoływanie się przerwania?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3088">gumeni</a> — 8 sty 2015, o 16:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[majster]]></name></author>
<updated>2015-01-08T16:28:56+01:00</updated>
<published>2015-01-08T16:28:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113137#p113137</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113137#p113137"/>
<title type="html"><![CDATA[Re: ZEGAR - problem z dokładnością czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113137#p113137"><![CDATA[
Co obieg pętli blokujesz procesor na 500 ms jest to suma wszystkich _delay_ms(xx);<br /><br />dodatkowo jak zaczniesz zmieniać nastawy zegarka to kolejne <br /><br />_delay_ms(xx);<br /><br />blokuje ci go już na prawie lub ponad sekundę tego nie liczyłem widząc pierwszego delaya na 700 ms<br /><br /><br />Kolego masz program strasznie blokujący pracę całego procesora.<br /><br />Wykorzystaj timer zamiast _delay_ms<br />a będzie już niebo dokładniej<br /><br />nie mniej dokładnie to nie będzie bo odchyłka pracy timera zależy od temperatury otoczenia w jakiej pracuje procesor.<br /><br />Do tego celu najlepiej użyć zewnętrzne przerwanie np na pinie INT0 i pobierać idealne tyknięcia z układu PCF8583<br />wystarczy mu podać zasilanie, kwarc zegarkowyi już zacznie scalaczek generować przerwanie.<br /><br />No ale jak już mamy scalaczek to warto iść dalej i komunikować się z nim po I2C i z niego czytać czas i date wtedy będzie bardzo idealnie <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br /><br />Taką drogę polecam obrać przy zabawie z idealnym zegarkiem<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 10 minutach ]</span></strong><br /><br /><div class="quotetitle">Mac napisał(a):</div><div class="quotecontent"><br />gdzies tam przecztałem ze odchyłka może wyniesc ok 2 sek ale na dobe kurcze teraz juz sam nie wiem<br /></div><br /><br />Odchyłka może wynieść i więcej niż 2 sek zależy jak program napiszesz co już przytoczyłem wyżej.<br /><br />Nie mniej nie załamuj się postaramy ci się pomóc ...<br /><br />jak nie masz układu rtc to możesz użyć pinów gdzie podepniesz kwarc zegarkowy też to przechodziłem pamiętam że Antystatyczny mi pomógł rozwiązać problem na testy ale nie mogę znaleźć tematu ... jak tylko znajdę to go tu podepnę.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1628">majster</a> — 8 sty 2015, o 16:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Mac]]></name></author>
<updated>2015-01-08T16:20:58+01:00</updated>
<published>2015-01-08T16:20:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113136#p113136</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113136#p113136"/>
<title type="html"><![CDATA[Re: ZEGAR - problem z dokładnością czasu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10103&amp;p=113136#p113136"><![CDATA[
Bodowp - jak to mozliwe że właczam i wyłączam przerwania w 2 pętli skoro w 2 pętli nie ma ani jednej instrukcji włączajacej lub wyłączającej przerwania<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3917">Mac</a> — 8 sty 2015, o 16:20</p><hr />
]]></content>
</entry>
</feed>