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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-10-04T16:58:49+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=24&amp;t=13118&amp;mode</id>
<entry>
<author><name><![CDATA[KoreX]]></name></author>
<updated>2015-10-04T16:58:49+01:00</updated>
<published>2015-10-04T16:58:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13118&amp;p=141432#p141432</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13118&amp;p=141432#p141432"/>
<title type="html"><![CDATA[Re: Przerawnie Atmega88]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13118&amp;p=141432#p141432"><![CDATA[
Brak nawiasów klamrowych w funkcji obsluga przycisku <br />flaga będzie zerowana przy każdym wywołaniu funkcji <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=229">KoreX</a> — 4 paź 2015, o 16:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Morcinek92]]></name></author>
<updated>2015-10-04T16:43:48+01:00</updated>
<published>2015-10-04T16:43:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13118&amp;p=141427#p141427</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13118&amp;p=141427#p141427"/>
<title type="html"><![CDATA[Re: Przerawnie Atmega88]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13118&amp;p=141427#p141427"><![CDATA[
Ale babol :X <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 />uint8_t klawisz_wcisniety(void);// deklaracja funkcji<br />void obsluga_przycisku(void);<br /><br />volatile uint8_t flaga;<br /><br />// dioda LED<br />#define LED_PIN (1&lt;&lt;PC5)// definicja pinu do którego podłączona jest dioda<br />#define LED_TOG PORTC ^= LED_PIN// makrodefinicja – zmiana stanu diody<br /><br />#define LED_PIN1 (1&lt;&lt;PC3)// definicja pinu do którego podłączona jest dioda<br />#define LED_ON1 PORTC &amp;= ~LED_PIN1// makrodefinicja – załączenie diody<br />#define LED_OFF1 PORTC |= LED_PIN1// makrodefinicja – wyłączenie diody<br /><br />// klawisz K1<br />#define KEY_PIN (1&lt;&lt;PD2)<br />#define KEY_DOWN !(PINC &amp; KEY_PIN)<br /><br />int main(void)<br />{<br />// ****** inicjalizacja *********<br />DDRC |= LED_PIN;// kierunek pinu PC7 – wyjściowy<br />PORTC |= LED_PIN;// wyłączenie diody LED<br /><br />DDRC |= LED_PIN1;<br /><br />DDRD &amp;= ~KEY_PIN;// kierunek pinu PC6 - wejściowy<br />PORTD |= KEY_PIN;// podciągnięcie pinu do VCC<br /><br /><br />//przerwanie zewnętrzne przycisku<br />DDRD &amp;= ~(1&lt;&lt;PD2);      //INT0 jako wejscie<br />EICRA |= (1&lt;&lt;ISC01);   // wyzwalanie zboczem opadajacym<br />EIMSK |= (1 &lt;&lt; INT0);<br />PORTD |= (1&lt;&lt;PD2);      // podciągnięcie pinu INT0 do VCC<br /><br />sei();<br /><br />while(1)<br />{<br /> LED_ON1;<br /> _delay_ms(100);<br /> LED_OFF1;<br /> _delay_ms(100);<br /><br /><br /> obsluga_przycisku();<br />}<br />}<br /><br />ISR(INT0_vect)<br />  {<br />flaga=1;<br />  }<br /><br />void obsluga_przycisku(void)<br />{<br />if (flaga==1)<br />LED_TOG;<br />flaga=0;<br />}<br /><br /><br />uint8_t klawisz_wcisniety(void)<br />{<br />if( KEY_DOWN )// klawisz wciśnięty ?<br />{<br />_delay_ms(80);// czas drgań styków<br />if( KEY_DOWN ) return 1;   // jeśli wciśnięty?  zakończ funkcję - rezultat = 1<br />}<br /><br />return 0;// jeśli nie wciśnięty klawisz, zakończ funkcję, rezultat = 0<br />}[/syntax]<br /><br />Działa !<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=903">Morcinek92</a> — 4 paź 2015, o 16:43</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[KoreX]]></name></author>
<updated>2015-10-04T16:30:28+01:00</updated>
<published>2015-10-04T16:30:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13118&amp;p=141422#p141422</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13118&amp;p=141422#p141422"/>
<title type="html"><![CDATA[Re: Przerawnie Atmega88]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13118&amp;p=141422#p141422"><![CDATA[
Przerwanie wykonujesz od PD2 a w nim wywolujesz funkcje która sprawdza czy jest &quot;wciśnięty&quot; PC4, tym sposobem nigdy flaga nie ustawi sie na 1;)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=229">KoreX</a> — 4 paź 2015, o 16:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Morcinek92]]></name></author>
<updated>2015-10-04T16:14:06+01:00</updated>
<published>2015-10-04T16:14:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13118&amp;p=141419#p141419</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13118&amp;p=141419#p141419"/>
<title type="html"><![CDATA[Re: Przerawnie Atmega88]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13118&amp;p=141419#p141419"><![CDATA[
No tak, ale nadal nie działa niestety<br /><br />Wywołałem tą funkcję  obsluga_przycisku(); w pętli ale nadal nic .. <br /><br />połączenia są na pewno okej<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 />uint8_t klawisz_wcisniety(void);// deklaracja funkcji<br />void obsluga_przycisku(void);<br /><br />volatile uint8_t flaga;<br /><br />// dioda LED<br />#define LED_PIN (1&lt;&lt;PC5)// definicja pinu do którego podłączona jest dioda<br />#define LED_TOG PORTC ^= LED_PIN// makrodefinicja – zmiana stanu diody<br /><br />#define LED_PIN1 (1&lt;&lt;PC3)// definicja pinu do którego podłączona jest dioda<br />#define LED_ON1 PORTC &amp;= ~LED_PIN1// makrodefinicja – załączenie diody<br />#define LED_OFF1 PORTC |= LED_PIN1// makrodefinicja – wyłączenie diody<br /><br />// klawisz K1<br />#define KEY_PIN (1&lt;&lt;PC4)<br />#define KEY_DOWN !(PINC &amp; KEY_PIN)<br /><br />int main(void)<br />{<br />// ****** inicjalizacja *********<br />DDRC |= LED_PIN;// kierunek pinu PC7 – wyjściowy<br />PORTC |= LED_PIN;// wyłączenie diody LED<br /><br />DDRC |= LED_PIN1;<br /><br />DDRC &amp;= ~KEY_PIN;// kierunek pinu PC6 - wejściowy<br />PORTC |= KEY_PIN;// podciągnięcie pinu do VCC<br /><br /><br />//przerwanie zewnętrzne przycisku<br />DDRD &amp;= ~(1&lt;&lt;PD2);      //INT0 jako wejscie<br />EICRA |= (1&lt;&lt;ISC01);   // wyzwalanie zboczem opadajacym<br />EIMSK |= (1 &lt;&lt; INT0);<br />PORTD |= (1&lt;&lt;PD2);      // podciągnięcie pinu INT0 do VCC<br /><br />sei();<br /><br />while(1)<br />{<br /> LED_ON1;<br /> _delay_ms(100);<br /> LED_OFF1;<br /> _delay_ms(100);<br /><br /> obsluga_przycisku();<br />}<br />}<br /><br />ISR(INT0_vect)<br />  {<br />if(  klawisz_wcisniety()  )  // jeśli klawisz wciśnięty<br />{<br />flaga=1;<br />}<br />  }<br /><br />void obsluga_przycisku(void)<br />{<br />if (flaga)<br />LED_TOG;<br />}<br /><br /><br />uint8_t klawisz_wcisniety(void)<br />{<br />if( KEY_DOWN )// klawisz wciśnięty ?<br />{<br />_delay_ms(80);// czas drgań styków<br />if( KEY_DOWN ) return 1;   // jeśli wciśnięty?  zakończ funkcję - rezultat = 1<br />}<br /><br />return 0;// jeśli nie wciśnięty klawisz, zakończ funkcję, rezultat = 0<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=903">Morcinek92</a> — 4 paź 2015, o 16:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[chemik0]]></name></author>
<updated>2015-10-04T16:13:47+01:00</updated>
<published>2015-10-04T16:13:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13118&amp;p=141418#p141418</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13118&amp;p=141418#p141418"/>
<title type="html"><![CDATA[Re: Przerawnie Atmega88]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13118&amp;p=141418#p141418"><![CDATA[
Nie działa bo nigdzie nie wywołujesz funkcji &quot;obsluga_przycisku&quot;.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=91">chemik0</a> — 4 paź 2015, o 16:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[anshar]]></name></author>
<updated>2015-10-04T16:09:06+01:00</updated>
<published>2015-10-04T16:09:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13118&amp;p=141413#p141413</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13118&amp;p=141413#p141413"/>
<title type="html"><![CDATA[Re: Przerawnie Atmega88]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13118&amp;p=141413#p141413"><![CDATA[
Masz:<br />[syntax=c]uint8_t flaga;[/syntax]<br /><br />A powinno być:<br />[syntax=c]volatile uint8_t flaga;[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7157">anshar</a> — 4 paź 2015, o 16:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Morcinek92]]></name></author>
<updated>2015-10-04T15:57:26+01:00</updated>
<published>2015-10-04T15:57:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13118&amp;p=141409#p141409</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13118&amp;p=141409#p141409"/>
<title type="html"><![CDATA[Przerawnie Atmega88]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13118&amp;p=141409#p141409"><![CDATA[
Hejka, <br /><br />Procesor ATmega88, 8Mhz. <br />Chciałem poprzez przerwanie wykonać jakąś czynność . W pętli głównej miga sobie dioda. Po wciśnięciu przycisku niezależnie zaświeci się druga dioda. Wszystko niby proste a nie działa.. <br /><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 />uint8_t klawisz_wcisniety(void);// deklaracja funkcji<br />void obsluga_przycisku(void);<br /><br />uint8_t flaga;<br /><br />// dioda LED<br />#define LED_PIN (1&lt;&lt;PC5)// definicja pinu do którego podłączona jest dioda<br />#define LED_TOG PORTC ^= LED_PIN// makrodefinicja – zmiana stanu diody<br /><br />#define LED_PIN1 (1&lt;&lt;PC3)// definicja pinu do którego podłączona jest dioda<br />#define LED_ON1 PORTC &amp;= ~LED_PIN1// makrodefinicja – załączenie diody<br />#define LED_OFF1 PORTC |= LED_PIN1// makrodefinicja – wyłączenie diody<br /><br />// klawisz K1<br />#define KEY_PIN (1&lt;&lt;PC4)<br />#define KEY_DOWN !(PINC &amp; KEY_PIN)<br /><br />int main(void)<br />{<br />// ****** inicjalizacja *********<br />DDRC |= LED_PIN;// kierunek pinu PC7 – wyjściowy<br />PORTC |= LED_PIN;// wyłączenie diody LED<br /><br />DDRC |= LED_PIN1;<br /><br />DDRC &amp;= ~KEY_PIN;// kierunek pinu PC6 - wejściowy<br />PORTC |= KEY_PIN;// podciągnięcie pinu do VCC<br /><br /><br />//przerwanie zewnętrzne przycisku<br />DDRD &amp;= ~(1&lt;&lt;PD2);      //INT0 jako wejscie<br />EICRA |= (1&lt;&lt;ISC01);   // wyzwalanie zboczem opadajacym<br />EIMSK |= (1 &lt;&lt; INT0);<br />PORTD |= (1&lt;&lt;PD2);      // podciągnięcie pinu INT0 do VCC<br /><br />sei();<br /><br />while(1)<br />{<br /> LED_ON1;<br /> _delay_ms(100);<br /> LED_OFF1;<br /> _delay_ms(100);<br /><br />}<br />}<br /><br />ISR(INT0_vect)<br />  {<br />if(  klawisz_wcisniety()  )  // jeśli klawisz wciśnięty<br />{<br />flaga=1;<br />}<br />  }<br /><br />void obsluga_przycisku(void)<br />{<br />if (flaga)<br />LED_TOG;<br />}<br /><br /><br />uint8_t klawisz_wcisniety(void)<br />{<br />if( KEY_DOWN )// klawisz wciśnięty ?<br />{<br />_delay_ms(80);// czas drgań styków<br />if( KEY_DOWN ) return 1;   // jeśli wciśnięty?  zakończ funkcję - rezultat = 1<br />}<br /><br />return 0;// jeśli nie wciśnięty klawisz, zakończ funkcję, rezultat = 0<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=903">Morcinek92</a> — 4 paź 2015, o 15:57</p><hr />
]]></content>
</entry>
</feed>