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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-11-29T21:56:16+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=4939&amp;mode</id>
<entry>
<author><name><![CDATA[ringel]]></name></author>
<updated>2013-11-29T21:56:16+01:00</updated>
<published>2013-11-29T21:56:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4939&amp;p=59095#p59095</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4939&amp;p=59095#p59095"/>
<title type="html"><![CDATA[Re: Problem z przerwaniem timera]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4939&amp;p=59095#p59095"><![CDATA[
<div class="quotetitle">AndreAs napisał(a):</div><div class="quotecontent"><br />To forum to świeta sprawa wczoraj nie jarzyłem z procedury przerwań , a dziś zaświeciło się światełko w tunelu. A to wszystko dzięki wam koledzy Dzięki. A jeszcze jedno kod wrzuciłem do kostki i działa.<br /></div><br />O widze że dioda mruga. Teraz już chyba wiesz że wszystko od mrugania diody się zaczyna. Jeszcze tylko to samo do przycisków.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=343">ringel</a> — 29 lis 2013, o 21:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[AndreAs]]></name></author>
<updated>2013-11-29T20:17:07+01:00</updated>
<published>2013-11-29T20:17:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4939&amp;p=59084#p59084</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4939&amp;p=59084#p59084"/>
<title type="html"><![CDATA[Re: Problem z przerwaniem timera]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4939&amp;p=59084#p59084"><![CDATA[
To forum to świeta sprawa wczoraj nie jarzyłem z procedury przerwań , a dziś zaświeciło się światełko w tunelu. A to wszystko dzięki wam koledzy Dzięki. A jeszcze jedno kod wrzuciłem do kostki i działa.<br /><br /><br /><br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br /><br /><br /><br />#define LED1_PIN (1&lt;&lt;PC7)<br />#define LED1_TOG PORTC ^= LED1_PIN<br /><br />volatile uint8_t Timer0  ;<br /><br />int main(void){<br /><br />        DDRC |= LED1_PIN;   // pin diody na wyjscie<br />        PORTC |= LED1_PIN;<br />        PORTC &amp;= LED1_PIN;<br /><br /><br />       //  TIMER0 dla F_CPU=11,0592MHz */<br />        TCCR0 |= (1&lt;&lt;WGM01);/* tryb CTC */<br />        TCCR0 |= (1&lt;&lt;CS02)|(1&lt;&lt;CS00);/* preskaler = 1024 */<br />        OCR0 = 107;/* podział przez 108  */<br />        TIMSK |= (1&lt;&lt;OCIE0);/* przerwanie CompareMatch */<br />           // tyknięcie 10ms<br /><br />        sei(); //procedura przerwania<br /><br />        while(1)<br />        {<br />        if( !Timer0 )<br />        {<br />                Timer0=100;<br />                LED1_TOG;<br />        }<br />        }<br /><br />}<br /><br />ISR(TIMER0_COMP_vect)<br /><br />      {<br />         uint8_t n;<br /><br />          n = Timer0;<br />          if (n) Timer0 = --n;<br /><br />      }[/syntax]<br /><br /><span style="color: #FF0000">Kod wklejamy przy pomocy syntax=c - Różowy J.</span><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2092">AndreAs</a> — 29 lis 2013, o 20:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[AndreAs]]></name></author>
<updated>2013-11-29T16:53:04+01:00</updated>
<published>2013-11-29T16:53:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4939&amp;p=59061#p59061</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4939&amp;p=59061#p59061"/>
<title type="html"><![CDATA[Re: Problem z przerwaniem timera]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4939&amp;p=59061#p59061"><![CDATA[
Dzięki za wszyskie uwagi , są dla mnie cenne gdyż to są moje pierwsze kroki w C dla AVR. <br />Co do opóźnienia , to do drgania styków zamiast delay-a.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2092">AndreAs</a> — 29 lis 2013, o 16:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ringel]]></name></author>
<updated>2013-11-28T22:01:58+01:00</updated>
<published>2013-11-28T22:01:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4939&amp;p=58969#p58969</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4939&amp;p=58969#p58969"/>
<title type="html"><![CDATA[Re: Problem z przerwaniem timera]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4939&amp;p=58969#p58969"><![CDATA[
Witaj, po pierwsze kody wstawiaj w syntax, bo kod strasznie się czyta.<br />Po drugie nie wiem gdzie chciałeś te opóźnienia wstawić, ale w ciele przerwania nie widzę nic tylko klamry.<br />Jeżeli masz książkę Mirka to poczytaj o przerwaniach i spróbuj na początek z diodą LED mrugać zamiast delay-ów.<br /><br />Mała podpowiedź:<br />[syntax=c]ISR(TIMER2_COMP_vect)<br />{<br />uint16_t n;<br /><br />n = Timer1;<br />if (n) Timer1 = --n;<br /><br />}<br /><br />W kodzie później np.<br />if( !Timer1 ) {<br />Timer1=100;<br />LED3_TOG;   <br />      }[/syntax]<br />Przeanalizuj sobie ten kod.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=343">ringel</a> — 28 lis 2013, o 22:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[AndreAs]]></name></author>
<updated>2013-11-28T14:24:43+01:00</updated>
<published>2013-11-28T14:24:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4939&amp;p=58909#p58909</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4939&amp;p=58909#p58909"/>
<title type="html"><![CDATA[Re: Problem z przerwaniem timera]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4939&amp;p=58909#p58909"><![CDATA[
Jak wcześniej napisałem jestem początkujący i  procedury przerwań to dla mnie czarna magia . W moim ćwiczeniu (bo to żeden projekt) postanowiłem wyeliminować delay-a , i zastąpić go timerem 0 , że trzy przyciski mają załączać trzy diody to chyba wiać. Wrzuciłem temat na forum ale bez odzewu więc , metodą prób i błędów jakoś doszłem , nie wiem czy dobrze , ale wgrałem do układu i działa. Jeżeli ktoś ma jakieś sugestie chętnie wysłucham.<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br /><br />#define LED1_PIN (1&lt;&lt;PC7) // definicja pinu dioda 1<br />#define LED2_PIN (1&lt;&lt;PC6) // definicja pinu dioda 2<br />#define LED3_PIN (1&lt;&lt;PC5) // definicja pinu dioda 3<br />#define LED1_TOG PORTC ^= LED1_PIN// makrodefinicja – zmiana stanu diody 1<br />#define LED2_TOG PORTC ^= LED2_PIN// makrodefinicja – zmiana stanu diody 2<br />#define LED3_TOG PORTC ^= LED3_PIN// makrodefinicja – zmiana stanu diody 3<br /><br />#define KEY1_PIN (1&lt;&lt;PC0) // definicja pinu klawisza 1<br />#define KEY2_PIN (1&lt;&lt;PC1) // definicja pinu klawisza 2<br />#define KEY3_PIN (1&lt;&lt;PC2) // definicja pinu klawisza 3<br /><br /> volatile uint8_t Timer_0;<br /><br /> uint8_t klawisz_wcisniety (uint8_t klawisz);<br /><br />int main(void)<br />{<br />DDRC |= LED1_PIN | LED2_PIN | LED3_PIN;<br />PORTC |= LED1_PIN | LED2_PIN | LED3_PIN;<br />PORTC &amp;= LED1_PIN | LED2_PIN | LED3_PIN;<br /><br /><br />DDRC &amp;= ~(KEY1_PIN | KEY2_PIN | KEY3_PIN);<br />PORTC |= KEY1_PIN | KEY2_PIN | KEY3_PIN;<br /><br />/*  TIMER0 z zegarem  F_CPU=11,0592MHz */<br />TCCR0 |= (1&lt;&lt;WGM01);/*  tryb CTC */<br />TCCR0 |= (1&lt;&lt;CS02)|(1&lt;&lt;CS00);/*  preskaler = 1024 */<br />OCR0 = 53;/*  podział przez 54  */<br />TIMSK |= (1&lt;&lt;OCIE0);/*  przerwanie CompareMatch */<br />/* tyknięcie co 5ms  */<br /><br />        sei(); /* załączenie przerwania */<br /><br />while (1)<br />{<br />if (klawisz_wcisniety(KEY1_PIN)) LED1_TOG;<br />    if (klawisz_wcisniety(KEY2_PIN)) LED2_TOG;<br />    if (klawisz_wcisniety(KEY3_PIN)) LED3_TOG;<br /><br />}<br />}<br /><br />uint8_t klawisz_wcisniety (uint8_t klawisz)<br /><br /> {<br /> if ( !(PINC &amp; klawisz))<br /><br />   {<br /> Timer_0=40;<br />if ( !(PINC &amp; klawisz))return 1;<br /><br />   }<br /><br />return 0;<br />}<br /><br />ISR(TIMER0_COMP_vect) {}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2092">AndreAs</a> — 28 lis 2013, o 14:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Waldek_jb]]></name></author>
<updated>2013-11-27T21:40:40+01:00</updated>
<published>2013-11-27T21:40:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4939&amp;p=58816#p58816</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4939&amp;p=58816#p58816"/>
<title type="html"><![CDATA[Re: Problem z przerwaniem timera]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4939&amp;p=58816#p58816"><![CDATA[
To wpisz Kolego kod może komuś się przydać do ćwiczeń<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1693">Waldek_jb</a> — 27 lis 2013, o 21:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[AndreAs]]></name></author>
<updated>2013-11-27T20:22:21+01:00</updated>
<published>2013-11-27T20:22:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4939&amp;p=58798#p58798</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4939&amp;p=58798#p58798"/>
<title type="html"><![CDATA[Re: Problem z przerwaniem timera]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4939&amp;p=58798#p58798"><![CDATA[
Zamykam temat doszłem jak ma być.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2092">AndreAs</a> — 27 lis 2013, o 20:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[AndreAs]]></name></author>
<updated>2013-11-27T18:15:32+01:00</updated>
<published>2013-11-27T18:15:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4939&amp;p=58766#p58766</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4939&amp;p=58766#p58766"/>
<title type="html"><![CDATA[Problem z przerwaniem timera]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4939&amp;p=58766#p58766"><![CDATA[
AVR-ami w języku C zajmuje się od trzech miesięcy i nie bardzo jeszcze wszystko trybie , próbuje do opóźnienienia wykorzystać timer0<br />Rzućcie na to co skleiłem i napiszcie co jest źle.<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 />//#include &lt;avr/pgmspace.h&gt;<br /><br />#define LED1_PIN (1&lt;&lt;PC7) // definicja pinu dioda 1<br />#define LED2_PIN (1&lt;&lt;PC6) // definicja pinu dioda 2<br />#define LED3_PIN (1&lt;&lt;PC5) // definicja pinu dioda 3<br />#define LED1_TOG PORTC ^= LED1_PIN// makrodefinicja – zmiana stanu diody 1<br />#define LED2_TOG PORTC ^= LED2_PIN// makrodefinicja – zmiana stanu diody 2<br />#define LED3_TOG PORTC ^= LED3_PIN// makrodefinicja – zmiana stanu diody 3<br /><br />#define KEY1_PIN (1&lt;&lt;PC0) // definicja pinu klawisza 1<br />#define KEY2_PIN (1&lt;&lt;PC1) // definicja pinu klawisza 2<br />#define KEY3_PIN (1&lt;&lt;PC2) // definicja pinu klawisza 3<br /><br /> volatile uint8_t Timer_0;<br /><br /> uint8_t klawisz_wcisniety (uint8_t klawisz);<br /><br />int main(void)<br />{<br />DDRC |= LED1_PIN | LED2_PIN | LED3_PIN;  <br />PORTC |= LED1_PIN | LED2_PIN | LED3_PIN; <br />PORTC &amp;= LED1_PIN | LED2_PIN | LED3_PIN;<br /><br /><br />DDRC &amp;= ~(KEY1_PIN | KEY2_PIN | KEY3_PIN);<br />PORTC |= KEY1_PIN | KEY2_PIN | KEY3_PIN;<br /><br />/*  TIMER0 z zegarem  F_CPU=11,0592MHz */<br />TCCR0 |= (1&lt;&lt;WGM01);/*  tryb CTC */<br />TCCR0 |= (1&lt;&lt;CS02)|(1&lt;&lt;CS00);/*  preskaler = 1024 */<br />OCR0 = 53;/*  podział przez 54  */<br />TIMSK |= (1&lt;&lt;OCIE0);/*  przerwanie CompareMatch */<br />/* tyknięcie co 5ms  */<br /><br />        sei(); /* załączenie przerwania */<br /><br />while (1)<br />{<br />if (klawisz_wcisniety(KEY1_PIN)) LED1_TOG;<br />    if (klawisz_wcisniety(KEY2_PIN)) LED2_TOG;<br />    if (klawisz_wcisniety(KEY3_PIN)) LED3_TOG;<br /><br />}<br />}<br /><br />uint8_t klawisz_wcisniety (uint8_t klawisz)<br /><br /> {<br /> if ( !(PINC &amp; klawisz))<br /><br />   {<br /> Timer_0=40;<br />if ( !(PINC &amp; klawisz))return 1;<br /><br />   }<br /><br />return 0;<br />}<br /><br />  ISR(TIMER0_COMP_vect)<br /><br />  {<br /><br />   PORTC ^= LED1_PIN;<br />   PORTC ^= LED2_PIN;<br />   PORTC ^= LED3_PIN;<br />  }[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2092">AndreAs</a> — 27 lis 2013, o 18:15</p><hr />
]]></content>
</entry>
</feed>