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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2018-03-22T20:04:20+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=58&amp;t=20461&amp;mode</id>
<entry>
<author><name><![CDATA[Robert_1967]]></name></author>
<updated>2018-03-22T20:04:20+01:00</updated>
<published>2018-03-22T20:04:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20461&amp;p=205923#p205923</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20461&amp;p=205923#p205923"/>
<title type="html"><![CDATA[Re: Przerwania Atmega 8]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20461&amp;p=205923#p205923"><![CDATA[
Dziękuję za rozwianie wątpliwości. Teraz całkiem pojąłem  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> . Pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10257">Robert_1967</a> — 22 mar 2018, o 20:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2018-03-22T18:22:13+01:00</updated>
<published>2018-03-22T18:22:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20461&amp;p=205900#p205900</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20461&amp;p=205900#p205900"/>
<title type="html"><![CDATA[Re: Przerwania Atmega 8]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20461&amp;p=205900#p205900"><![CDATA[
bardzo dobrze myślisz <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> — 22 mar 2018, o 18:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Robert_1967]]></name></author>
<updated>2018-03-22T18:21:28+01:00</updated>
<published>2018-03-22T18:21:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20461&amp;p=205898#p205898</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20461&amp;p=205898#p205898"/>
<title type="html"><![CDATA[Re: Przerwania Atmega 8]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20461&amp;p=205898#p205898"><![CDATA[
Witam Mirku.<br />Dziękuję za odpowiedź. I o to mi chodziło, a żeby krótko i na temat odpowiedzieć, czy jest dobrze, czy nie. albo, że może tak być, ale lepiej byłoby tak.....<br />Jeżeli nie ma żadnej odpowiedzi, to nie wiem, czy jest ok, a to, że &quot;działa&quot;, to nie zawsze jest 100% sukcesu.<br />Chciałem jeszcze dopytać, ponieważ nie chcę niepotrzebnie używać timera 16 bitów, jeśli nie jest to konieczne. Jeżeli w kodzie mam tak:<br /><br />[syntax=c]if(!Timer1)<br />Timer1 = 100;<br />instrukcja;// wykona się co 1s[/syntax]<br /><br />a więc nie przekraczam 255 i dalej mam tak:<br /><br />[syntax=c]TCCR1B |= (1&lt;&lt;WGM12);   // TRYB ctc<br />TCCR1B |= (1&lt;&lt;CS12) | (1&lt;&lt;CS10);   // prescaler 1024<br />OCR1A = 155;    // przerwanie co 10ms, 100,16Hz, rezonator kwarcowy 16Mhz<br />TIMSK |= (1&lt;&lt;OCIE1A);    // odblokowanie przerwania COMPARE MATCH A[/syntax]<br /><br />i w OCR1A mam 155, a więc nie przekraczam 255, to mogę zastosować timer 8 bitowy ?<br /><br />Ale jeśli zmieniłem prescaler na 256 i w OCR1A musiałem wpisać wartość przekraczającą 255, to muszę zastosować timer 16 bitowy ? W pętli nadal pozostała<br />wartość Timer1 = 100. wiem, że w książce opisane, ale chciałem doprecyzować, czy dobrze myślę. Dziękuję i pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10257">Robert_1967</a> — 22 mar 2018, o 18:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2018-03-22T14:11:22+01:00</updated>
<published>2018-03-22T14:11:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20461&amp;p=205883#p205883</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20461&amp;p=205883#p205883"/>
<title type="html"><![CDATA[Re: Przerwania Atmega 8]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20461&amp;p=205883#p205883"><![CDATA[
Nie ma się nad czym zastanawiać czy podpowiadać jak masz wszystko dobrze napisane i działa.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 22 mar 2018, o 14:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Robert_1967]]></name></author>
<updated>2018-03-22T14:05:11+01:00</updated>
<published>2018-03-22T14:05:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20461&amp;p=205882#p205882</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20461&amp;p=205882#p205882"/>
<title type="html"><![CDATA[Re: Przerwania Atmega 8]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20461&amp;p=205882#p205882"><![CDATA[
No więc przetestowałem dzisiaj kod i okazało się,że działa prawidłowo, a przynajmniej tak sądzę. Zmieniłem tylko prescaler<br />na 256, dzięki czemu uzyskałem równo 100Hz. Chociaż ta dokładność nie była tak istotna. Szkoda, że nikt nie zechciał się<br />wypowiedzieć.<br />Jeżeli jest tu jakiś chochlik , albo można by to napisać lepiej, to proszę o jakieś rady. Pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10257">Robert_1967</a> — 22 mar 2018, o 14:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Robert_1967]]></name></author>
<updated>2018-03-21T22:58:38+01:00</updated>
<published>2018-03-21T22:58:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20461&amp;p=205863#p205863</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20461&amp;p=205863#p205863"/>
<title type="html"><![CDATA[Przerwania Atmega 8]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20461&amp;p=205863#p205863"><![CDATA[
Witam wszystkich.<br /><br />Mam prośbę o sprawdzenie kodu obsługującego przerwanie 16 bit w atmedze 8. Jest to moja pierwsza próba z tym procesorem, jeśli chodzi o to<br />zagadnienie. Czytałem notę katalogową, ale zaznaczam, że nie wszystko jestem w stanie przeczytać ze zrozumieniem w obcym języku. Zrobiłem ,co mogłem.<br />Kod mogę sprawdzić dopiero jutro, ale dzisiaj napisałem. Z tego, co znalazłem w necie, to muszę użyć dwóch przerwań (A i B), a nie tak, jak w atmedze 16, czy<br />32 tylko jednego. Dodatkowo do pinów PB1(OC1A) i PB2(OC1B) podłączyłem wyświetlacz lcd. Czy tak może być przy moim kodzie, czy muszę je ustawić, jako<br />zwykłe piny IO, lub czy są one domyślnie przy starcie ustawione, jako zwykłe IO i nic nie muszę robić. Przepraszam za tyle pytań, ale jak wspomniałem, nie<br />wszystko przeczytam w nocie i proszę o pomoc. Dzięki z góry za wszelką pomoc.<br /><br />Oto kod:<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br /><br /><br /><br />volatile uint16_t Timer1;// timer programowy 100Hz<br /><br /><br /><br />int main(void)<br />{<br /><br />TCCR1B |= (1&lt;&lt;WGM12);   // tryb CTC<br />TCCR1B |= (1&lt;&lt;CS12) | (1&lt;&lt;CS10);   // prescaler 1024<br />OCR1A = 155;    // przerwanie co 10ms, 100,16Hz, rezonator kwarcowy 16Mhz<br />TIMSK |= (1&lt;&lt;OCIE1A);    // odblokowanie przerwania COMPARE MATCH A<br /><br /><br />sei();   // włączamy globalne przerwania<br /><br />while(1)<br />{<br />if(!Timer1)<br />Timer1 = 100;<br />instrukcja;// wykona się co 1s<br />}<br />}<br /><br /><br /><br /><br />ISR(TIMER1_COMPA_VECT)// procedura obsługi przerwania<br />{<br />uint16_t n;<br /><br />n = Timer1;/* 100Hz Timer1 */<br />if (n) Timer1 = --n;<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10257">Robert_1967</a> — 21 mar 2018, o 22:58</p><hr />
]]></content>
</entry>
</feed>