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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-06-02T07:55:13+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=3240&amp;mode</id>
<entry>
<author><name><![CDATA[Jeżyk-1]]></name></author>
<updated>2013-06-02T07:55:13+01:00</updated>
<published>2013-06-02T07:55:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3240&amp;p=38334#p38334</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3240&amp;p=38334#p38334"/>
<title type="html"><![CDATA[Re: Wybudzanie atmegi ze snu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3240&amp;p=38334#p38334"><![CDATA[
Ja mimo wszystko i tak skonfigurowałem go do trybu power-save bo mi zegar nie działał w tym trybie P.D. <br />Tylko że w moim przypadku z power-down nie wybudzę go bez ustawienie bitu ISC2 w rejestrze MCUCSR, Gdy jest ustawiony to działa tylko jak pisałem wcześniej zegarek się zatrzymuje w tym trybie. A w Pover-save rzeczywiście nie istotne jest czy go ustawię czy nie działa dla obu konfiguracji <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=493">Jeżyk-1</a> — 2 cze 2013, o 07:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-06-01T22:22:38+01:00</updated>
<published>2013-06-01T22:22:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3240&amp;p=38320#p38320</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3240&amp;p=38320#p38320"/>
<title type="html"><![CDATA[Re: Wybudzanie atmegi ze snu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3240&amp;p=38320#p38320"><![CDATA[
<div class="quotetitle">Jeżyk-1 napisał(a):</div><div class="quotecontent"><br />[syntax=c]// ustawienie trybu POWER-DOWN<br />        MCUCR |= ((1&lt;&lt;SM0)|(1&lt;&lt;SM1));[/syntax]<br /><br />A jakiego procesora używasz ? Bo u mnie taka konfiguracja jest dla trybu power save?<br /></div><br /><br />ok no wiadomo to ustaw po swojemu dla swojego procka - ja mam ATmega32 pod ręką (jak zwykle najczęściej)<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 2 minutach ]</span></strong><br /><br />ale żeby się nie bawić w pojedyncze ustawianie bitów lepiej korzystać z makr zdefiniowanych w sleep.h czyli np<br /><br />set_sleep_mode(SLEEP_MODE_PWR_DOWN);<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 1 cze 2013, o 22:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jeżyk-1]]></name></author>
<updated>2013-06-01T21:38:27+01:00</updated>
<published>2013-06-01T21:38:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3240&amp;p=38310#p38310</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3240&amp;p=38310#p38310"/>
<title type="html"><![CDATA[Re: Wybudzanie atmegi ze snu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3240&amp;p=38310#p38310"><![CDATA[
[syntax=c]// ustawienie trybu POWER-DOWN<br />        MCUCR |= ((1&lt;&lt;SM0)|(1&lt;&lt;SM1));[/syntax]<br /><br />A jakiego procesora używasz ? Bo u mnie taka konfiguracja jest dla trybu power save?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=493">Jeżyk-1</a> — 1 cze 2013, o 21:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-06-01T21:17:45+01:00</updated>
<published>2013-06-01T21:17:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3240&amp;p=38304#p38304</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3240&amp;p=38304#p38304"/>
<title type="html"><![CDATA[Re: Wybudzanie atmegi ze snu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3240&amp;p=38304#p38304"><![CDATA[
taki prosty kod działa, nie trzeba nawet zmieniać domyślnego stanu zbocza INT2<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/sleep.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#define LED1 (1&lt;&lt;PA7)<br /><br />// timery programowe<br />volatile uint16_t Timer1;<br /><br />int main(void) {<br /><br />PORTA |= LED1;<br /><br />// ustawienie trybu POWER-DOWN<br />MCUCR |= ((1&lt;&lt;SM0)|(1&lt;&lt;SM1));<br /><br />// ustawienie pinu PORTD.2 (INT0) jako wejście<br />DDRB &amp;= ~(1&lt;&lt;PB2);<br />// podciągnięcie do 1<br />PORTB |= (1&lt;&lt;PB2);<br />// zezwolenie na przerwania INT0<br />GICR |= (1&lt;&lt;INT2);<br /><br /><br />/* Timer2 – konfigurcajca silnika timerów programowych */<br />TCCR2 |= (1&lt;&lt;WGM21);// tryb pracy CTC<br />TCCR2 |= (1&lt;&lt;CS22)|(1&lt;&lt;CS21)|(1&lt;&lt;CS20);// preskaler = 1024<br />OCR2 = 78;// przerwanie porównania co 10ms (100Hz)<br />TIMSK = (1&lt;&lt;OCIE2);// Odblokowanie przerwania CompareMatch<br /><br />sei();<br /><br />while(1) {<br /><br />if( !Timer1 ) {<br />for( uint8_t i = 0; i&lt;10; i++ ) {<br />PORTA ^= (1&lt;&lt;PA7);<br />_delay_ms(50);<br />}<br /><br />PORTA &amp;= ~(1&lt;&lt;PA7);<br />sleep_mode();<br /><br />Timer1=5;<br />}<br /><br />}<br />}<br /><br /><br /><br />//*** przerwanie Timer2 CompareM<br />ISR(TIMER2_COMP_vect) {<br /><br />uint16_t n;<br /><br />n = Timer1;/* 100Hz Timer1 */<br />if (n) Timer1 = --n;<br /><br />}<br /><br /><br />ISR(INT2_vect) {<br /><br />}[/syntax]<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 1 minucie ]</span></strong><br /><br />oczywiście jak już usypiasz procka to warto wyłączyć komparator analogowy żeby nie podżerał prądu <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />[syntax=c]//// wyłączamy komparator analogowy bo domyślnie jest włączony po restarcie<br />//ACSR |= (1&lt;&lt;ACD);[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 1 cze 2013, o 21:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jeżyk-1]]></name></author>
<updated>2013-06-01T21:12:02+01:00</updated>
<published>2013-06-01T21:12:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3240&amp;p=38302#p38302</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3240&amp;p=38302#p38302"/>
<title type="html"><![CDATA[Re: Wybudzanie atmegi ze snu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3240&amp;p=38302#p38302"><![CDATA[
Doczytałem w nocie na stronie 69 odnoście reakcji na zboczeprzerwanie. I domyślnie jest reakcja na zboczę opadające. Więc zmieniłem na zbocze narastające :<br />[syntax=c]MCUCSR |= (1&lt;&lt;ISC2);[/syntax]<br /><br />I to chyba wystarczyło bo zadziałało <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=493">Jeżyk-1</a> — 1 cze 2013, o 21:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2013-06-01T21:03:23+01:00</updated>
<published>2013-06-01T21:03:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3240&amp;p=38301#p38301</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3240&amp;p=38301#p38301"/>
<title type="html"><![CDATA[Re: Wybudzanie atmegi ze snu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3240&amp;p=38301#p38301"><![CDATA[
<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />W układzie nie mam możliwości w tej chwili podłączyć diody LED spróbuję mrugnąć podświetleniem LCD, efekt powinien być ten sam?<br /></div><br />Druga opcja testu to znaczne uproszczenie pętli głównej. Umieść tam tylko mignięcie i uśpienie. Po każdym wybudzeniu będzie od razu widać.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 1 cze 2013, o 21:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-06-01T20:49:01+01:00</updated>
<published>2013-06-01T20:49:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3240&amp;p=38295#p38295</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3240&amp;p=38295#p38295"/>
<title type="html"><![CDATA[Re: Wybudzanie atmegi ze snu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3240&amp;p=38295#p38295"><![CDATA[
<div class="quotetitle">Krauser napisał(a):</div><div class="quotecontent"><br />Nie zgodzę się z Mirkiem. INT2 jest w stanie wybudzić procesor z PowerDown<br /></div><br /><br />No i dobrze się kolega ze mną nie zgodzi .... ja wprawdzie zawsze używałem INT0 lub INT1 mają na uwadze możliwość wybudzania poziomem niskim (a przecież INT2) nie ma takiej możliwości .... i być może dlatego nawet nie zerknąłem do noty PDF a tam jest jak BYK napisane pod tabelką, że:<br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />3. Only INT2 or level interrupt INT1 and INT0.<br /></div><br /><br />aż sobie to zaraz przetestuję i dzięki Krauser za tą uwagę.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 1 cze 2013, o 20:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jeżyk-1]]></name></author>
<updated>2013-06-01T20:42:56+01:00</updated>
<published>2013-06-01T20:42:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3240&amp;p=38293#p38293</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3240&amp;p=38293#p38293"/>
<title type="html"><![CDATA[Re: Wybudzanie atmegi ze snu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3240&amp;p=38293#p38293"><![CDATA[
Opierałem się na programie z projektu pilota na podczerwień. <br />Zaglądałem do noty katalogowej na stronie 33 jest opis trybu uśpienia dla atmegi16. <br />Taka jest jego treść:<br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />When the SM2..0 bits are written to 010, the SLEEP instruction makes the MCU enter Powerdown<br />mode. In this mode, the External Oscillator is stopped, while the External interrupts, the<br />Two-wire Serial Interface address watch, and the Watchdog continue operating (if enabled).<br />Only an External Reset, a Watchdog Reset, a Brown-out Reset, a Two-wire Serial Interface<br />address match interrupt, an External level interrupt on INT0 or INT1, or an External interrupt on<br />INT2 can wake up the MCU. This sleep mode basically halts all generated clocks, allowing operation<br />of asynchronous modules only.<br />Note that if a level triggered interrupt is used for wake-up from Power-down mode, the changed<br />level must be held for some time to wake up the MCU. Refer to “External Interrupts” on page 68<br />for details.<br />When waking up from Power-down mode, there is a delay from the wake-up condition occurs<br />until the wake-up becomes effective. This allows the clock to restart and become stable after<br />having been stopped. The wake-up period is defined by the same CKSEL Fuses that define the<br />reset time-out period, as described in “Clock Sources” on page 25.<br /></div><br /><br />I tu nie widzę że wybudzanie jest poziomem niskim. Jedynie INT0 i INT1 zewnętrznym poziomem przerwania (co do końca nie wiem o co tu chodzi) lub zewnętrznym przerwaniem INT2. <br /><br /><div class="quotetitle">Krauser napisał(a):</div><div class="quotecontent"><br />Nie zgodzę się z Mirkiem. INT2 jest w stanie wybudzić procesor z PowerDown. A co do programu to w funkcji obsługi przerwania kasowanie flagi nie jest potrzebne, bo w momencie wywołania procedury obsługi przerwania flaga jest sprzętowo zerowana. Proponuje za to wstawić tam tymczasowo mignięcie LEDem.<br /></div><br /><br />Jeżeli jest taka możliwość to gdzie zrobiłem błąd że nie wybudza mi?<br />W układzie nie mam możliwości w tej chwili podłączyć diody LED spróbuję mrugnąć podświetleniem LCD, efekt powinien być ten sam?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=493">Jeżyk-1</a> — 1 cze 2013, o 20:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2013-06-01T20:12:38+01:00</updated>
<published>2013-06-01T20:12:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3240&amp;p=38291#p38291</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3240&amp;p=38291#p38291"/>
<title type="html"><![CDATA[Re: Wybudzanie atmegi ze snu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3240&amp;p=38291#p38291"><![CDATA[
Nie zgodzę się z Mirkiem. INT2 jest w stanie wybudzić procesor z PowerDown. A co do programu to w funkcji obsługi przerwania kasowanie flagi nie jest potrzebne, bo w momencie wywołania procedury obsługi przerwania flaga jest sprzętowo zerowana. Proponuje za to wstawić tam tymczasowo mignięcie LEDem.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 1 cze 2013, o 20:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-06-01T15:11:48+01:00</updated>
<published>2013-06-01T15:11:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3240&amp;p=38266#p38266</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3240&amp;p=38266#p38266"/>
<title type="html"><![CDATA[Re: Wybudzanie atmegi ze snu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3240&amp;p=38266#p38266"><![CDATA[
<div class="quotetitle">Jeżyk-1 napisał(a):</div><div class="quotecontent"><br />opierałem się na kodzie z programu<br /></div><br /><br />no no po takim zdaniu wszyscy do okoła radośnie wiedzą na jakim programie opierałeś swoje doświadczenia <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> nie obrażaj się - ale to już jest szczyt skrótowego pisania na forum <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Druga sprawa, nie opieraj się na jakichś tam (nie wiemy jakich nawet programach) tylko na nocie PDF procesora ... a tam jest WYRAŹNIE jak BYK napisane że wybudzanie z najgłębszego uśpienia zapewnia tylko i wyłącznie przerwanie ustawione do sterowania POZIOMEM (niskim zresztą) .... tymczasem zajrzyj w tą samą notę PDF i sprawdź czy INT2 daje ci taką możliwość.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 1 cze 2013, o 15:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jeżyk-1]]></name></author>
<updated>2013-06-01T13:02:30+01:00</updated>
<published>2013-06-01T13:02:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3240&amp;p=38244#p38244</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3240&amp;p=38244#p38244"/>
<title type="html"><![CDATA[Wybudzanie atmegi ze snu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3240&amp;p=38244#p38244"><![CDATA[
Witam. Próbuję zrobić usypianie i wybudzanie atmega16.<br />Usypianie wygląda na to że działa ale wybudzanie nie bardzo. opierałem się na kodzie z programu ale nie bardzo wiem jak się za te wybudzanie zabrać. Wydaje mi się że przerwanie wybudza atmege ale się tak nie dzieje. Do INT2 mam podłączone bezpośrednio VCC.<br /><br />Taki krótki programik mam w tej chwili:<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/sleep.h&gt;<br /><br />#include &quot;LCD/lcd44780.h&quot;<br /><br />int main(void)<br />{<br />lcd_init();<br /><br />//ustawienia trybu POWER-DOWN<br />MCUCR |= (1&lt;&lt;SM1);<br />//zezwolenie na przerwanie INT2<br />GICR |= (1&lt;&lt;INT2);<br />//skasowanie flagi wystapienia przerwania INT2<br />GIFR |= (1&lt;&lt;INTF2);<br />//globalne przerwanie<br />sei();<br />//podswietlenie LCD<br />DDRC |=(1&lt;&lt;PC1);<br />PORTC |= (1&lt;&lt;PC2);<br />//wykrywanie braku zasilania<br />DDRB &amp;= ~(1&lt;&lt;PB2);<br />PORTB &amp;= ~(1&lt;&lt;PB2);<br /><br />while(1){<br /><br />if (!(PINB &amp; (1&lt;&lt;PB2))){<br />lcd_cls();<br />PORTC &amp;= ~(1&lt;&lt;PC1);<br />sleep_mode();<br />}<br />else{<br />PORTC |= (1&lt;&lt;PC1);<br />}<br /><br />//--------------<br />if (!(PINB &amp; (1&lt;&lt;PB2))){<br />static uint32_t x=0;<br />x--;<br />_delay_ms(400);<br />lcd_locate(1,10);<br />lcd_int(x);<br />lcd_str(&quot;     &quot;);<br />}<br />else{<br />static uint8_t y=0;<br />y++;<br />_delay_ms(800);<br />lcd_locate(1,10);<br />lcd_int(y);<br />lcd_str(&quot;     &quot;);<br />}<br />}<br /><br />}<br />ISR(INT2_vect){<br />GIFR |= (1&lt;&lt; INTF2);<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=493">Jeżyk-1</a> — 1 cze 2013, o 13:02</p><hr />
]]></content>
</entry>
</feed>