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

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

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=14472&amp;mode</id>
<entry>
<author><name><![CDATA[ciscoc]]></name></author>
<updated>2016-02-14T13:36:14+01:00</updated>
<published>2016-02-14T13:36:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14472&amp;p=153640#p153640</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14472&amp;p=153640#p153640"/>
<title type="html"><![CDATA[Re: przerwanie od Timera1 dla ATmega8]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14472&amp;p=153640#p153640"><![CDATA[
mam jeszcze pytanie czy umieszczenie funkcji _delay_ms() wewnątrz funkcji obsługi przerwania zewnętrznego jest dobrym zwyczajem, czy mogę umieszczać delaya w ISR(INTx_vect)?<br /><br />np.<br /><br />[syntax=c]ISR(INT0_vect)<br />{<br />PORTx^=(1&lt;&lt;Px);<br />_delay_ms(500);<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12249">ciscoc</a> — 14 lut 2016, o 13:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ciscoc]]></name></author>
<updated>2016-02-12T16:03:09+01:00</updated>
<published>2016-02-12T16:03:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14472&amp;p=153438#p153438</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14472&amp;p=153438#p153438"/>
<title type="html"><![CDATA[Re: przerwanie od Timera1 dla ATmega8]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14472&amp;p=153438#p153438"><![CDATA[
czyli co [syntax=c]TCNT=34286;[/syntax] ? I będzie dobrze<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12249">ciscoc</a> — 12 lut 2016, o 16:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kicajek]]></name></author>
<updated>2016-02-11T21:56:12+01:00</updated>
<published>2016-02-11T21:56:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14472&amp;p=153371#p153371</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14472&amp;p=153371#p153371"/>
<title type="html"><![CDATA[Re: przerwanie od Timera1 dla ATmega8]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14472&amp;p=153371#p153371"><![CDATA[
Witam<br />Kroki jak to kroki - raz lewa, raz prawa noga.<br />Pierwsze obliczenie jest dla OCRx, natomiast co do pkt.5 to w nim (9 linijka  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> )masz  napisane:<br /><div class="quotetitle">BB napisał(a):</div><div class="quotecontent"><br />....ładować do rejestru,<strong> TCNT (ten rejestr to licznik)</strong>...<br /></div><br /><br />Pozdr.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=826">kicajek</a> — 11 lut 2016, o 21:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2016-02-11T21:51:20+01:00</updated>
<published>2016-02-11T21:51:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14472&amp;p=153369#p153369</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14472&amp;p=153369#p153369"/>
<title type="html"><![CDATA[Re: przerwanie od Timera1 dla ATmega8]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14472&amp;p=153369#p153369"><![CDATA[
Dlaczego dopisujesz swoje pytanie w innym poście nie związanym z tym problemem?<br />Zakładam, że chodzi o to że zliczane są przepełnienia licznika. A jak wiesz przepełnienie następuje przy przejściu z 65535 na 0. Więc aby zliczyć 31250 taktów timera trzeba zacząć od 34286, bo od tej wartości do 65536 jest właśnie odległość 31250 taktów.<br />Gdybyś miał licznik liczący w dół (albo od zera do załadowanej wartości) to ładowałbyś 31250, ale masz liczący w górę od danej wartości do przepełnienia więc zaczynasz od 34286 <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />-- <br />Pozdrawiam,<br />Robert<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 11 lut 2016, o 21:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ciscoc]]></name></author>
<updated>2016-02-11T21:03:00+01:00</updated>
<published>2016-02-11T21:03:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14472&amp;p=153362#p153362</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14472&amp;p=153362#p153362"/>
<title type="html"><![CDATA[obsługa przerwań książka p.Mirka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14472&amp;p=153362#p153362"><![CDATA[
Witam,mam pytanie odnośnie pierwszej części książki pana Mirka dotyczącej obsługi przerwań. Na str.43 jest podany przykład zapalania i gaszenia LED co 1 sek. mam pytanie odnośnie tego zadania. Wybieramy sobie licznik Timera1 (16 bitowy) o rozmiarze 65536 impulsów. Mam rozumieć że tutaj jest to zrealizowane poprzez porównanie z rejestrem OCRx? Dlatego oblicza pan Mirek 8MHz/preskaler 256=31250Hz, tę częstotliwość 31250/ dzieli przez 1 Hz związku z czym otrzymujemy 31250 impulsów i taką wartość ładujemy do rejestru OCRx, tak?<br />Pytam dlatego ponieważ na str.43 w kroku nr 5. wartość 65356 jest odejmowana od 31250 co daje 34286 i w tym 5 kroku jest napisane że wartość taką należy załadować do rejestru licznika. I tu powstały moje wątpliwości którą wartość powinienem przypisać do OCR (31250 czy 34286)?<br /><br />Proszę o wyjaśnienie tego zagadnienia<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12249">ciscoc</a> — 11 lut 2016, o 21:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jacekk232]]></name></author>
<updated>2016-02-09T20:43:45+01:00</updated>
<published>2016-02-09T20:43:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14472&amp;p=153195#p153195</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14472&amp;p=153195#p153195"/>
<title type="html"><![CDATA[Re: przerwanie od Timera1 dla ATmega8]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14472&amp;p=153195#p153195"><![CDATA[
Ta pętla while w przerwaniu jest pętlą nieskończoną. Program nigdy z niej nie wyjdzie a tym samym nie wyjdzie również z przerwania.<br /><br />Na dodatek program w tej pętli będzie się kręcił z bardzo dużą prędkością. Tysiące a może setki tysięcy razy na sekundę. I z tą prędkością są przełączane diody. Dlatego wydaje ci się, że świecą światłem ciągłym.<br /><br />Jak chcesz wykorzystać przesunięcia bitowe to spróbuj tak<br />[syntax=c]ISR(TIMER1_OVF_vect)<br />{//definicja funkcji obsługi przerwania wew.<br />      static uint8_t i=1;<br /><br />       i&lt;&lt;=1;<br />       if(i&gt;2) i=1;   <br />       PORTC=i;   <br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=204">jacekk232</a> — 9 lut 2016, o 20:43</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kicajek]]></name></author>
<updated>2016-02-09T20:41:54+01:00</updated>
<published>2016-02-09T20:41:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14472&amp;p=153194#p153194</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14472&amp;p=153194#p153194"/>
<title type="html"><![CDATA[Re: przerwanie od Timera1 dla ATmega8]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14472&amp;p=153194#p153194"><![CDATA[
Witam<br />Nie musisz(to tak łagodnie  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ) w przerwaniu dawać &quot;while(1)&quot;, ale trzeba dać &quot;static&quot; np.:<br />[syntax=c]ISR(TIMER1_OVF_vect)<br />            {<br />           static uint8_t i=1;<br />   <br />           PORTC=i;<br />           i++;<br />           if(i&gt;2) i=1;<br />            }[/syntax]<br /><br />Pozdr.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=826">kicajek</a> — 9 lut 2016, o 20:41</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ciscoc]]></name></author>
<updated>2016-02-09T18:03:03+01:00</updated>
<published>2016-02-09T18:03:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14472&amp;p=153181#p153181</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14472&amp;p=153181#p153181"/>
<title type="html"><![CDATA[Re: przerwanie od Timera1 dla ATmega8]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14472&amp;p=153181#p153181"><![CDATA[
a dlaczego wewnątrz przerwania Timera1 nie mogę sobie umieścić takiej instrukcji?<br />[syntax=c]język c<br /><br />    ISR(TIMER1_OVF_vect)<br />            {//definicja funkcji obsługi przerwania wew.<br />            uint8_t i=1;<br />            while(1)<br />                    {<br />                    i&lt;&lt;=1;<br />                    if(i&gt;2) i=1;<br />                    PORTC=i;<br />                    }<br />            }[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12249">ciscoc</a> — 9 lut 2016, o 18:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[marmur]]></name></author>
<updated>2016-02-09T17:31:24+01:00</updated>
<published>2016-02-09T17:31:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14472&amp;p=153177#p153177</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14472&amp;p=153177#p153177"/>
<title type="html"><![CDATA[Re: przerwanie od Timera1 dla ATmega8]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14472&amp;p=153177#p153177"><![CDATA[
Łooo matko, kolego.. Taka pętla w przerwaniu , to oczywiste ze nie zadziała. Przestudiuj w bb operacje na bitach i sam szybko dojdziesz jak łatwo i szybko to zrobić <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=10570">marmur</a> — 9 lut 2016, o 17:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[anshar]]></name></author>
<updated>2016-02-09T17:30:58+01:00</updated>
<published>2016-02-09T17:30:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14472&amp;p=153176#p153176</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14472&amp;p=153176#p153176"/>
<title type="html"><![CDATA[Re: przerwanie od Timera1 dla ATmega8]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14472&amp;p=153176#p153176"><![CDATA[
Można to zrobić tak:<br />[syntax=c]ISR(TIMER1_OVF_vect)<br />{<br />     PORTC^=0x03;   //lepiej byłoby zapisać PORTC^=(1&lt;&lt;PC0)|((1&lt;&lt;PC1);<br />}[/syntax]<br /><br />Aby diody migały na przemian to przed pętlą główną powinno być:<br />[syntax=c]DDRC |= (1&lt;&lt;PC0)|((1&lt;&lt;PC1);<br />PORTC |= (1&lt;&lt;PC0);<br />PORTC &amp;= ~(1&lt;&lt;PC1);[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7157">anshar</a> — 9 lut 2016, o 17:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ciscoc]]></name></author>
<updated>2016-02-09T17:13:06+01:00</updated>
<published>2016-02-09T17:13:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14472&amp;p=153174#p153174</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14472&amp;p=153174#p153174"/>
<title type="html"><![CDATA[Re: przerwanie od Timera1 dla ATmega8]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14472&amp;p=153174#p153174"><![CDATA[
dla pojedyńczej diody robię coś takiego<br />[syntax=c]ISR(TIMER1_OVF_vect)<br />{//definicja funkcji obsługi przerwania wew.<br />PORTC^=0x01;<br />}[/syntax]<br />co powoduje że dioda wpięta pod PC0 miga sobie co 0,5 sek<br />ten sam efekt migania co 0,5 sek chciałbym uzyskać dla dwóch diód<br />[syntax=c]ISR(TIMER1_OVF_vect)<br />{//definicja funkcji obsługi przerwania wew.<br />uint8_t i=1;<br />while(1)<br />{<br />i&lt;&lt;=1;<br />if(i&gt;2) i=1;<br />PORTC=i;<br />}<br />}[/syntax]<br />w efekcie otrzymuję że palą się dwie diody światłem ciągłym nie ma przerwy 0,5 sek i zastanawiam się dlaczego mi to nie wychodzi?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12249">ciscoc</a> — 9 lut 2016, o 17:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2016-02-09T16:51:17+01:00</updated>
<published>2016-02-09T16:51:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14472&amp;p=153171#p153171</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14472&amp;p=153171#p153171"/>
<title type="html"><![CDATA[Re: przerwanie od Timera1 dla ATmega8]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14472&amp;p=153171#p153171"><![CDATA[
Możesz - możesz nawet za pomocą każdego timera, ba nawet timera programowego. Przy czym timer programowy to najlepsze rozwiązanie do takich celów.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 9 lut 2016, o 16:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ciscoc]]></name></author>
<updated>2016-02-09T16:13:34+01:00</updated>
<published>2016-02-09T16:13:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14472&amp;p=153169#p153169</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14472&amp;p=153169#p153169"/>
<title type="html"><![CDATA[przerwanie od Timera1 dla ATmega8]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14472&amp;p=153169#p153169"><![CDATA[
Witam, czy za pomocą przerwania od przepełnienia rejestru TCNT1 licznika Timera1 mogę uzyskać w funkcji przerwania taki przykład aby dwie diody D1 i D2 zapalały się na przemian wciągu 0.5 sek.?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12249">ciscoc</a> — 9 lut 2016, o 16:13</p><hr />
]]></content>
</entry>
</feed>