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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2012-11-04T15:53:54+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=1750&amp;mode</id>
<entry>
<author><name><![CDATA[wireless]]></name></author>
<updated>2012-11-04T15:53:54+01:00</updated>
<published>2012-11-04T15:53:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1750&amp;p=18173#p18173</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1750&amp;p=18173#p18173"/>
<title type="html"><![CDATA[Re: Na karuzeli ( round robin )]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1750&amp;p=18173#p18173"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />...... eeeeeh - normalnie syzyfowa ta moja praca z tym przypominaniem<br /></div><br /><br />no tak, współczuję Ci  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br />&quot;Jak mówi powiedzenie obyś cudze dzieci uczył, daje ono wyraźnie informacje że praca nauczyciela jest ciężkim kawałkiem chleba.&quot;  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />dzięki, tak to jest jak człowiek chce sie nauczyć wszystkiego naraz  <img src="https://forum.atnel.pl/images/smilies/icon_rolleyes.gif" alt=":roll:" title="Udaje, że to nie on" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=380">wireless</a> — 4 lis 2012, o 15:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-11-04T15:39:54+01:00</updated>
<published>2012-11-04T15:39:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1750&amp;p=18172#p18172</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1750&amp;p=18172#p18172"/>
<title type="html"><![CDATA[Re: Na karuzeli ( round robin )]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1750&amp;p=18172#p18172"><![CDATA[
Przez całą pierwszą książkę prawię co chwilę powtarzam, i na forach - żeby nie podawać w kodzie #define F_CPU, bo to jest BABOL, który później prowadzi do pomyłek. Może ci umknęło więc przypomnę jeszcze raz.<br /><br />częstotliwość TAKTOWANIA - USTAWIAMY TYLKO I WYŁĄCZNIE we właściwościach projektu (jeśli robisz to w ECLIPSE albo innym normalnym środowisku. Masz tam przecież pole do ustawienia tego prawda ?) .... Chyba że się upierasz na kocie AVR STudio - to ok upieraj się ale wtedy też sobie zapamiętaj, że tak się tego również nie robi chociaż w tym środowisku nie ma już miejsca na wpisanie taktowania jak to było kiedyś w AVR Studio 4.xx. Za to jest dostęp do opcji kompilatora i trzeba się tam za każdym razem dogrzebać gdy chcesz to zmienić i ustawić parametr -DF_CPU xxxxx<br /><br />chodzi o to - że dzięki temu - zostaje F_CPU ustawione na poziomie pliku MAKEFILE a to z kolei daje ci to , że F_CPU jest WIDOCZNE w KAŻDYM, podkreślam KAŻDYM pliku projektu. Więc nie trzeba tego wklepywać ręcznie. Ale nie chodzi tylko o wygodę. Sam pomyśl sobie co będzie jak projekt ci się rozbuduje i będziesz miał wiele plików - a w każdym gdzie akurat będziesz potrzebował F_CPU będziesz to definiował ??? ok no dobra - definiuj - ale jak ci przyjdzie zmienić taktowanie - to już widzę jak się ucieszysz że teraz w 40 plikowym projekcie będziesz musiał skrupulatnie szukać miejsc gdzie miałeś podaną starą wartość taktowania w tych #decine F_CPU<br /><br />a nie wspomnę już o kłopotach z _delya_ms() ...... eeeeeh - normalnie syzyfowa ta moja praca z tym przypominaniem o tym - ale co się dziwić jak 90% poradników w necie powiela ten chory błąd <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> ..... zamiast wytłumaczyć co i jak ....<br /><br />--------------<br /><br />Jak to Timer1 i podobne nie mają wartości początkowej ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ..... eeeeeh zapominamy, zapominamy .... a nie pamięta kolega jednej prostej zasady - że WSZYSTKIE zmienne globalne inicjalizowane są domyślnie ZEREM ??? więc jak mogą nie mieć wartości początkowej? <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=54">mirekk36</a> — 4 lis 2012, o 15:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wireless]]></name></author>
<updated>2012-11-04T15:16:33+01:00</updated>
<published>2012-11-04T15:16:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1750&amp;p=18171#p18171</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1750&amp;p=18171#p18171"/>
<title type="html"><![CDATA[Re: Na karuzeli ( round robin )]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1750&amp;p=18171#p18171"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />#define F_CPU 8000000UL  // 8 MHz<br />????<br /></div><br />migało jak popadnie, wiec zacząłem wymyślać  <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> <br />a w czym to może szkodzić?  <br /><br />wyjaśnij mi przy okazji, dlaczego zmienne Timer1 itd nie mają wartości początkowej,<br />długo się zastanawiałem skąd program wie jaki czas chcę uzyskać, ale rozumiem,<br />że jakie by nie były to wartości to Timery schodzą do 0 i program reaguje<br /><br />czy domyślnie te zmienne mają wartość 0?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=380">wireless</a> — 4 lis 2012, o 15:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-11-04T15:00:55+01:00</updated>
<published>2012-11-04T15:00:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1750&amp;p=18169#p18169</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1750&amp;p=18169#p18169"/>
<title type="html"><![CDATA[Re: Na karuzeli ( round robin )]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1750&amp;p=18169#p18169"><![CDATA[
A możesz mi przy okazji powiedzieć co u ciebie w kodzie robi to <br /><br />#define F_CPU 8000000UL  // 8 MHz<br /><br />????<br /><br />bo przez to też może się niedobrze zrobić <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />pozbądź się tego jak najszybciej<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 4 lis 2012, o 15:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wireless]]></name></author>
<updated>2012-11-04T13:17:12+01:00</updated>
<published>2012-11-04T13:17:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1750&amp;p=18164#p18164</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1750&amp;p=18164#p18164"/>
<title type="html"><![CDATA[Re: Na karuzeli ( round robin )]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1750&amp;p=18164#p18164"><![CDATA[
ale jaja  <img src="https://forum.atnel.pl/images/smilies/icon_redface.gif" alt=":oops:" title="Zawstydzony" /> <br />jak wszystko uporządkowałem, aby wysłać na forum, to naprawiłem pewnie pozostałe błedy,<br />tylko został mi ten najgłupszy, dzięki<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=380">wireless</a> — 4 lis 2012, o 13:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2012-11-04T13:09:04+01:00</updated>
<published>2012-11-04T13:09:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1750&amp;p=18162#p18162</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1750&amp;p=18162#p18162"/>
<title type="html"><![CDATA[Re: Na karuzeli ( round robin )]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1750&amp;p=18162#p18162"><![CDATA[
while(1)<strong>;</strong> średnik kończy while() i klamry oznaczają tylko jakiś blok kodu. Zresztą wiesz o co chodzi.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 4 lis 2012, o 13:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wireless]]></name></author>
<updated>2012-11-04T12:54:44+01:00</updated>
<published>2012-11-04T12:54:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1750&amp;p=18160#p18160</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1750&amp;p=18160#p18160"/>
<title type="html"><![CDATA[Na karuzeli ( round robin )]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1750&amp;p=18160#p18160"><![CDATA[
Zachciało się staremu pojeździć na karuzeli  <img src="https://forum.atnel.pl/images/smilies/icon_rolleyes.gif" alt=":roll:" title="Udaje, że to nie on" /> <br /><br />procesor Atmega88, podłączony układ RTC<br />bez karuzeli jedna dioda miga co 10 ms, druga co 1 s, jest OK!<br />[syntax=c]<br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br /><br />#define LED1 (1&lt;&lt;PC3)// dioda LED1 na pinie PC3<br />#define LED1_ON PORTC &amp;= ~LED1<br />#define LED1_OFF PORTC |= LED1<br />#define LED1_TOG PORTC ^= LED1<br />#define LED1_DDR DDRC<br /><br />#define LED2 (1&lt;&lt;PC2)// dioda LED2 na pinie PC2<br />#define LED2_ON PORTC &amp;= ~LED2<br />#define LED2_OFF PORTC |= LED2<br />#define LED2_TOG PORTC ^= LED2<br />#define LED2_DDR DDRC<br /><br />#define F_CPU 8000000UL  // 8 MHz<br /><br />//******************************* deklaracje funkcji<br /><br />void timery_init(void);<br /><br />int main(void)<br />{<br />// ustalamy kierunki pinów diod LED<br />LED1_DDR |= LED1;LED2_DDR |= LED2;<br /> //wyłączamy diody<br />LED1_OFF;<br />LED2_OFF;<br /><br />timery_init();<br />    sei(); // globalne zezwolenie na przerwania<br /><br />    while (1);<br />    {<br />        // pracuje TIMER1<br />    }<br />}<br /><br />ISR (TIMER1_COMPA_vect)<br />{<br />    // akcja co 10 ms<br />LED1_TOG; // zmiana stanu diodu LED1<br />}<br /><br />ISR (INT0_vect)<br />{<br />    // kod gdy nadejdzie przerwanie zewnętrzne INT0, np z układu RTC u mnie<br />LED2_TOG; // zmiana stanu diodu LED2<br />}<br /><br />// inicjalizacja TIMER1 na 10 ms w trybie CTC i przerwania INT0<br />void timery_init(void)<br />{<br />// TIMER1<br />TCCR1B |= (1 &lt;&lt; WGM12); // Tryb 4, CTC ona OCR1A<br />TIMSK1 |= (1 &lt;&lt; OCIE1A); //ustawienie przerwania na &quot;compare match&quot;<br />TCCR1B |= (1 &lt;&lt; CS12) | (1 &lt;&lt; CS10); // preskaler na 1024<br />OCR1A = 108; // podział na 108 (w rejestrze porównania) - 10 ms<br /><br />// INT0<br />DDRD &amp;= ~(1 &lt;&lt; DDD2); // PD2 (PCINT0 pin) jako wejście<br />PORTD |= (1 &lt;&lt; PORTD2); // // włącz na tej lini rezystor podciągający (stan wysoki)<br />EICRA |= (1 &lt;&lt; ISC00);    // INT0 przełączane zmianą stanu logicznego<br />EIMSK |= (1 &lt;&lt; INT0);     // Włączenie przerwania INT0<br />}<br /><br />[/syntax]<br />z karuzelą nic nie miga i jest mi niedobrze  <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /> <br />[syntax=c]<br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br /><br />#define LED1 (1&lt;&lt;PC3)// dioda LED1 na pinie PC3<br />#define LED1_ON PORTC &amp;= ~LED1<br />#define LED1_OFF PORTC |= LED1<br />#define LED1_TOG PORTC ^= LED1<br />#define LED1_DDR DDRC<br /><br />#define LED2 (1&lt;&lt;PC2)// dioda LED2 na pinie PC2<br />#define LED2_ON PORTC &amp;= ~LED2<br />#define LED2_OFF PORTC |= LED2<br />#define LED2_TOG PORTC ^= LED2<br />#define LED2_DDR DDRC<br /><br />#define F_CPU 8000000UL  // 8 MHz<br /><br />//******************************* deklaracje funkcji<br /><br />void timery_init(void);<br /><br />//******************************* definicje zmiennych globalnych i typów<br /><br />volatile uint8_t int0_flag=1;// flaga zmieniana w przerwaniu i sprawdzana w pętli głównej<br />volatile uint16_t Timer1, Timer2, Timer3, Timer4;/* timery programowe 100Hz */<br /><br />int main(void)<br />{<br />// ustalamy kierunki pinów diod LED<br />LED1_DDR |= LED1;LED2_DDR |= LED2;<br /> //wyłączamy diody<br />LED1_OFF;<br />LED2_OFF;<br /><br />timery_init();<br />    sei(); // globalne zezwolenie na przerwania<br /><br />    while (1);<br />    {<br />        // pracuje TIMER1<br />if(!Timer2) {<br />Timer2=25;<br />LED1_TOG;<br />}<br /><br />// ZDARZENIE Z UKŁADU RTC<br />if ( int0_flag )<br />{<br />LED2_TOG;<br />int0_flag=0;<br />}<br />    }<br />}<br /><br />ISR (TIMER1_COMPA_vect)<br />{<br />uint16_t n;<br /><br />n = Timer1;/* 100Hz Timer1 */<br />if (n) Timer1 = --n;<br />n = Timer2;/* 100Hz Timer2 */<br />if (n) Timer2 = --n;<br />n = Timer3;/* 100Hz Timer3 */<br />if (n) Timer3 = --n;<br />n = Timer4;/* 100Hz Timer4 */<br />if (n) Timer4 = --n;<br />}<br /><br />ISR (INT0_vect)<br />{<br />    // kod gdy nadejdzie przerwanie zewnętrzne INT0 (z układu RTC u mnie)<br />int0_flag = 1;<br />}<br /><br />// inicjalizacja TIMER1 na 10 ms w trybie CTC i przerwania INT0<br />void timery_init(void)<br />{<br />// TIMER1<br />TCCR1B |= (1 &lt;&lt; WGM12); // Tryb 4, CTC ona OCR1A<br />TIMSK1 |= (1 &lt;&lt; OCIE1A); //ustawienie przerwania na &quot;compare match&quot;<br />TCCR1B |= (1 &lt;&lt; CS12) | (1 &lt;&lt; CS10); // preskaler na 1024<br />OCR1A = 108; // podział na 108 (w rejestrze porównania) - 10 ms<br /><br />// INT0<br />DDRD &amp;= ~(1 &lt;&lt; DDD2); // PD2 (PCINT0 pin) jako wejście<br />PORTD |= (1 &lt;&lt; PORTD2); // // włącz na tej lini rezystor podciągający (stan wysoki)<br />EICRA |= (1 &lt;&lt; ISC00);    // INT0 przełączane zmianą stanu logicznego<br />EIMSK |= (1 &lt;&lt; INT0);     // Włączenie przerwania INT0<br />}<br /><br />[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=380">wireless</a> — 4 lis 2012, o 12:54</p><hr />
]]></content>
</entry>
</feed>