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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2023-01-08T20:10:06+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=24379&amp;mode</id>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2023-01-08T20:10:06+01:00</updated>
<published>2023-01-08T20:10:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24379&amp;p=236334#p236334</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24379&amp;p=236334#p236334"/>
<title type="html"><![CDATA[Re: ATtiny13 i przerwania do wybudzenia ze sleep_cpu()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24379&amp;p=236334#p236334"><![CDATA[
Stanem wysokim nie wybudzisz. Jak chcesz możesz się posiłkować moim rozwiązaniem, które działa niezawodnie. Baterie raz włożyłem i jeszcze działa - parę km już zrobiła <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />[syntax=c]// Migacz dla biegacza<br />// 23.11.2018<br />// V1.0<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br /><br />//*******************************************************************************<br />//*******************************************************************************<br />#define LED PB2<br /><br />#define KEY (PINB &amp; (1&lt;&lt;PB1))<br />#define LED_ON (PORTB |= (1&lt;&lt;LED))<br />#define LED_OFF (PORTB &amp;= ~(1&lt;&lt;LED))<br /><br />volatile uint8_t tim1, ktim;//licznik od prędkości migania, i timer klawisza<br />uint32_t miganie, mig;//wzór migania (binarnie 1-świeci 0-zgaszone)<br />uint8_t lmig, lk;//wskaźnik kolejki migania i licznik dla klawisza<br />uint8_t power_stan=1;//0-wyłączony, 1-włączony<br /><br />//*******************************************************************************<br />void power_off(void)<br />{<br />  GIMSK |= (1&lt;&lt;INT0);//INT0 On<br />  MCUCR |= (1&lt;&lt;SM1)|(1&lt;&lt;SE);//Power Down + sleep enable<br />  asm(&quot;sleep&quot;);<br />  //---spanie----<br />  //---       ---<br />  //--wstawanie--<br />  GIMSK &amp;= ~(1&lt;&lt;INT0);//INT0 Off<br />  MCUCR &amp;= ~(1&lt;&lt;SE);//sleep disable<br />}<br /><br />//ISR(INT0_vect){}//nie zapomnieć umieścić tego wektora w programie!<br /><br />//*******************************************************************************<br /><br />int main(void)<br />{<br />  //ustawienie przerwań Attiny13 1.2MHz<br />   TCCR0A |= (1&lt;&lt;WGM01); //CTC<br />   TCCR0B |= (1&lt;&lt;CS01);  //Prescale 8<br />   TIMSK0 |= (1&lt;&lt;OCIE0A);//zezwolenie na przerwanie CompareMatch<br />   OCR0A=149;            //1kHz przy 1.2Mhz<br /><br />   ADCSRA &amp;= ~(1&lt;&lt;ADEN);//ADC off<br />//-------------------------------------------------------------------------------<br /><br />  DDRB |= (1&lt;&lt;LED);//ustawienie wyjścia<br />  PORTB |= (1&lt;&lt;PB1);//podciągnięcie klawisza<br /><br />  miganie = 0b00001100110000000000111100001111;//wzór migania<br />  mig = miganie;<br /><br />  //-------<br /><br />  sei();<br />  while(1)<br />    {<br />      if(power_stan)<br />{<br />  if(!tim1)<br />    {<br />      tim1=30;<br />      if(mig &amp; 1) LED_ON; else LED_OFF;<br />      mig = (mig&gt;&gt;1);<br />      lmig++;<br />      if(lmig == 32) {lmig=0; mig=miganie;}<br />    }<br />}<br />      else<br />{<br />  LED_OFF;<br />  if(!lk)<br />    {<br />      lmig=0; mig=miganie;<br />      ktim=0;<br />      power_off();<br />    }<br />}<br /><br />      //--<br /><br />      if(!KEY)<br />{<br />  if(!ktim)<br />    {<br />      ktim=1;<br />      if(lk&lt;255) lk++;<br />      if(lk == 70) {power_stan ^= 1;}//70ms<br />    }<br />}<br />      else<br />{<br />  if(lk &gt; 0) lk--;<br />}<br /><br />    }//END while<br />}// END main<br />//*******************************************************************************<br /><br /><br />ISR(TIM0_COMPA_vect)//1ms (1000Hz)<br />{<br />  if(tim1) tim1--;<br />  ktim=0;<br />}<br />//-------------------<br />ISR(INT0_vect){}<br /><br />//*******************************************************************************<br />//*******************************************************************************[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1922">SylwekK</a> — 8 sty 2023, o 20:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kacperos_89]]></name></author>
<updated>2023-01-08T15:02:09+01:00</updated>
<published>2023-01-08T15:02:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24379&amp;p=236333#p236333</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24379&amp;p=236333#p236333"/>
<title type="html"><![CDATA[Re: ATtiny13 i przerwania do wybudzenia ze sleep_cpu()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24379&amp;p=236333#p236333"><![CDATA[
@mirekk36<br />No tak. A najlepsze jest to, że mam to okienko cały czas po prawej stronie jak polecałeś <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> w ISR (PCINT_vect) trzeba dopisać 0 żeby było ISR (PCINT0_vect) i nagle brak warningów. Zielona dioda się zapala jak powinna i przerwanie ładnie wybudza procka <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> <br /><br />Dziękuję za pomoc <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />@SylwekK<br />Jeśli chodzi o INT0 to zbocza nie działają do wybudzania procka, tylko stan LOW czyli (0&lt;&lt;ISC01)|(0&lt;&lt;ISC00). Testowałem już zbocza i jeśli chodzi o INT0 to nic nie budziło procka po za stanem LOW<br /><br />@JarekK<br />Używał eclipsa wedle porad ;P. Wskazówka z AVR Device Explorer wyjaśniła mi wszystko.<br /><br />Jeszcze raz dziękuję za pomoc.<br />Następnym razem postaram się lepiej przemyśleć, które piny w jakim kierunku i w jaki sposób użyć zanim złoże jakiś układ <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Na swoją obronę dodam, że miałem to zaprogramować w Arduino ale nie poszło.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=19214">kacperos_89</a> — 8 sty 2023, o 15:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[JarekK]]></name></author>
<updated>2023-01-08T14:42:28+01:00</updated>
<published>2023-01-08T14:42:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24379&amp;p=236332#p236332</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24379&amp;p=236332#p236332"/>
<title type="html"><![CDATA[Re: ATtiny13 i przerwania do wybudzenia ze sleep_cpu()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24379&amp;p=236332#p236332"><![CDATA[
Jeśli używasz MkClispe to trzeba znać nazwę pliku nagłówkowego procka i sprawdzić w <br />wybierz katalog &quot;Dokumenty&quot; a następnie:<br />MkClipse\AVR Toolchain\avr\include\avr<br />dla ATtiny13a jest to &quot;iotn13a.h&quot;  <br />a w nim:<br />/* Interrupt vectors */<br />.....<br />#define PCINT0_vect      _VECTOR(2)  /* External Interrupt Request 0 */<br />.....<br /><br />czyli PCINT0_vect  powinno być właściwym wpisem.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=224">JarekK</a> — 8 sty 2023, o 14:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2023-01-08T14:36:32+01:00</updated>
<published>2023-01-08T14:36:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24379&amp;p=236331#p236331</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24379&amp;p=236331#p236331"/>
<title type="html"><![CDATA[Re: ATtiny13 i przerwania do wybudzenia ze sleep_cpu()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24379&amp;p=236331#p236331"><![CDATA[
O ile dobrze pamiętam tylko zbocze opadające bez problemu wybudza procka na int0. Robiłem kilka projektów z usypianiem i wybudzanie zawsze robiłem guzikirm do masy. Zawsze dział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=1922">SylwekK</a> — 8 sty 2023, o 14:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2023-01-08T14:32:14+01:00</updated>
<published>2023-01-08T14:32:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24379&amp;p=236330#p236330</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24379&amp;p=236330#p236330"/>
<title type="html"><![CDATA[Re: ATtiny13 i przerwania do wybudzenia ze sleep_cpu()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24379&amp;p=236330#p236330"><![CDATA[
<div class="quotetitle">kacperos_89 napisał(a):</div><div class="quotecontent"><br />Attiny13 ma inne nazwy rejestrów<br /></div><br />Przecież w Eclipse masz AVR Device explorer - wystarczy wybrać attiny13 i podejrzeć jak nazywają się wektory przerwań - pokazuję to w wielu poradnikach<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 8 sty 2023, o 14:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kacperos_89]]></name></author>
<updated>2023-01-08T14:12:04+01:00</updated>
<published>2023-01-08T14:12:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24379&amp;p=236329#p236329</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24379&amp;p=236329#p236329"/>
<title type="html"><![CDATA[Re: ATtiny13 i przerwania do wybudzenia ze sleep_cpu()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24379&amp;p=236329#p236329"><![CDATA[
Z PCINT mam znowu inny problem. ISR (PCINT_vect) wywala mi warning w eclipsie &quot;warning: 'PCINT_vect' appears to be a misspelled signal handler, missing __vector prefix [-Wmisspelled-isr]&quot; Pisze ten program na podstawie poradnika Mirka &quot;AVR Przerwania dla początkujących&quot; z tym, że on pisał pod atmege328. Attiny13 ma inne nazwy rejestrów i i zastanawiam się czy dobieram dobre odpowiedniki tych rejestrów ale wygląda jak dla mnie wszystko ok. Obecnie program z przerwaniem PCINT działa dziwnie, tak jak by się wszystko resetowało. Po uśpieniu procek się wybudza, ale nie zapala diody zielonej. Tak samo w trakcie migania czerwonej diody widać, że resetuje jej miganie i także nie zapala zielonej 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 />#include &lt;avr/sleep.h&gt;<br /><br />//Deklaracje Pinów<br />#define LEDR (1&lt;&lt;PB3)<br />#define LEDY (1&lt;&lt;PB4)<br />#define LEDG (1&lt;&lt;PB0)<br />#define BUZZ (1&lt;&lt;PB2)<br />#define BUTT (1&lt;&lt;PB1)<br /><br />//Deklaracje stanu pinów<br />#define LEDR_ON PORTB |= LEDR<br />#define LEDR_OFF PORTB &amp;= ~LEDR<br />#define LEDR_TOG PORTB ^= LEDR<br /><br />#define LEDG_ON PORTB |= LEDG<br />#define LEDG_OFF PORTB &amp;= ~LEDG<br />#define LEDG_TOG PORTB ^= LEDG<br /><br />//uint8_t BUTTON(void);<br /><br />int main (void)<br />{<br /><br />DDRB |= LEDR;//<br />DDRB |= LEDY;//Kierunek wyjściowy pinów<br />DDRB |= LEDG;//<br />DDRB |= BUZZ;//<br /><br />DDRB &amp;= ~BUTT;<br /><br />//MCUCR |= (0&lt;&lt;ISC01)|(1&lt;&lt;ISC00);<br />//GIMSK |= (1&lt;&lt;INT0);<br /><br />GIMSK |= (1&lt;&lt;PCIE);<br />PCMSK |= (1&lt;&lt;PCINT1);<br /><br />set_sleep_mode ( SLEEP_MODE_PWR_DOWN);   // ustawia MCUCR i EMCUCR<br /><br />sei();<br />while(1)<br />{<br />uint8_t i;<br />for(i=0; i&lt;5; i++)<br />{<br />LEDR_ON;<br />_delay_ms(1000);<br />LEDR_OFF;<br />_delay_ms(1000);<br />}<br /><br />LEDR_OFF;<br />LEDG_OFF;<br />//sleep_enable();<br />//sleep_cpu();<br /><br />//if(BUTTON())<br />//{<br />// LEDG_TOG;<br />//_delay_ms(200);<br />//}<br />}<br />}<br /><br />ISR (PCINT_vect)<br />{<br />if((PINB &amp; (1&lt;&lt;PB1)))<br />{<br />_delay_ms(100);<br />LEDG_TOG;<br />//sleep_disable();<br /><br />}<br />}<br /><br /><br />//uint8_t BUTTON(void)<br />//{<br />//if((PINB &amp; (1&lt;&lt;PB1)))<br />//{<br />//_delay_ms(100);<br />//if((PINB &amp; (1&lt;&lt;PB1))) return 1;<br />//}<br />//return 0;<br />//}<br /><br /><br />//ISR( INT0_vect )<br />//{<br />//if((PINB &amp; (1&lt;&lt;PB1)))<br />//{<br />//_delay_ms(100);<br />//sleep_disable();<br />//LEDG_TOG;<br />//}<br />//}[/syntax]<br /><br />W komentarzach zostawiłem zwykłą obsługę przycisku żeby sprawdzić czy działa i tak działa.[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=19214">kacperos_89</a> — 8 sty 2023, o 14:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[JarekK]]></name></author>
<updated>2023-01-07T20:06:54+01:00</updated>
<published>2023-01-07T20:06:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24379&amp;p=236324#p236324</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24379&amp;p=236324#p236324"/>
<title type="html"><![CDATA[Re: ATtiny13 i przerwania do wybudzenia ze sleep_cpu()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24379&amp;p=236324#p236324"><![CDATA[
Nie mam wolnego attiny13.<br />A co się stanie jeśli w ISR wpisze się tylko:<br />{<br />cli();<br />sleep_disable();<br />LEDG_TOG;<br />}<br />a w pętli while dopisze sie  np. przed LEDR_OFF;<br /><br />sei();<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=224">JarekK</a> — 7 sty 2023, o 20:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xentis]]></name></author>
<updated>2023-01-07T15:38:28+01:00</updated>
<published>2023-01-07T15:38:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24379&amp;p=236315#p236315</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24379&amp;p=236315#p236315"/>
<title type="html"><![CDATA[Re: ATtiny13 i przerwania do wybudzenia ze sleep_cpu()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24379&amp;p=236315#p236315"><![CDATA[
Atmel trochę niejednoznacznie to napisał w nocie więc może faktycznie tylko stan niski potrafi wybudzić procka ze stanu PowerDown, ale z tego co tutaj jest napisane:<br /><a href="https://obrazkiforum.atnel.pl/6265/254ce02f7473436c07ec3c00c74940c5.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/6265/254ce02f7473436c07ec3c00c74940c5.png" alt="Obrazek" /></a><br />Jeszcze powinno zadziałać przerwanie PCINT więc do samego wybudzania możesz spróbować tego...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6265">xentis</a> — 7 sty 2023, o 15:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kacperos_89]]></name></author>
<updated>2023-01-07T12:19:14+01:00</updated>
<published>2023-01-07T12:19:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24379&amp;p=236310#p236310</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24379&amp;p=236310#p236310"/>
<title type="html"><![CDATA[Re: ATtiny13 i przerwania do wybudzenia ze sleep_cpu()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24379&amp;p=236310#p236310"><![CDATA[
Zmiana poziomu logicznego też nie działa. W trakcie migania czerwoną diodą zapala zieloną ale nie wybudza procesora ze stanu uśpienia. <br /><br />Zastanawiam się teraz tylko nad jednym, bo przerwanie stanem niskim wybudzają procka a ja potrzebuję żeby działały na stanie wysokim. Czy negacja stanu niskiego zadziała czy może będzie tak, że najpierw procesor się wybudzi stanem niskim a dopiero po wybudzeniu będzie negował działanie przycisku na stan wysoki. Jeśli tak to procek będzie się cały czas wybudzał i nie będzie żadnej oszczędności energii.<br /><br />W przypadku gdy jestem skazany na stan niski do wybudzania procka to jedyne wyjście to chyba fizyczne przerobienie płytki w taki sposób żeby przycisk przepuszczał stan niski. Mam rację?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=19214">kacperos_89</a> — 7 sty 2023, o 12:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xentis]]></name></author>
<updated>2023-01-07T01:03:31+01:00</updated>
<published>2023-01-07T01:03:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24379&amp;p=236303#p236303</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24379&amp;p=236303#p236303"/>
<title type="html"><![CDATA[Re: ATtiny13 i przerwania do wybudzenia ze sleep_cpu()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24379&amp;p=236303#p236303"><![CDATA[
Zgodnie z notą:<br /><br /><a href="https://obrazkiforum.atnel.pl/6265/395cfb326ca07872aacae09c828a2b56.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/6265/395cfb326ca07872aacae09c828a2b56.png" alt="Obrazek" /></a><br /><br />Wybudzenie procka może być tylko poziomem logicznym &quot;0&quot; (ISC01 i ISC00 = 00 w rejestrze MCUCR) lub dowolną logiczną zmianą poziomu logicznego na tym wejściu (ISC01 i ISC00 = 01)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6265">xentis</a> — 7 sty 2023, o 01:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kacperos_89]]></name></author>
<updated>2023-01-06T23:36:25+01:00</updated>
<published>2023-01-06T23:36:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24379&amp;p=236302#p236302</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24379&amp;p=236302#p236302"/>
<title type="html"><![CDATA[ATtiny13 i przerwania do wybudzenia ze sleep_cpu()]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24379&amp;p=236302#p236302"><![CDATA[
Dzień dobry.<br /><br />Na mikrokontrolerze ATtiny13 robię taką małą zabawkę, symulację świateł drogowych. Zasilam wszystko z baterii 3V dlatego potrzebuję ograniczyć pobór prądu. Problem mam z Wybudzaniem procka, przerwanie mam podłączone do INT0 i wzbudzanie przerwania zboczem narastającym działa, ale już przy wybudzaniu procesora z uśpienia już nie działa. Czytałem gdzieś, że aby wybudzić procka zbocze musi być odpowiednio długie. Natomiast wybudzanie procka przez ciągły stan niski działa jak trzeba, procek się wybudza, ale działa na poziom niski a ja fizycznie podłączyłem guzik tak, że aktywacją przepuszcza stan wysoki. <br /><br />Pytanie moje jest takie: jak to zrobić żeby działało? Jak zrobić żeby zbocze narastające działało albo jak zrobić żeby przerwanie reagowało na stan wysoki?<br /><br />A kod wygląda tak:<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 />#include &lt;avr/sleep.h&gt;<br /><br />//Deklaracje Pinów<br />#define LEDR (1&lt;&lt;PB3)<br />#define LEDY (1&lt;&lt;PB4)<br />#define LEDG (1&lt;&lt;PB0)<br />#define BUZZ (1&lt;&lt;PB2)<br />#define BUTT (1&lt;&lt;PB1)<br /><br />//Deklaracje stanu pinów<br />#define LEDR_ON PORTB |= LEDR<br />#define LEDR_OFF PORTB &amp;= ~LEDR<br />#define LEDR_TOG PORTB ^= LEDR<br /><br />#define LEDG_ON PORTB |= LEDG<br />#define LEDG_OFF PORTB &amp;= ~LEDG<br />#define LEDG_TOG PORTB ^= LEDG<br /><br /><br />int main (void)<br />{<br /><br />DDRB |= LEDR;//<br />DDRB |= LEDY;//Kierunek wyjściowy pinów<br />DDRB |= LEDG;//<br />DDRB |= BUZZ;//<br /><br />//DDRB &amp;= ~BUTT;//Kierunek wejściowy portu<br /><br />//MCUCR |= (0&lt;&lt;ISC01)|(0&lt;&lt;ISC00);<br />GIMSK |= (1&lt;&lt;INT0);<br /><br />set_sleep_mode ( SLEEP_MODE_PWR_DOWN);   // ustawia MCUCR i EMCUCR<br /><br />sei();<br />while(1)<br />{<br />uint8_t i;<br />for(i=0; i&lt;5; i++)<br />{<br />LEDR_ON;<br />_delay_ms(1000);<br />LEDR_OFF;<br />_delay_ms(1000);<br />}<br /><br />LEDR_OFF;<br />LEDG_OFF;<br />sleep_enable();<br />sleep_cpu();<br />}<br />}<br /><br />ISR( INT0_vect )<br />{<br />if( !(PINB &amp; (1&lt;&lt;PB1) ) )<br />{<br />_delay_ms(100);<br />sleep_disable();<br />LEDG_TOG;<br />}<br />}[/syntax]<br /><br />Pozdrawiam Kacper<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=19214">kacperos_89</a> — 6 sty 2023, o 23:36</p><hr />
]]></content>
</entry>
</feed>