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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-06-09T12:18:00+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=7359&amp;mode</id>
<entry>
<author><name><![CDATA[RafPe]]></name></author>
<updated>2014-06-09T12:18:00+01:00</updated>
<published>2014-06-09T12:18:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7359&amp;p=83812#p83812</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7359&amp;p=83812#p83812"/>
<title type="html"><![CDATA[Re: Problem z Timer0 na Atmega328P@16MhZ]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7359&amp;p=83812#p83812"><![CDATA[
@Matw : Dokladnie! Kiedy patrzalem na note i robilem notatki nie zwrocilem uwagi ze pomylilem wartosc rejestru dobierajac preskalera! <br /><br />@Mirekk36: Dokadnie ! Zmienilem i prztestowalem. Musze okulary przeczyscic <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> i sprawdzac dwa razy natepnym razem!<br /><br />Dzieki bardzo! Ruszam do podboju BB dalej <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4344">RafPe</a> — 9 cze 2014, o 12:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-06-09T12:16:56+01:00</updated>
<published>2014-06-09T12:16:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7359&amp;p=83811#p83811</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7359&amp;p=83811#p83811"/>
<title type="html"><![CDATA[Re: Problem z Timer0 na Atmega328P@16MhZ]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7359&amp;p=83811#p83811"><![CDATA[
<div class="quotetitle">matw napisał(a):</div><div class="quotecontent"><br />Prescaler błędnie ustawiony (na zewnętrzne źródło taktowania).<br /></div><br /><br />tu kolega podał ci kolejną WAŻNĄ podpowiedź <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> — 9 cze 2014, o 12:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RafPe]]></name></author>
<updated>2014-06-09T12:14:44+01:00</updated>
<published>2014-06-09T12:14:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7359&amp;p=83810#p83810</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7359&amp;p=83810#p83810"/>
<title type="html"><![CDATA[Re: Problem z Timer0 na Atmega328P@16MhZ]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7359&amp;p=83810#p83810"><![CDATA[
Witaj ,<br /><br />Rzeczywiscie zapomnialem o czyms tak banalnym - jednakze nie dziala ;( Oto poprawiony main <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 &quot;schody.h&quot;<br /><br />int main(void)<br />{<br /><br />schody_init();// Inicjalizacja systemu schodkow ;)<br /><br />schody_blink();// Blink kontrolny<br /><br />sei();// Wlaczenie globalnego zezwolenia na przerwania<br /><br />while(1)<br />{<br /><br />}<br /><br />}[/syntax]<br /><br />Dla pewnosci , ze to nie moje poczatkujace umiejetnosci programowania na szybko sciagnalem z internetu wzor i stworzylem nowy projekt o tych samych parametrach Hardware i wtedy dziala :O <br /><br />[syntax=c]int main(void)<br />{<br />    // Set the Timer Mode to CTC<br />    TCCR0A |= (1 &lt;&lt; WGM01);<br /><br />    // Set the value that you want to count to<br />    OCR0A = 0xF9;<br /><br />    TIMSK0 |= (1 &lt;&lt; OCIE0A);    //Set the ISR COMPA vect<br /><br />    sei();         //enable interrupts<br /><br /><br />    TCCR0B |= (1 &lt;&lt; CS02);<br />    // set prescaler to 256 and start the timer<br /><br /><br />    while (1)<br />    {<br />        //main loop<br />    }<br />}<br /><br /><br />ISR (TIMER0_COMPA_vect)  // timer0 overflow interrupt<br />{<br />SCHODY_PORT      =   0xFF;   // Wylaczenie wszystkich schodow<br />}[/syntax]<br /><br /><br />Wiec tak jakby nie widzial obslugi mojego przerwania ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4344">RafPe</a> — 9 cze 2014, o 12:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[matw]]></name></author>
<updated>2014-06-09T12:06:44+01:00</updated>
<published>2014-06-09T12:06:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7359&amp;p=83807#p83807</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7359&amp;p=83807#p83807"/>
<title type="html"><![CDATA[Re: Problem z Timer0 na Atmega328P@16MhZ]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7359&amp;p=83807#p83807"><![CDATA[
Prescaler błędnie ustawiony (na zewnętrzne źródło taktowania).<br />Wg. mnie powinno być: [syntax=c]TCCR0B |= (1&lt;&lt;CS00)|(1&lt;&lt;CS02);[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2394">matw</a> — 9 cze 2014, o 12:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-06-09T11:58:05+01:00</updated>
<published>2014-06-09T11:58:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7359&amp;p=83805#p83805</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7359&amp;p=83805#p83805"/>
<title type="html"><![CDATA[Re: Problem z Timer0 na Atmega328P@16MhZ]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7359&amp;p=83805#p83805"><![CDATA[
a powodem twojego problemu jest banalna rzecz <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />w main ..... nie masz pętli głównej programu - więc kompilator daje wszystkiemu w łeb bo uznaje że ma się już dalej po sei() nic nie robić <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br /><br />a tymczasem w BB masz wyraźną konstrukcję pustego main ... przypomnę<br /><br /><br />[syntax=c]int main( void ) {<br /><br />   // INICJALIZACJA .....<br /><br />   sei();     // jeśli używamy przerwań<br /><br />   //****** NAJWAŻNIEJSZE<br />   while(1) {<br />        // pętla główna programu - pusta - jeśli ma nic nie robić ;)<br />  }<br /><br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 9 cze 2014, o 11:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RafPe]]></name></author>
<updated>2014-06-09T11:34:47+01:00</updated>
<published>2014-06-09T11:34:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7359&amp;p=83803#p83803</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7359&amp;p=83803#p83803"/>
<title type="html"><![CDATA[Problem z Timer0 na Atmega328P@16MhZ]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7359&amp;p=83803#p83803"><![CDATA[
Witam Wszystkich ,<br /><br />Konsumujac BB doszedlem wlasnie do timer'ow ktore sa naprawde niezwykle interesujace. Natomiast wyglada na to , ze mam problem z ich uruchomieniem i nie moge dojsc dla czego <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> <br /><br />Hardware jaki uzywam to Atmega328P@16MhZ. <br />Port C jest calkowicie na wyjscie i podlaczone sa do niego diody LED przez rezystory (Anodami do pinow procka) <br />Filtrowanie zasilania jest <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> <br />Wszystkie VCC i GND podlaczone. <br /><br />Plik main.c wyglada tak <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 &quot;schody.h&quot;<br /><br />int main(void)<br />{<br /><br />schody_init();// Inicjalizacja systemu schodkow ;)<br />sei();// Wlaczenie globalnego zezwolenia na przerwania<br /><br />}[/syntax]<br /><br /><br />Nastepnie mam plik naglowka dla swojego projektu (zeby nie zasmieciac main <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> )<br />[syntax=c]#ifndef SCHODY_H_<br />#define SCHODY_H_<br /><br />#defineSCHODY_PORT_DIR DDRC// kierunek pinow<br />#defineSCHODY_PORTPORTC// Port<br /><br />#define SC1(1&lt;&lt;PC5)// Definicja 1 stopnia<br />#define SC2(1&lt;&lt;PC4)// Definicja 2 stopnia<br />#define SC3(1&lt;&lt;PC3)// Definicja 3 stopnia<br />#define SC4(1&lt;&lt;PC2)// Definicja 4 stopnia<br />#define SC5(1&lt;&lt;PC1)// Definicja 5 stopnia<br />#define SC6(1&lt;&lt;PC0)// Definicja 6 stopnia<br /><br />#define MAX_STEPS 6// Definicja liczby schodow<br /><br /><br />// Deklaracja funkcji udoestepnionej dla innuch modulow<br />void schody_init(void);<br /><br /><br />#endif /* SCHODY_H_ */[/syntax]<br /><br />No i teraz sam plik schody.c , ktory definiuje moj timer oraz metode przerwania<br />[syntax=c]// inicjalizacja naszych schodow<br />void schody_init(void)<br />{<br /><br />// *************************************** Ustawienia timera  **************************************<br />TCCR0B |= (1&lt;&lt;CS01)|(1&lt;&lt;CS02);  // set prescaler = 1024 ---&gt; please check proper values in PDF<br />TCCR0A |= (1&lt;&lt;WGM01); // set CTC mode ---&gt; please check proper values in PDF<br />OCR0A  = 77;  // every  &#91; 5 ms &#93;<br />TIMSK0  |= (1&lt;&lt;OCIE0A);     // enable CompareX interrupt<br />// *************************************************************************************************<br /><br /><br />// Blink wszystkich podlaczonych schodow<br /><br />SCHODY_PORT_DIR = 0xFF;// Wszystkie sa wyjsciami na tym porcie<br />SCHODY_PORT=0x00;// Wylaczenie wszystkich schodow<br /><br />for(uint8_t i=0;i&lt;3;i++)<br />{<br />_delay_ms(200);// Zaczekaj 200ms<br />SCHODY_PORT=0xFF;// Wylaczenie wszystkich schodow<br />_delay_ms(200);// Zaczekaj 200ms<br />SCHODY_PORT=0x00;// Wylaczenie wszystkich schodow<br />}<br /><br /><br />}<br /><br /><br />// Timer0 compare0 interrupt<br />ISR(TIMER0_COMPA_vect)<br />{<br />    SCHODY_PORT=0xFF;// Wylaczenie wszystkich schodow<br />}[/syntax]<br /><br /><span style="color: #FF0000">[ poprawiłem znaczniki dla kodów źródłowych - wyedytuj i sprawdź, jak syntax to nie code <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> tak na przyszłość ok? - mirekk36 ]</span><br /><br /><br />No i podczas inicjalizacji moj &quot;blink&quot; dziala. Ale niestety timer0 mi sie nie wlacza. <br /><br />Wydaje mi sie , ze ustawilem go dobrze. Korzystajac z mkAVRkalkulatora mam Atmega@16MhZ do tego preskaler na 1024 i przepelnienie na 77 czyli wychodzi 5ms.<br /><br />No ale niestety Timer0 nie odpala tego przerwania <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> <br /><br />Czy gdzies cos pominalem ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4344">RafPe</a> — 9 cze 2014, o 11:34</p><hr />
]]></content>
</entry>
</feed>