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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-07-23T16:44:19+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=58&amp;t=7852&amp;mode</id>
<entry>
<author><name><![CDATA[Anonymous]]></name></author>
<updated>2014-07-23T16:44:19+01:00</updated>
<published>2014-07-23T16:44:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7852&amp;p=88602#p88602</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7852&amp;p=88602#p88602"/>
<title type="html"><![CDATA[Re: timer przeskakuje]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7852&amp;p=88602#p88602"><![CDATA[
Wydaje mi się, że wszelkie operacje na zmiennej &quot;licznik_timera&quot; powinny być atomowe (ATOMIC_BLOCK).<p>Statystyki: Napisane przez Gość — 23 lip 2014, o 16:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[gumeni]]></name></author>
<updated>2014-07-23T14:29:58+01:00</updated>
<published>2014-07-23T14:29:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7852&amp;p=88598#p88598</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7852&amp;p=88598#p88598"/>
<title type="html"><![CDATA[Re: timer przeskakuje]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7852&amp;p=88598#p88598"><![CDATA[
Wgraj ten program (dla Atmega88 8MHz).<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3088">gumeni</a> — 23 lip 2014, o 14:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wozniak@3dsystem.pl]]></name></author>
<updated>2014-07-23T06:24:13+01:00</updated>
<published>2014-07-23T06:24:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7852&amp;p=88543#p88543</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7852&amp;p=88543#p88543"/>
<title type="html"><![CDATA[Re: timer przeskakuje]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7852&amp;p=88543#p88543"><![CDATA[
Już próbowałem. Tworzyłem nowe. Teraz zrobiłem clean i nic. Ciągle to samo.<br />Coś jest nie tak w tym sprawdzeniu. Może nadpisuje do portu, ale wtedy powinno być szybciej.<br />Jak zmieniłem warunek na<br />if (1)<br />{<br /><br />}<br />czyli bez sprawdzania portu to jest OK<br />Tylko mało to przydatne do sprawdzania przycisku :/<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4921">wozniak@3dsystem.pl</a> — 23 lip 2014, o 06:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[gumeni]]></name></author>
<updated>2014-07-22T18:07:10+01:00</updated>
<published>2014-07-22T18:07:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7852&amp;p=88500#p88500</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7852&amp;p=88500#p88500"/>
<title type="html"><![CDATA[Re: timer przeskakuje]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7852&amp;p=88500#p88500"><![CDATA[
Spróbuj tak: clean project, skompiluj i wgraj na AVR.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3088">gumeni</a> — 22 lip 2014, o 18:07</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wozniak@3dsystem.pl]]></name></author>
<updated>2014-07-22T17:56:03+01:00</updated>
<published>2014-07-22T17:56:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7852&amp;p=88496#p88496</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7852&amp;p=88496#p88496"/>
<title type="html"><![CDATA[Re: timer przeskakuje]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7852&amp;p=88496#p88496"><![CDATA[
Atmega88<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4921">wozniak@3dsystem.pl</a> — 22 lip 2014, o 17:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[gumeni]]></name></author>
<updated>2014-07-22T16:39:44+01:00</updated>
<published>2014-07-22T16:39:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7852&amp;p=88486#p88486</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7852&amp;p=88486#p88486"/>
<title type="html"><![CDATA[Re: timer przeskakuje]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7852&amp;p=88486#p88486"><![CDATA[
No to u mnie samo sprawdzenie warunku nic nie zmienia. Jakiego używasz procka?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3088">gumeni</a> — 22 lip 2014, o 16:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wozniak@3dsystem.pl]]></name></author>
<updated>2014-07-22T16:21:34+01:00</updated>
<published>2014-07-22T16:21:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7852&amp;p=88481#p88481</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7852&amp;p=88481#p88481"/>
<title type="html"><![CDATA[Re: timer przeskakuje]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7852&amp;p=88481#p88481"><![CDATA[
Wszystko po warunku if (KEY_DOWN) //czy klawicz wcisniety? jest zakomentowane, więc defakto kod wygląda tak:<br /><br />if (KEY_DOWN) //czy klawicz wcisniety?<br />{<br />}<br /><br />Nie ma tam nic. Wygląda jakby samo sprawdzenie warunku coś zmieniało.<br />Chyba, że coś jest nie tak z komentarzami.<br /><br />Program ma na razie po prostu migać diodą co 2 sekundy z pustym warunkiem if, który ma być tylko sprawdzany, ale ma nic nie robić.<br />Później chcę dodać funkcjonalność, która po wciśnięciu przycisku przełącza diodę nie czekając 2s i zeruje odliczanie - kolejna zmiana dopiero po 2 sekundach.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4921">wozniak@3dsystem.pl</a> — 22 lip 2014, o 16:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[gumeni]]></name></author>
<updated>2014-07-22T14:38:53+01:00</updated>
<published>2014-07-22T14:38:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7852&amp;p=88473#p88473</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7852&amp;p=88473#p88473"/>
<title type="html"><![CDATA[Re: timer przeskakuje]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7852&amp;p=88473#p88473"><![CDATA[
Dzieje się tak ponieważ w warunku if(KEY_DOWN) masz toglowanie pinu (ACT_TOG_1). Napisz jaki efekt chcesz uzyskać. Czy naciśniecie przycisku ma powodować zatrzymanie mrugania?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3088">gumeni</a> — 22 lip 2014, o 14:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wozniak@3dsystem.pl]]></name></author>
<updated>2014-07-22T09:30:18+01:00</updated>
<published>2014-07-22T09:30:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7852&amp;p=88448#p88448</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7852&amp;p=88448#p88448"/>
<title type="html"><![CDATA[Re: timer przeskakuje]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7852&amp;p=88448#p88448"><![CDATA[
Zorientowałem się już po wysłaniu, ale już poprawiłem.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4921">wozniak@3dsystem.pl</a> — 22 lip 2014, o 09:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Wilu88]]></name></author>
<updated>2014-07-22T09:24:45+01:00</updated>
<published>2014-07-22T09:24:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7852&amp;p=88447#p88447</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7852&amp;p=88447#p88447"/>
<title type="html"><![CDATA[Re: timer przeskakuje]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7852&amp;p=88447#p88447"><![CDATA[
Niech kolega użyje prawidłowy znaczników syntax przy wklejaniu kodu, bo trochę go ucięło.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=743">Wilu88</a> — 22 lip 2014, o 09:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wozniak@3dsystem.pl]]></name></author>
<updated>2014-07-22T09:29:03+01:00</updated>
<published>2014-07-22T09:20:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7852&amp;p=88446#p88446</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7852&amp;p=88446#p88446"/>
<title type="html"><![CDATA[timer przeskakuje]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7852&amp;p=88446#p88446"><![CDATA[
Witam,<br />Jestem początkujący, więc pewnie mój problem jest prosty. Niestety nie mogę sobie z nim poradzić.<br />Napisałem prosty program migający diodą co 2s. Ustawiłem timer na CTC na 250Hz więc co 500 zliczeń mam 2 sekundy.<br />I wszystko działa OK dopuki nie podepnę sprawdzania wciśnięcia przycisku.<br />Wtedy czas przełączenia diody potrafi się skrócić o (tak na oko) połowę, ale tylko co jakiś czas.<br /><br />To się dzieje nawet jeżeli mam tylko sprawdzanie jednego warunku bez żadnego delaya i ponownego sprawdzenia.<br />Tutaj załączam kod:<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 />// makra<br />#define  ACT_PIN_1 (1&lt;&lt;PC0)<br /><br />#define  MSWITCH_PIN_1 (1&lt;&lt;PB1)<br /><br />#define  ACT_TOG_1 PORTC ^= (ACT_PIN_1)<br />#define  KEY_DOWN !(PINB &amp; MSWITCH_PIN_1)<br />volatile uint16_t licznik_timera =0;<br /><br />//obsługa przerwania timera<br />ISR (TIMER1_COMPA_vect)<br />{<br />licznik_timera ++;<br />}<br /><br /><br />// program<br />int main(void)<br />{<br />TCCR1B |= (1&lt;&lt;WGM12); //tryb CTC<br />TCCR1B |= (1&lt;&lt;CS12); //preskaler = 1024<br />OCR1A |=124;<br />TIMSK1 |= (1&lt;&lt;OCIE1A);<br /><br />sei();<br /><br />// inicjalizacja portów<br />DDRC |= ACT_PIN_1; // wyjscie na silownik<br />PORTC |= ACT_PIN_1; // wlaczenie silownika<br /><br />PORTB |= MSWITCH_PIN_1; //podpiecie pod wewnetrzny rezystor<br /><br />//glowna petla<br />while(1)<br />{<br />if (licznik_timera&gt;=500)<br />{<br />licznik_timera=0;<br />ACT_TOG_1;<br />}<br /><br /><br />if (KEY_DOWN) //czy klawicz wcisniety?<br />{<br />//_delay_ms(80);<br /><br />/*if (KEY_DOWN)<br />{<br />//licznik_timera=0;<br />//ACT_TOG_1;<br />//_delay_ms(200);<br />}<br />*/<br />}<br /><br /><br />}<br />}[/syntax]<br />Może ma ktoś jakieś pomysły?<br />Z góry dziękuję.<br /> Stefan<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4921">wozniak@3dsystem.pl</a> — 22 lip 2014, o 09:20</p><hr />
]]></content>
</entry>
</feed>