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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-10-01T09:31:16+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=8672&amp;mode</id>
<entry>
<author><name><![CDATA[Anonymous]]></name></author>
<updated>2014-10-01T09:31:16+01:00</updated>
<published>2014-10-01T09:31:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8672&amp;p=97219#p97219</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8672&amp;p=97219#p97219"/>
<title type="html"><![CDATA[Re: Przerwania, Timery -&gt; Początkujący problemy z teorią]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8672&amp;p=97219#p97219"><![CDATA[
ja dziękuję w każdym razie za kazdą pomoc wyznaje zasade &quot;ze najpierw coś musi dzialac, a dopiero potem poprawnie dzialac&quot;<br /><br />Prowadze korepetycje z matematyki i ta metoda sie sprawda <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><p>Statystyki: Napisane przez Gość — 1 paź 2014, o 09:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Człowiek_Zlew]]></name></author>
<updated>2014-09-30T19:58:48+01:00</updated>
<published>2014-09-30T19:58:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8672&amp;p=97153#p97153</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8672&amp;p=97153#p97153"/>
<title type="html"><![CDATA[Re: Przerwania, Timery -&gt; Początkujący problemy z teorią]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8672&amp;p=97153#p97153"><![CDATA[
Jakbyś przeczytał to pytałem się czy chodzi o INT czy zwykły warunek if, ale  kolega dopytał sie o INT to zrealizowałem na przerwaniach, może mój sposób nie jest najlepszy ale dzięki niemu kolega może liznąć temat o przerwaniach ZEW. Oczywiście masz racje ze zwykły &quot;if&quot; jest lepszy pod każdym kątem w tak prostym przykładzie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2106">Człowiek_Zlew</a> — 30 wrz 2014, o 19:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[doman89]]></name></author>
<updated>2014-09-30T19:05:13+01:00</updated>
<published>2014-09-30T19:05:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8672&amp;p=97140#p97140</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8672&amp;p=97140#p97140"/>
<title type="html"><![CDATA[Re: Przerwania, Timery -&gt; Początkujący problemy z teorią]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8672&amp;p=97140#p97140"><![CDATA[
Witam,<br /><br />Kolega dla mnie kod wyżej trochę to ... nie wiem jak to nazwać... paskudztwo? Rozumiem mieć dobre intencję, ale ładować obsługę switcha do przerwań INTx ?? A jak kolega będzie chciał 4 switche??<br /><br />Ja bym celował w coś takiego: (kod napisany - nie testowany)<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;interrupt.h&gt;<br /><br />volatile uint16_t timer1; // Zmienna do odliczania milisekund<br /><br />#define Switch_DDR DDRD<br />#define Switch_OUT PORTD<br />#define Switch_IN PIND<br />#define Switch1_PIN 0<br />#define Switch2_PIN 1<br /><br />#define LED_DDR DDRB<br />#define LED_OUT PORTB<br />#define LED_PIN 1<br />#define LED_TOGGLE LED_OUT ^= (1&lt;&lt;LED_PIN)<br /><br />int main()<br />{<br />Switch_DDR &amp;= ~((1&lt;&lt;Switch1_PIN) | (1&lt;&lt;Switch2_PIN)); // Przyciski jako wejscie<br />Switch_OUT |= (1&lt;&lt;Switch1_PIN) | (1&lt;&lt;Switch2_PIN); // Przyciski podciagniete do Vcc<br /><br />LED_DDR |= (1&lt;&lt;LED_PIN); // Dioda jako wyjscie<br /><br />Timer2_Init(); // Inicjalizacja Timera 2<br />sei(); // Odblokowanie przerwan<br /><br />uint8_t piorytet = 0;<br />while(1)<br />{<br />if( !(Switch_IN &amp; (1&lt;&lt;Switch1_PIN)) &amp;&amp; !piorytet) //Jezeli pierwszy switch jest OFF uklad nie dziala<br />{<br />LED_OUT &amp;= ~(1&lt;&lt;LED_PIN);<br />}<br />else<br />{<br />if( !(Switch_IN &amp; (1&lt;&lt;Switch2_PIN))  )// Jezeli 2 switch jest ON to uklad dziala normalnie (migniecie co 1Hz)<br />{<br />if(!timer1) <br />{<br />timer1 = 1000;<br />LED_TOGGLE;<br />}<br />}<br />else // Jezeli 2 switch jest OFF uklad mignie 4 razy co 0.25Hz - piorytet<br />{<br />piorytet = 8;<br />}<br />}<br />if(piorytet)<br />{<br />timer1 = 4000;<br />LED_TOGGLE;<br />piorytet--;<br /><br />}<br />}<br />}<br /><br />void Timer2_Init()<br />{<br />TCCR2 |= (1&lt;&lt;WGM21); // Tryb CTC<br />TCCR2 |= (1&lt;&lt;CS22) | (1&lt;&lt;CS21); // Preskaler 64<br />OCR2 = 124; // Przerwanie 1000Hz<br /><br />TIMSK |= (1&lt;&lt;OCIE2); // Zezwolenie na przerwanie Compare Match<br />}<br /><br />ISR(TIMER2_COMP_vect)<br />{<br />static uint16_t ms;<br /><br />ms = timer1;<br />if(ms) timer1--;<br /> <br />}[/syntax]<br /><br />Kod dla ATmegi 8 i F_CPU 8MHz.<br /><br />Co do autora postu, to jak się już wymienia kogoś z imienia i nazwiska, w dodatku na jego własnym forum to wypadało by pisać z dużych liter -Mirosław Kardaś. Kolega może powoli niech przyswaja BlueBooka, bo taki program to nie problem <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Powodzenia w programowaniu<br /><br /><span style="color: #0040FF">z Niebieskim pozdRowieniem,<br />Doman89</span><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3271">doman89</a> — 30 wrz 2014, o 19:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Człowiek_Zlew]]></name></author>
<updated>2014-09-30T17:33:46+01:00</updated>
<published>2014-09-30T17:33:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8672&amp;p=97120#p97120</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8672&amp;p=97120#p97120"/>
<title type="html"><![CDATA[Re: Przerwania, Timery -&gt; Początkujący problemy z teorią]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8672&amp;p=97120#p97120"><![CDATA[
Chodzę do technikum 4kl. Jak się uprzesz to można zrobić na przerwaniu i wtedy procedurze przerwania ładujesz w rejestr OCRx inna wartość. Spróbuje za chwile napisać coś takiego.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 31 minutach ]</span></strong><br /><br />Dla F_CPU - 8Mhz<br />Dla Atmega8 <br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 30-09-2014<br /> *      Author: Łukasz<br /> */<br /><br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br /><br />int main(void){<br />DDRB |= (1&lt;&lt;PB0); // Port do którego podłączyłem led<br /><br />// Iinizjalizacja timera 1<br />TCCR1B |= (1&lt;&lt;CS12);<br />TCCR1B |= (1&lt;&lt;WGM12);<br />OCR1A  = 31249;<br />TIMSK  |= (1&lt;&lt;OCIE1A);<br /><br />MCUCR|= (1&lt;&lt;ISC01)|(1&lt;&lt;ISC00)|(1&lt;&lt;ISC10)|(1&lt;&lt;ISC11); // Wybór zobacz reakcji na opadajace<br />GICR|= (1&lt;&lt;INT0)|(1&lt;&lt;INT1); //Włącznie przerwań zewnetrznych<br />PORTD |= (1&lt;&lt;PD2)||(1&lt;&lt;PD3); // Podciągniecie pinów do VCC<br />_delay_ms(500); // Czas aby odczekać by napiecie się ustabilizowało na pinach<br />sei();<br /><br /><br />while(1){<br /><br /><br />}<br />}<br /><br /><br /><br />ISR( TIMER1_COMPA_vect ){<br />PORTB^= (1&lt;&lt;PB0); //Zmiana stanu diody na przecwiny<br />}<br /><br />ISR (INT0_vect){<br /><br />OCR1A=7811; //Dioda miga z f= 4Hz<br /><br />}<br /><br />ISR (INT1_vect){<br />OCR1A=31249; //Dioda miga z f= 1Hz<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2106">Człowiek_Zlew</a> — 30 wrz 2014, o 17:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Anonymous]]></name></author>
<updated>2014-09-30T17:24:59+01:00</updated>
<published>2014-09-30T17:24:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8672&amp;p=97119#p97119</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8672&amp;p=97119#p97119"/>
<title type="html"><![CDATA[Re: Przerwania, Timery -&gt; Początkujący problemy z teorią]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8672&amp;p=97119#p97119"><![CDATA[
a gdzie studiujesz? ja w gliwicach ale nie mam duzo zajęć z PLC'tow ja platne szkolenia wykupuje i oplaca sie cholernie zwlaszcza ze studenci maja 50% zniżki w każdym razie mówizs o pinie INT jakimś tak? doczytam książkę, dam w tym wątku znać jak poszły postępy<p>Statystyki: Napisane przez Gość — 30 wrz 2014, o 17:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Człowiek_Zlew]]></name></author>
<updated>2014-09-30T17:18:07+01:00</updated>
<published>2014-09-30T17:18:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8672&amp;p=97117#p97117</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8672&amp;p=97117#p97117"/>
<title type="html"><![CDATA[Re: Przerwania, Timery -&gt; Początkujący problemy z teorią]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8672&amp;p=97117#p97117"><![CDATA[
PLC sterowniki ? Własnie mam je na zajęciach <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> Zacznijmy od tego czy twój switch jest podłączony do pinow INTx czy do dowolnego pinu i wykrywasz go za pomoca instrukcji &quot;if&quot; ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2106">Człowiek_Zlew</a> — 30 wrz 2014, o 17:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Anonymous]]></name></author>
<updated>2014-09-30T17:14:03+01:00</updated>
<published>2014-09-30T17:14:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8672&amp;p=97116#p97116</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8672&amp;p=97116#p97116"/>
<title type="html"><![CDATA[Re: Przerwania, Timery -&gt; Początkujący problemy z teorią]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8672&amp;p=97116#p97116"><![CDATA[
A wiesz może jak wygląda wykrywanie zbocza narastającego lub opadającego? Jestem PLC'towcem i tam to jest troche łatwiejsze <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez Gość — 30 wrz 2014, o 17:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Człowiek_Zlew]]></name></author>
<updated>2014-09-30T17:09:11+01:00</updated>
<published>2014-09-30T17:09:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8672&amp;p=97114#p97114</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8672&amp;p=97114#p97114"/>
<title type="html"><![CDATA[Re: Przerwania, Timery -&gt; Początkujący problemy z teorią]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8672&amp;p=97114#p97114"><![CDATA[
&quot;Zastanawia mnie jak napisać też prosty kod przerwania<br />Mam microswitch, ustawiłem LED na miganie 1Hz, ale po naciśnięciu microswitch'a chce by migał z częstotliwością 4Hz, jak to napisac?&quot;<br /><br /><br />Po prostu w instrukcji &quot;if&quot; w której sprawdzasz warunek czy klawisz &quot;ON&quot; zmieniasz wartość ORCxx na odpowiednia która odpowiada 4Hz.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2106">Człowiek_Zlew</a> — 30 wrz 2014, o 17:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Anonymous]]></name></author>
<updated>2014-09-30T17:12:17+01:00</updated>
<published>2014-09-30T16:58:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8672&amp;p=97110#p97110</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8672&amp;p=97110#p97110"/>
<title type="html"><![CDATA[Przerwania, Timery -&gt; Początkujący problemy z teorią]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8672&amp;p=97110#p97110"><![CDATA[
Potrafiłby ktoś mi napisać program:<br />1.lampka miga z częstotliwością 1Hz<br /><br />Trzeba napisać przerwanie, które jest generowane przez naciśnięcie microswitch wtedy na 5 sekund lampka miga z częstotliwością 100Hz<br /><br />Do układu jest dołączone dwa switche ON-OFF, jeśli w pierwszym przypadku jest naciśnięty OFF -&gt; układ nie działa, jeśli jest załączony ON układ działa według puntu pierwszego<br /><br />Drugi switch ON-OFF jeśli załączony jest OFF układ działa jak układ działa jak według punktu pierwszego, ale jeśli załączony jest ON to ma on wtedy priorytet i wykonuje 4 mignięcia z częstotliwością 0,25Hz po czym przełącza się do trybu pierwszego<br /><br />Umiecie pomóc w tym mirk (pisalem na wykopie)i? Arduino odpada, tylko język C<br /><br />#uc #avr #mikrokontrolery #programowanie <br /><br />Za dobrze skomentowany kod serdecznie dziękuję<br />------------------<br /><br />Zastanawia mnie jak napisać też prosty kod przerwania<br />Mam microswitch, ustawiłem LED na miganie 1Hz, ale po naciśnięciu microswitch'a chce by migał z częstotliwością 4Hz, jak to napisac?<br /><br />Za każdą pomoc serdecznie dziękuję! Czytam książkę mirosława kardasia, ale ciężko mi przenieść teorie na praktykę<br /><br />uC atmega64 programtor UsbAsp, mkavrKalkulator<br />-------------------------------------<br /><br />Ok za dużo tego jak napisać proste przerwanie<br />LED świeci 1Hz, po naciśnięciu switcha ma świcić 0,25Hz. Przy naciśnięciu switch ON-OFF na narastającycm zboczy ma świecić 2Hz. Jak to zrobić?<p>Statystyki: Napisane przez Gość — 30 wrz 2014, o 16:58</p><hr />
]]></content>
</entry>
</feed>