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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-01-20T14:13:27+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=58&amp;t=17378&amp;mode</id>
<entry>
<author><name><![CDATA[urchin]]></name></author>
<updated>2017-01-20T14:01:44+01:00</updated>
<published>2017-01-20T14:01:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17378&amp;p=180333#p180333</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17378&amp;p=180333#p180333"/>
<title type="html"><![CDATA[Re: TIMER Z PRESKALEREM PRZERWANIE -ZAPALAJĄCA SIĘ DIODA]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17378&amp;p=180333#p180333"><![CDATA[
zmieniłem kod timer.c tak:<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#define LED_PIN8 (1&lt;&lt;PC7)// definicja pinu do którego podłączona jest dioda<br />#define LED_TOG8 PORTC ^= LED_PIN8// makrodefinicja – zmiana stanu diody<br />#define KEY_PIN8 (0&lt;&lt;PB7)<br />void led_init(void)<br />{<br />// ustawienie TIMER0<br />TCCR0 |= (1&lt;&lt;WGM01);// tryb CTC<br />TCCR0 |= (1&lt;&lt;CS02)|(1&lt;&lt;CS00);// preskaler = 1024<br />OCR0 = 38;// dodatkowy podział przez 39 (rej. przepełnienia)<br />TIMSK |= (1&lt;&lt;OCIE0);// zezwolenie na przerwanie CompareMatch<br /><br />DDRC =0xff;<br />PORTC=0xFF;<br />}<br /><br />// ================= PROCEDURA OBSŁUGI PRZERWANIA – COMPARE MATCH<br />ISR(TIMER0_COMP_vect)<br />{<br />LED_TOG8;<br />_delay_ms(100);<br />}[/syntax]<br /><br />i zadziałało miga dioda 8.<br /><br />Opóźnienie wykonania kodu w przerwaniu nie ma sensu, zrobiłem tak by nauczyć się wykorzystywać przerwanie.<br /><br />Dzięki za pomoc.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5955">urchin</a> — 20 sty 2017, o 14:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jarecki]]></name></author>
<updated>2017-01-20T13:43:36+01:00</updated>
<published>2017-01-20T13:43:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17378&amp;p=180330#p180330</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17378&amp;p=180330#p180330"/>
<title type="html"><![CDATA[Re: TIMER Z PRESKALEREM PRZERWANIE -ZAPALAJĄCA SIĘ DIODA]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17378&amp;p=180330#p180330"><![CDATA[
po sei(); wpisz led_init(); oraz while(1){};<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 1 minucie ]</span></strong><br /><br />W procedurze obsługi przerwania zmieniaj stan diody na przeciwny<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2511">Jarecki</a> — 20 sty 2017, o 13:43</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[urchin]]></name></author>
<updated>2017-01-20T14:13:27+01:00</updated>
<published>2017-01-20T13:23:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17378&amp;p=180326#p180326</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17378&amp;p=180326#p180326"/>
<title type="html"><![CDATA[Re: TIMER Z PRESKALEREM PRZERWANIE -ZAPALAJĄCA SIĘ DIODA]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17378&amp;p=180326#p180326"><![CDATA[
Dodałem w funkcji main pliku main.c<br />[syntax=c]int main( void)<br />{<br />sei();// włączenie globalnego zezwolenia na przerwania<br />}[/syntax]<br /><br /><br />czy tych plików: main.c i timer.c nie trzeba jakoś połączyć?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5955">urchin</a> — 20 sty 2017, o 13:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jarecki]]></name></author>
<updated>2017-01-20T13:15:55+01:00</updated>
<published>2017-01-20T13:15:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17378&amp;p=180324#p180324</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17378&amp;p=180324#p180324"/>
<title type="html"><![CDATA[Re: TIMER Z PRESKALEREM PRZERWANIE -ZAPALAJĄCA SIĘ DIODA]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17378&amp;p=180324#p180324"><![CDATA[
Zapomniałeś o globalnym zezwoleniu na przerwania sei();<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2511">Jarecki</a> — 20 sty 2017, o 13:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[urchin]]></name></author>
<updated>2017-01-20T14:12:49+01:00</updated>
<published>2017-01-20T13:11:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17378&amp;p=180320#p180320</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17378&amp;p=180320#p180320"/>
<title type="html"><![CDATA[Timer z preskalerem przerwanie - zapalająca się dioda]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17378&amp;p=180320#p180320"><![CDATA[
Chciałbym nauczyć się jak używać timera z preskalerem.<br /><br /><span style="color: #FF0000">[ sorry ale tym razem poleciał warn dla kolegi szanownego - poprawiłem tytuł wątku - żeby był małymi literami i tego proszę się trzymać na przyszłość - mirekk36 ]</span><br /><br />Potrzebuję najprostrzy z możliwych przykład np.<br />Wykorzystując Timer, Preskaler  i przerwania zapalać diodę.<br /><br />Muszę wykorzystać przykładowo:<br /><br />timer.c<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br /><br /><br />void led_init(void)<br />{<br /><br /><br />// ustawienie TIMER0<br />TCCR0 |= (1&lt;&lt;WGM01);// tryb CTC<br />TCCR0 |= (1&lt;&lt;CS02)|(1&lt;&lt;CS00);// preskaler = 1024<br />OCR0 = 38;// dodatkowy podział przez 39 (rej. przepełnienia)<br />TIMSK |= (1&lt;&lt;OCIE0);// zezwolenie na przerwanie CompareMatch<br /><br /><br />}<br /><br /><br />// ================= PROCEDURA OBSŁUGI PRZERWANIA – COMPARE MATCH<br />ISR(TIMER0_COMP_vect)<br />{<br /><br /><br />}[/syntax]<br /><br />i main.c<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br /><br />#define LED_PIN8 (1&lt;&lt;PC7)// definicja pinu do którego podłączona jest dioda<br />#define LED_TOG8 PORTC ^= LED_PIN8// makrodefinicja – zmiana stanu diody<br />#define KEY_PIN8 (1&lt;&lt;PB7)<br /><br /><br />int main( void)<br />{<br /><br />sei();// włączenie globalnego zezwolenia na przerwania<br /><br /><br /><br />}[/syntax]<br /><br />Chciałbym w momencie wystąpienia przerwania zmienić stan diody.<br />Trzeba przestawić licznik przerwania tak by można zaobserwować miganie diody.<br />W momencie wystąpienia przerwania zmienić stan na pinie.<br /><br />Wiem, że to nie ma większego sensu chodzi mi tylko o zrozumienie jak muszę poprawić te kody i jak je połączyć bym mógł wykorzystywać przerwanie po odliczeniu przez timer odpowiedniej ilości czasu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5955">urchin</a> — 20 sty 2017, o 13:11</p><hr />
]]></content>
</entry>
</feed>