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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-12-21T21:05:30+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=19839&amp;mode</id>
<entry>
<author><name><![CDATA[new_old_man]]></name></author>
<updated>2017-12-21T21:05:30+01:00</updated>
<published>2017-12-21T21:05:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19839&amp;p=200924#p200924</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19839&amp;p=200924#p200924"/>
<title type="html"><![CDATA[Re: [ATtiny10] Power-down, watch-dog i... problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19839&amp;p=200924#p200924"><![CDATA[
<div class="quotetitle">Krauser napisał(a):</div><div class="quotecontent"><br />Brakuje samej instrukcji, która powoduje wejście w tryb obniżonego poboru mocy np.<br />[syntax=c]__asm__ __volatile__ ( &quot;sleep&quot; &quot;\n\t&quot; :: );[/syntax]<br />lub tak<br />[syntax=c]#include &lt;avr/sleep.h&gt;<br />//...<br />sleep_cpu();[/syntax]<br /></div><br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Bit 0 – SE: Sleep Enable The SE bit must be written to logic one to make the MCU enter the sleep mode <strong>when the SLEEP instruction is executed</strong>. To avoid the MCU entering the sleep mode unless it is the programmer’s purpose, it is recommended to write the Sleep Enable (SE) bit to one just before the execution of the SLEEP instruction and to clear it immediately after waking up.<br /></div><br />Podstawa prawna;)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10976">new_old_man</a> — 21 gru 2017, o 21:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2017-12-21T20:59:00+01:00</updated>
<published>2017-12-21T20:59:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19839&amp;p=200923#p200923</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19839&amp;p=200923#p200923"/>
<title type="html"><![CDATA[Re: [ATtiny10] Power-down, watch-dog i... problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19839&amp;p=200923#p200923"><![CDATA[
Brakuje samej instrukcji, która powoduje wejście w tryb obniżonego poboru mocy np.<br />[syntax=c]__asm__ __volatile__ ( &quot;sleep&quot; &quot;\n\t&quot; :: );[/syntax]<br />lub tak<br />[syntax=c]#include &lt;avr/sleep.h&gt;<br />//...<br />sleep_cpu();[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 21 gru 2017, o 20:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[new_old_man]]></name></author>
<updated>2017-12-21T20:13:01+01:00</updated>
<published>2017-12-21T20:13:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19839&amp;p=200921#p200921</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19839&amp;p=200921#p200921"/>
<title type="html"><![CDATA[Re: [ATtiny10] Power-down, watch-dog i... problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19839&amp;p=200921#p200921"><![CDATA[
Chyba mało wiem, w nogach śpię.<br />Byłem przekonany, że muszą być średniki, a tu proszę - mój kompilator też przepuścił. Inna sprawa czy to działa, ale tego nie mam czasu teraz sprawdzić.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 5 minutach ]</span></strong><br /><br />Hehehe, jest operator przecinek - nie wiedziałem. Przepraszam.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 32 minutach ]</span></strong><br /><br />A zrób taki najprostszy program testowy: mrugaj diodą w przerwaniu, a w głównej pętli, po opóźnieniu uśpij procesor - dowiesz się wtedy czy zasypia.<br /><br />Ponadto pamiętaj, że przez nieustawione piny też mogą płynąć prądy.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10976">new_old_man</a> — 21 gru 2017, o 20:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[piotreks-89]]></name></author>
<updated>2017-12-21T19:30:06+01:00</updated>
<published>2017-12-21T19:30:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19839&amp;p=200919#p200919</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19839&amp;p=200919#p200919"/>
<title type="html"><![CDATA[Re: [ATtiny10] Power-down, watch-dog i... problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19839&amp;p=200919#p200919"><![CDATA[
Kompilatorowi to w ogóle nie przeszkadza. W sumie zawsze tworzyłem takie bardziej rozbudowane definicje i nigdy z nimi problemów nie miałem. <br /><br />Mogę dodać, iż wcześniej miałem ręcznie wpisany kod z definicji do programu i też nie działało przejście w tryb power-down :/<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=491">piotreks-89</a> — 21 gru 2017, o 19:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[new_old_man]]></name></author>
<updated>2017-12-21T19:25:45+01:00</updated>
<published>2017-12-21T19:25:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19839&amp;p=200918#p200918</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19839&amp;p=200918#p200918"/>
<title type="html"><![CDATA[Re: [ATtiny10] Power-down, watch-dog i... problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19839&amp;p=200918#p200918"><![CDATA[
A kompilator się nie buntuje na te przecinki w definicjach?<br />Ja wolę takie bardziej skomplikowane rzeczy funkcjami załatwiać. Definicje są ryzykowne, bo wchodzą 1:1.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10976">new_old_man</a> — 21 gru 2017, o 19:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[piotreks-89]]></name></author>
<updated>2017-12-21T18:49:48+01:00</updated>
<published>2017-12-21T18:49:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19839&amp;p=200915#p200915</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19839&amp;p=200915#p200915"/>
<title type="html"><![CDATA[[ATtiny10] Power-down, watch-dog i... problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19839&amp;p=200915#p200915"><![CDATA[
Witam serdecznie,<br /><br />Tworzę prosty układ, którego zadaniem jest jedynie płynne włączanie i wygaszanie diody LED za pomocą PWM.  Z noty wyczytałem, iż pobór prądu w trybie power-down będzie wynosił maksymalnie 10uA (przy włączonym watch-dogu), natomiast w trakcie wyświetlania sekwencji układ pobiera średnio 2,7mA. Zgodnie z moimi obliczeniami, przy zasilaniu baterią CR2032 i wyświetlaniu animacji co 10min, układ powinien pozwolić na pracę przez około 300 dni.<br /><br />Mam jednak problem z programem. Moja &quot;Tinka10&quot; najprawdopodobniej w ogóle nie wchodzi w tryb power-down. Pobór prądu to min. 1mA. Timer wyłącza się, co wnioskuję po całkowicie gasnącej diodzie LED. Siedzę w nocie od kilku godzin i już nie mam pomysłu... Może wam się rzuci coś w oczy <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> <br /><br />PS. Zmienna n_Twd docelowo ma odpowiadać mnożnik czasu, po którym następuje wybudzenie watch-doga. Reszta myślę, że zrozumiała. <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 />#define SW1 (1&lt;&lt;PB1)<br />#define SW2 (1&lt;&lt;PB2)<br />#define LED (1&lt;&lt;PB0)<br />#define POWER_DOWN ( (PRR=0b11), (SMCR=0b0101) )<br />#define POWER_UP ( (SMCR=0b0000), (PRR=0b10) )<br /><br />volatile uint16_t wypelnienie=0;//wypełnienie PWM'a<br />volatile uint8_t wykonaj=1;//wykonaj petle animacji<br />volatile uint8_t n_Twd=0;//ilosc wybudzen z power-downa<br /><br />uint8_t i=0;<br />uint8_t obieg=0;<br /><br />ISR(TIM0_OVF_vect)<br />{<br />OCR0A=wypelnienie;<br />}<br /><br />ISR(WDT_vect)<br />{<br />POWER_UP;<br />if(n_Twd&lt;2)<br />{<br />n_Twd++;<br />wykonaj=0;<br />POWER_DOWN;<br />}<br />else<br />{<br />n_Twd=0;<br />wykonaj=1;<br />cli();<br />}<br />}<br /><br />int main(void)<br />{<br />//Konfiguracja IO<br />    DDRB |= LED;<br />DDRB &amp;= ~(SW1 | SW2);<br />PORTB |= LED | SW1 | SW2;<br /><br />//Konfiguracja timerów sprzętowych<br />TIMSK0 |= (1&lt;&lt;TOIE0);//przerwanie przy przepełnieniu<br />TCCR0A |= ( (1&lt;&lt;COM0A1) | (1&lt;&lt;WGM00) );//FAST-PWM odwracający, porównanie przy OCR0A<br />TCCR0B |= ( (1&lt;&lt;WGM02) | (1&lt;&lt;CS00) );//Preskaler: 1<br />OCR0A=wypelnienie;<br /><br />//Minimalizacja zużycia energii<br />ACSR &amp;= ~(1&lt;&lt;ACIE);//Wyłączenie przerwań od komparatora<br />ACSR |= (1&lt;&lt;ACD);//Wyłączenie zasilania komparatora<br /><br />//Konfiguracja watch-doga<br />WDTCSR |= (1&lt;&lt;WDIE);//przerwanie od WD włączone<br />WDTCSR |= ( (1&lt;&lt;WDP0) | (1&lt;&lt;WDP3) );//wybudzenie po 1024K cyklach ~8s<br /><br />sei();<br /><br />POWER_DOWN;<br /><br />    while(1) <br />    {<br />if(wykonaj)<br />{<br />for(i=0;i&lt;8;i++)<br />{<br />//FADE-IN<br />while(wypelnienie&lt;=250)<br />{<br />wypelnienie+=5;<br />_delay_ms(2);<br />}<br />_delay_ms(25);<br /><br />//FADE-OUT<br />while(wypelnienie&gt;=5)<br />{<br />wypelnienie-=5;<br />_delay_ms(2);<br />}<br />wypelnienie=0;<br />obieg++;<br />if(obieg&lt;2) _delay_ms(25);<br />else <br />{<br />obieg=0;<br />_delay_ms(600);<br />}<br />}<br /><br />wykonaj=0;<br />sei();<br />POWER_DOWN;<br />}<br />}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=491">piotreks-89</a> — 21 gru 2017, o 18:49</p><hr />
]]></content>
</entry>
</feed>