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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-04-27T22:33:31+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=6902&amp;mode</id>
<entry>
<author><name><![CDATA[sq8dsr]]></name></author>
<updated>2014-04-27T22:33:31+01:00</updated>
<published>2014-04-27T22:33:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6902&amp;p=79480#p79480</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6902&amp;p=79480#p79480"/>
<title type="html"><![CDATA[Re: Ściemnianie diody LED poprzez przerwanie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6902&amp;p=79480#p79480"><![CDATA[
Dioda troszkę świeci bo taka jest właściwość timera przy zerowym rejestrze compare.<br />Wynika to z tego, że podczas porównania pojawia się taka szpilka pojedyncza.<br /><br />Dlatego można zrobić tzw. inverted mode. Wtedy ona też się pojawi, ale będzie to na pełnym wypełnieniu.<br />Nie wiem jak teraz masz podłączoną diodę. Czy katodą czy anodą do pinu MCU. Ale zrób tak:<br /><br />[syntax=c]TCCR1A |= (1&lt;&lt;COM1A1); //tak masz teraz <br /><br />TCCR1A |= (1&lt;&lt;COM1A1)|(1&lt;&lt;COM1A0); //a tak zrób[/syntax]<br /><br />To czywiście jest dla wyjście OC1A<br />Po tym możesz mieć odwrotność tzn przy 255 będzie zgaszona a przy 0 maksymalna jasność.<br />Nie wiem jak masz podłączone te diody. Ale poprobuj.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1589">sq8dsr</a> — 27 kwi 2014, o 22:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Lyserg]]></name></author>
<updated>2014-04-27T22:21:06+01:00</updated>
<published>2014-04-27T22:21:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6902&amp;p=79478#p79478</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6902&amp;p=79478#p79478"/>
<title type="html"><![CDATA[Re: Ściemnianie diody LED poprzez przerwanie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6902&amp;p=79478#p79478"><![CDATA[
<div class="quotetitle">jacekk232 napisał(a):</div><div class="quotecontent"><br /><div class="quotetitle">Lyserg napisał(a):</div><div class="quotecontent"> I jeszcze jeden mankament przy każdym uruchomieniu programu dioda powinna być zgaszona a wygląda tak jakby wykonało się pojedyncze przerwanie.<br /></div><br />Spróbuj skasować flagę przerwania INT0 przed poleceniem sei()<br />[syntax=c]GIFR |= (1&lt;&lt;INTF0);     //skasowanie flagi przerwania INT0<br />sei();[/syntax]</div><br /><br />Spróbuje jak wrócę do domu.<br /><br /><div class="quotetitle">sq8dsr napisał(a):</div><div class="quotecontent"><br /><div class="quotetitle">Lyserg napisał(a):</div><div class="quotecontent">Zmieniłem,żeby przerwania występowały podczas zmiany stanu ale to niestety nic nie dało...<br /></div><br />Co masz na myśli ?<br /><br /><br /><div class="quotetitle">Lyserg napisał(a):</div><div class="quotecontent"><br />I jeszcze jeden mankament przy każdym uruchomieniu programu dioda powinna być zgaszona a wygląda tak jakby wykonało się pojedyncze przerwanie.<br /></div><br /><br />Czyli, że troszkę się świeci ?</div><br /><br />1.Po prostu myślałem, że jak zmienię wywoływanie przerywań ze zbocza rosnącego na jakąkolwiek zmianę stanu logicznego to uzyskam rozjaśnianie się diody w czasie gdy przytrzymam przycisk.<br /><br />2.Tak dioda odrobinę się świeci,ale nie wiem czy to jest spowodowane.<br /><br /><div class="quotetitle">kaka0204 napisał(a):</div><div class="quotecontent"><br /><div class="quotetitle">Lyserg napisał(a):</div><div class="quotecontent">Wszystko już śmiga mam jeszcze jedno pytanie, bo aktualnie żeby dioda była bardziej jasna muszę ciągle naciskać przycisk, a chciałbym żeby się ciągle rozświetlała gdy przytrzymam przycisk.<br /></div><br /><br /><br />To nie zaprzęgaj do tego przerwania, są prostsze metody. Ja bym to zrobił tak:<br /><br />[syntax=c]int main(void)<br />{<br />          DDRD &amp;= ~(1&lt;&lt;PORTD2);<br />          PORTD |= (1&lt;&lt;PORTD2);<br /><br />          while(1)<br />                 {<br />                          if(PIND &amp; (1&lt;&lt;PD2))     OCR1B--;<br />                 }<br />}[/syntax]<br /><br />Wystarczy, że dodasz opóźnienie programowe i będzie działać tak jak chcesz.<br />Pozdrawiam.</div><br /><br />Niby prostsze,ale przy większym programie się nie sprawdzi.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4035">Lyserg</a> — 27 kwi 2014, o 22:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kaka0204]]></name></author>
<updated>2014-04-27T21:00:49+01:00</updated>
<published>2014-04-27T21:00:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6902&amp;p=79470#p79470</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6902&amp;p=79470#p79470"/>
<title type="html"><![CDATA[Re: Ściemnianie diody LED poprzez przerwanie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6902&amp;p=79470#p79470"><![CDATA[
<div class="quotetitle">Lyserg napisał(a):</div><div class="quotecontent"><br />Wszystko już śmiga mam jeszcze jedno pytanie, bo aktualnie żeby dioda była bardziej jasna muszę ciągle naciskać przycisk, a chciałbym żeby się ciągle rozświetlała gdy przytrzymam przycisk.<br /></div><br /><br />To nie zaprzęgaj do tego przerwania, są prostsze metody. Ja bym to zrobił tak:<br /><br />[syntax=c]int main(void)<br />{<br />          DDRD &amp;= ~(1&lt;&lt;PORTD2);<br />          PORTD |= (1&lt;&lt;PORTD2);<br /><br />          while(1)<br />                 {<br />                          if(PIND &amp; (1&lt;&lt;PD2))     OCR1B--;<br />                 }<br />}[/syntax]<br /><br />Wystarczy, że dodasz opóźnienie programowe i będzie działać tak jak chcesz.<br />Pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=889">kaka0204</a> — 27 kwi 2014, o 21:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sq8dsr]]></name></author>
<updated>2014-04-27T20:06:17+01:00</updated>
<published>2014-04-27T20:06:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6902&amp;p=79467#p79467</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6902&amp;p=79467#p79467"/>
<title type="html"><![CDATA[Re: Ściemnianie diody LED poprzez przerwanie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6902&amp;p=79467#p79467"><![CDATA[
<div class="quotetitle">Lyserg napisał(a):</div><div class="quotecontent"><br />Zmieniłem,żeby przerwania występowały podczas zmiany stanu ale to niestety nic nie dało...<br /></div><br />Co masz na myśli ?<br /><br /><br /><div class="quotetitle">Lyserg napisał(a):</div><div class="quotecontent"><br />I jeszcze jeden mankament przy każdym uruchomieniu programu dioda powinna być zgaszona a wygląda tak jakby wykonało się pojedyncze przerwanie.<br /></div><br /><br />Czyli, że troszkę się świeci ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1589">sq8dsr</a> — 27 kwi 2014, o 20:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jacekk232]]></name></author>
<updated>2014-04-27T18:49:43+01:00</updated>
<published>2014-04-27T18:49:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6902&amp;p=79459#p79459</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6902&amp;p=79459#p79459"/>
<title type="html"><![CDATA[Re: Ściemnianie diody LED poprzez przerwanie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6902&amp;p=79459#p79459"><![CDATA[
<div class="quotetitle">Lyserg napisał(a):</div><div class="quotecontent"><br />I jeszcze jeden mankament przy każdym uruchomieniu programu dioda powinna być zgaszona a wygląda tak jakby wykonało się pojedyncze przerwanie.<br /></div><br />Spróbuj skasować flagę przerwania INT0 przed poleceniem sei()<br />[syntax=c]GIFR |= (1&lt;&lt;INTF0);     //skasowanie flagi przerwania INT0<br />sei();[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=204">jacekk232</a> — 27 kwi 2014, o 18:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Lyserg]]></name></author>
<updated>2014-04-27T18:35:54+01:00</updated>
<published>2014-04-27T18:35:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6902&amp;p=79456#p79456</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6902&amp;p=79456#p79456"/>
<title type="html"><![CDATA[Re: Ściemnianie diody LED poprzez przerwanie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6902&amp;p=79456#p79456"><![CDATA[
Wszystko już śmiga mam jeszcze jedno pytanie, bo aktualnie żeby dioda była bardziej jasna muszę ciągle naciskać przycisk, a chciałbym żeby się ciągle rozświetlała gdy przytrzymam przycisk. Zmieniłem,żeby przerwania występowały podczas zmiany stanu ale to niestety nic nie dało... Dorzucam aktualny kod:<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 /><br /><br />ISR ( INT0_vect)<br />{<br />if(OCR1B!=0)<br />OCR1B--;<br />}<br /><br /><br />int main(void)<br />{<br /><br />MCUCR |= (1&lt;&lt;ISC00);<br />GICR  |= (1&lt;&lt;INT0);<br /><br /><br />DDRD |= (1&lt;&lt;PD4) | (1&lt;&lt;PD5); //wyjscia PWM//<br /><br />DDRD &amp;= ~(1&lt;&lt;PORTD2);<br />PORTD |= (1&lt;&lt;PORTD2);<br /><br />TCCR1A |= (1&lt;&lt;WGM10);<br />TCCR1B |= (1&lt;&lt;WGM12);<br />TCCR1A |= (1&lt;&lt;COM1A1);<br />TCCR1A |= (1&lt;&lt;COM1B1);<br />TCCR1B |= (1&lt;&lt;CS10) | (1&lt;&lt;CS11);<br /><br />OCR1A=255;<br />OCR1B=255;<br /><br />sei(); //wlaczenie przerywan//<br /><br />while(1)<br />{<br />}<br /><br />}[/syntax]<br /><br />EDIT: I jeszcze jeden mankament przy każdym uruchomieniu programu dioda powinna być zgaszona a wygląda tak jakby wykonało się pojedyncze przerwanie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4035">Lyserg</a> — 27 kwi 2014, o 18:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[karolek]]></name></author>
<updated>2014-04-27T19:45:55+01:00</updated>
<published>2014-04-27T18:27:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6902&amp;p=79454#p79454</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6902&amp;p=79454#p79454"/>
<title type="html"><![CDATA[Re: Ściemnianie diody LED poprzez przerwanie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6902&amp;p=79454#p79454"><![CDATA[
<div class="quotetitle">janeczqu napisał(a):</div><div class="quotecontent"><br />a inni dla odmiany nie rozumieją osób które nie używają wielkiej litery, znaków interpunkcyjnych i jeszcze w dodatku piszą posty z błędami...<br /></div><br />coś sugerujesz  <img src="https://forum.atnel.pl/images/smilies/icon_question.gif" alt=":?:" title="Znak zapytania" /> przecież to nie elektroda no nie ? ale widzę że stare nawyki wracają  szkoda ! a miało być tak fajnie bez &quot;wbijania szpilek&quot;<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2535">karolek</a> — 27 kwi 2014, o 18:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[janeczqu]]></name></author>
<updated>2014-04-27T15:53:10+01:00</updated>
<published>2014-04-27T15:53:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6902&amp;p=79443#p79443</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6902&amp;p=79443#p79443"/>
<title type="html"><![CDATA[Re: Ściemnianie diody LED poprzez przerwanie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6902&amp;p=79443#p79443"><![CDATA[
<div class="quotetitle">karolek napisał(a):</div><div class="quotecontent"><br />nie rozumiem reakcji osób które nad używają wykrzyknika zamiast napisac ze to i tamto .. .. nie powinno sie robic<br /></div> a inni dla odmiany nie rozumieją osób które nie używają wielkiej litery, znaków interpunkcyjnych i jeszcze w dodatku piszą posty z błędami...<br /><br />Lyserg: jak podajesz już kod to dopisz też jaki to procesor, jaki kwarc, łatwiej będzie znaleźć babola <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=823">janeczqu</a> — 27 kwi 2014, o 15:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sq8dsr]]></name></author>
<updated>2014-04-27T15:16:51+01:00</updated>
<published>2014-04-27T15:16:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6902&amp;p=79436#p79436</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6902&amp;p=79436#p79436"/>
<title type="html"><![CDATA[Re: Ściemnianie diody LED poprzez przerwanie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6902&amp;p=79436#p79436"><![CDATA[
Co to za procesor?<br /><br />Z tego co pamiętam z noty. To Timer masz ustawiony jako 8 bitowy.<br />Przypisujesz mu wartość 256 która przekracza zakres typu uint8_t więc natychmiast przekręca się na zero. <br />W przerwanie wchodzisz z wartościa OCR1B równą zero<br />Odejmujesz od niej 1 i robi się 255.<br /><br />Jako że masz zapewne inverted mode. To przy zero jest pełne wypełnienie a przy 255 pełne wygaszenie.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 4 minutach ]</span></strong><br /><br />Przy czym zapis<br /><br />[syntax=c]OCR1B=i-1;[/syntax]<br />Też nie jest zbyt dobry<br />Nie zmieniasz wartości zmiennej i za każdym wejściem w przerwanie. Tylko przypisujesz rejestrowi wartość i pomniejszoną o jeden.<br /><br />Wystarczy OCR1B--;<br />Nie potrzebujesz zmiennej nawet.<br />Rejest z założenia jest volatile <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=1589">sq8dsr</a> — 27 kwi 2014, o 15:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[karolek]]></name></author>
<updated>2014-04-27T15:10:09+01:00</updated>
<published>2014-04-27T15:10:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6902&amp;p=79435#p79435</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6902&amp;p=79435#p79435"/>
<title type="html"><![CDATA[Re: Ściemnianie diody LED poprzez przerwanie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6902&amp;p=79435#p79435"><![CDATA[
jasne ze dla testu można a nawet ,nie raz trzeba przecież mikro. nogi od tego nie odpadną  , moze zmniejszenie czestotliwosci pwm cos pomoze ?<br /><br /> <br />nie rozumiem reakcji osób które nad używają wykrzyknika zamiast napisac ze to i tamto .. .. nie powinno sie robic<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2535">karolek</a> — 27 kwi 2014, o 15:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Lyserg]]></name></author>
<updated>2014-04-27T14:56:18+01:00</updated>
<published>2014-04-27T14:56:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6902&amp;p=79433#p79433</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6902&amp;p=79433#p79433"/>
<title type="html"><![CDATA[Re: Ściemnianie diody LED poprzez przerwanie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6902&amp;p=79433#p79433"><![CDATA[
Szczerze to dałem go jak już byłem zdesperowany, bo stwierdziłem, że przerwanie tak szybko wykonuje ściemnianie,że aż tego nie widać,a że nic nie ma w pętli głównej to chyba mogłem się na to szarpnąć dla testu  <img src="https://forum.atnel.pl/images/smilies/icon_question.gif" alt=":?:" title="Znak zapytania" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4035">Lyserg</a> — 27 kwi 2014, o 14:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Lyserg]]></name></author>
<updated>2014-04-27T14:49:15+01:00</updated>
<published>2014-04-27T14:49:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6902&amp;p=79430#p79430</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6902&amp;p=79430#p79430"/>
<title type="html"><![CDATA[Ściemnianie diody LED poprzez przerwanie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6902&amp;p=79430#p79430"><![CDATA[
Czy jest mi ktoś w stanie powiedzieć dlaczego zamiast widzieć płynne ściemnianie po naciśnięciu przycisku widzę nagłe zgaszenie diody ?<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 /><br /><br /><br /><br />volatile int i=256;<br /><br />ISR ( INT0_vect)<br />{<br />OCR1B=i-1;<br />_delay_ms(10);<br />}<br /><br /><br />int main(void)<br />{<br /><br /><br /><br />MCUCR |= (1&lt;&lt;ISC01);<br />GICR  |= (1&lt;&lt;INT0);<br /><br /><br />DDRD |= (1&lt;&lt;PD4) | (1&lt;&lt;PD5); //wyjscia PWM//<br /><br /><br />DDRD &amp;= ~(1&lt;&lt;PORTD2);<br />PORTD |= (1&lt;&lt;PORTD2);<br /><br />TCCR1A |= (1&lt;&lt;WGM10);<br />TCCR1B |= (1&lt;&lt;WGM12);<br />TCCR1A |= (1&lt;&lt;COM1A1);<br />TCCR1A |= (1&lt;&lt;COM1B1);<br />TCCR1B |= (1&lt;&lt;CS10);<br /><br />OCR1A=0;<br />OCR1B=0;<br /><br />sei(); //wlaczenie przerywan//<br /><br />while(1)<br />{<br /><br />}<br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4035">Lyserg</a> — 27 kwi 2014, o 14:49</p><hr />
]]></content>
</entry>
</feed>