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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-03-03T23:09:34+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=10904&amp;mode</id>
<entry>
<author><name><![CDATA[Dragas]]></name></author>
<updated>2015-03-03T23:09:13+01:00</updated>
<published>2015-03-03T23:09:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10904&amp;p=121849#p121849</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10904&amp;p=121849#p121849"/>
<title type="html"><![CDATA[Re: [M88P] Inkrementacja zmiennej w przrwaniu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10904&amp;p=121849#p121849"><![CDATA[
Tylko PORTC ^= !timer0x&lt;&lt;1; dał efekt takie<br /><a href="http://forum.atnel.pl/_obrazki/o/462/b1d4e438b68f80a65a0736c49b65de4f.png"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/462/b1d4e438b68f80a65a0736c49b65de4f.png" alt="Obrazek" /></a><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 3 minutach ]</span></strong><br /><br />Problem rozwiązany!<br />Nie wiedziałem, że pomimo, że przerwanie teoretycznei działało, to brak innego przerwania mogło powodować ten problem.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=462">Dragas</a> — 3 mar 2015, o 23:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Anonymous]]></name></author>
<updated>2015-03-03T23:09:34+01:00</updated>
<published>2015-03-03T23:08:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10904&amp;p=121848#p121848</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10904&amp;p=121848#p121848"/>
<title type="html"><![CDATA[Re: [M88P] Inkrementacja zmiennej w przrwaniu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10904&amp;p=121848#p121848"><![CDATA[
Włączasz nieobsługiwane przerwanie. Domyślny &quot;bad_interrupt&quot; handler skacze pod adres 0 pamięci, co w uproszczeniu, resetuje procek <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Kurcze. Ubiegli mnie jak się pdf ściągał  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez Gość — 3 mar 2015, o 23:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[atmel]]></name></author>
<updated>2015-03-03T22:59:19+01:00</updated>
<published>2015-03-03T22:59:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10904&amp;p=121846#p121846</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10904&amp;p=121846#p121846"/>
<title type="html"><![CDATA[Re: [M88P] Inkrementacja zmiennej w przrwaniu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10904&amp;p=121846#p121846"><![CDATA[
Ok w takim razie usuń sterowanie diodą w przerwaniu i w pętli głównej programu napisz &quot;<strong>PORTC ^= !timer0x&lt;&lt;1;</strong>&quot;. Nie wiem czy masz coś podpięte do pozostałych pinów portu C stąd taka ostrożna konstrukcja. Jeżeli nic to śmiało możesz zapisać &quot;<strong>PORTC = timer0x;</strong>&quot;.<br /><br />Jeżeli dysponujesz analizatorem logicznym to możesz sprawdzić stan na wyjściu.<br /><br />Odblokowałeś dwa źródła przerwań (<strong>TIMSK0 = (1&lt;&lt;2) | (1&lt;&lt;1);</strong>), a w kodzie masz tylko jedną procedurę obsługi do &quot;COMPA&quot;, a gdzie &quot;COMPB&quot;...?<br />Możesz dopisać w kodzie: &quot;<strong>ISR (BADISR_vect) {}</strong>&quot; lub &quot;<strong>ISR (TIMER0_COMPB_vect) {}</strong>&quot;, albo wyłączyć przerwanie &quot;COMPB&quot; (<strong>TIMSK0 = (1&lt;&lt;1);</strong>).<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1183">atmel</a> — 3 mar 2015, o 22:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Dragas]]></name></author>
<updated>2015-03-03T22:58:46+01:00</updated>
<published>2015-03-03T22:58:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10904&amp;p=121845#p121845</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10904&amp;p=121845#p121845"/>
<title type="html"><![CDATA[Re: [M88P] Inkrementacja zmiennej w przrwaniu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10904&amp;p=121845#p121845"><![CDATA[
Poprawiłem, przy kopiowaniu pewnie wcisnąłem przypadkowo <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=462">Dragas</a> — 3 mar 2015, o 22:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[domcio512]]></name></author>
<updated>2015-03-03T22:56:45+01:00</updated>
<published>2015-03-03T22:56:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10904&amp;p=121844#p121844</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10904&amp;p=121844#p121844"/>
<title type="html"><![CDATA[Re: [M88P] Inkrementacja zmiennej w przrwaniu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10904&amp;p=121844#p121844"><![CDATA[
W przerwaniu w warunku masz za dużo jedno 'I' <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=3200">domcio512</a> — 3 mar 2015, o 22:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Dragas]]></name></author>
<updated>2015-03-03T22:58:19+01:00</updated>
<published>2015-03-03T22:51:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10904&amp;p=121841#p121841</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10904&amp;p=121841#p121841"/>
<title type="html"><![CDATA[Re: [M88P] Inkrementacja zmiennej w przrwaniu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10904&amp;p=121841#p121841"><![CDATA[
1. Układ wytrawiłem i polutowałęm w SMD prawie 2 lata temu, lecz naszła mnie myśl, aby to przerobić i dodać funkcje.<br />2. Nie mam przejściówki UART&lt;-&gt; USB pod ręką, mam wyprowadzoną tylko 1 diodę na PC1.<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br /><br />volatile uint8_t timer0x;<br /><br />ISR (TIMER0_COMPA_vect)<br />{<br />if(timer0x &gt; 11)<br />{<br />PORTC ^= _BV(1);<br />timer0x = 0;<br />}<br />timer0x++;<br />}<br /><br />int main(void)<br />{<br />DDRC  = 0b00000010;<br /><br />TCNT0 = 0;<br />OCR0A = 2;<br />TCCR0A = (1 &lt;&lt; WGM01);<br />TCCR0B = (1 &lt;&lt; CS02) | (1 &lt;&lt; CS00);<br />TIMSK0 = (1&lt;&lt;2) | (1&lt;&lt;1);<br />sei();<br /><br />while(1)<br />{<br /><br />}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=462">Dragas</a> — 3 mar 2015, o 22:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[atmel]]></name></author>
<updated>2015-03-03T22:45:56+01:00</updated>
<published>2015-03-03T22:45:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10904&amp;p=121838#p121838</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10904&amp;p=121838#p121838"/>
<title type="html"><![CDATA[Re: [M88P] Inkrementacja zmiennej w przrwaniu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10904&amp;p=121838#p121838"><![CDATA[
Rozumiem że nie masz debugera sprzętowego, ale rozwiązaniem jest zawsze UART dzięki któremu w prosty sposób możesz mieć podląd na co tylko chcesz np. na wartość zmiennej. Ewentualnie ustawienie jednego z portów jako wyjściowy, podłączenie do niego jednej lub kilku diod i bezpośrednie przypisanie np. &quot;PORTA = timer0x;&quot;.<br /><br />Pokaż kompletny program razem z funkcją główną i jej zawartością w niedziałającej wersji...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1183">atmel</a> — 3 mar 2015, o 22:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Dragas]]></name></author>
<updated>2015-03-03T22:39:29+01:00</updated>
<published>2015-03-03T22:39:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10904&amp;p=121834#p121834</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10904&amp;p=121834#p121834"/>
<title type="html"><![CDATA[Re: [M88P] Inkrementacja zmiennej w przrwaniu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10904&amp;p=121834#p121834"><![CDATA[
Jeśli dałem if'a z warunkiem (timer0x == 0) stan wyjścia się zmieniał, lecz kiedy dałem (timer0x &gt; 0) lub 11 tam jak jest powyżej, to stan się już nie zmieniał na wyjściu.<br /><br />Na chwilę obecną pętla główna jest pusta.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=462">Dragas</a> — 3 mar 2015, o 22:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-03-03T22:39:17+01:00</updated>
<published>2015-03-03T22:39:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10904&amp;p=121833#p121833</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10904&amp;p=121833#p121833"/>
<title type="html"><![CDATA[Re: [M88P] Inkrementacja zmiennej w przrwaniu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10904&amp;p=121833#p121833"><![CDATA[
po pierwsze polecenia cli() i sei() w ramach obsługi przerwania są bez sensu - wywal je.<br /><br />po drugie po co inicjalizujesz zmienną globalną zerem ? timer0x = 0; ? - poczytaj sobie o zmiennych globalnych<br /><br />po trzecie w języku nie podaje się specyfikatora volatile na zasadzie totolotka - czyli &quot;może pomoże albo niepomoże&quot;, a w tym przykładzie OCZYWIŚCIE musi być - zakładając że korzystasz z tej zmiennej również w pętli głównej programu - no ale ... ale nie pokazałeś jak wygląda twoja główna funkcja programu ... a to tam pewnie masz pan babola<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 3 mar 2015, o 22:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[atmel]]></name></author>
<updated>2015-03-03T22:35:30+01:00</updated>
<published>2015-03-03T22:35:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10904&amp;p=121831#p121831</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10904&amp;p=121831#p121831"/>
<title type="html"><![CDATA[Re: [M88P] Inkrementacja zmiennej w przrwaniu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10904&amp;p=121831#p121831"><![CDATA[
Używanie &quot;cli&quot; i &quot;sei&quot; w ten sposób w przerwaniu jest zbędne, gdyż mikrokontrolery ATmega mają jednopoziomowy system przerwań, a więc już w momencie wejścia w procedurę obsługi przerwania, możliwość przyjmowania kolejnych przerwań pozostaje zablokowana, aż do ukończenia całej funkcji przerwania.<br /><br />Zmienna wydaje się być modyfikowana poprawnie. Może sam odczyt powoduje problem - skąd wiesz że zmienna nie jest inkrementowana?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1183">atmel</a> — 3 mar 2015, o 22:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Dragas]]></name></author>
<updated>2015-03-03T22:32:09+01:00</updated>
<published>2015-03-03T22:32:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10904&amp;p=121829#p121829</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10904&amp;p=121829#p121829"/>
<title type="html"><![CDATA[Re: [M88P] Inkrementacja zmiennej w przrwaniu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10904&amp;p=121829#p121829"><![CDATA[
sei() jest w main'ie, pisałem, że przerwanie działa prawidłowo, tylko nie inkrementuje się timer0x w przerwaniu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=462">Dragas</a> — 3 mar 2015, o 22:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[domcio512]]></name></author>
<updated>2015-03-03T22:28:28+01:00</updated>
<published>2015-03-03T22:28:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10904&amp;p=121827#p121827</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10904&amp;p=121827#p121827"/>
<title type="html"><![CDATA[Re: [M88P] Inkrementacja zmiennej w przrwaniu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10904&amp;p=121827#p121827"><![CDATA[
Sei(); powinno znajdować się chyba w funkcji głównej.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3200">domcio512</a> — 3 mar 2015, o 22:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Dragas]]></name></author>
<updated>2015-03-03T22:21:09+01:00</updated>
<published>2015-03-03T22:21:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10904&amp;p=121824#p121824</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10904&amp;p=121824#p121824"/>
<title type="html"><![CDATA[[M88P] Inkrementacja zmiennej w przrwaniu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10904&amp;p=121824#p121824"><![CDATA[
Witam,<br /><br />Usilnie próbuję zinkrementować wartość zmiennej w przerwaniu od timera 0A, lecz z niewiadomych mi przyczyn dla mnie nie chce mi to zadziałać. Próbowałem już z volatile i bez przed definicją zmiennej. Środowisko WinAVR.<br /><br />[syntax=c]volatile uint8_t timer0x = 0;<br /><br />ISR (TIMER0_COMPA_vect)<br />{<br />cli();<br />if(timer0x &gt; 11)<br />{<br />PORTC ^= _BV(1);<br />timer0x = 0;<br />}<br />timer0x++;<br /><br />sei();<br />}[/syntax]<br /><br />Samo przerwanie wywołuje się poprawnie, ponieważ zmianę stanu pinów widzę na analizatorze stanó logicznych.<br /><br />Pozdrawiam,<br />Dragas<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=462">Dragas</a> — 3 mar 2015, o 22:21</p><hr />
]]></content>
</entry>
</feed>