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

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

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=12470&amp;mode</id>
<entry>
<author><name><![CDATA[sternick]]></name></author>
<updated>2015-07-29T20:08:07+01:00</updated>
<published>2015-07-29T20:08:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135830#p135830</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135830#p135830"/>
<title type="html"><![CDATA[Re: Arduino Pro Mini ATmega328P - problem z przyciskiem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135830#p135830"><![CDATA[
Przecież dokładnie to samo napisałem.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10300">sternick</a> — 29 lip 2015, o 20:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-07-29T18:19:36+01:00</updated>
<published>2015-07-29T18:19:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135824#p135824</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135824#p135824"/>
<title type="html"><![CDATA[Re: Arduino Pro Mini ATmega328P - problem z przyciskiem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135824#p135824"><![CDATA[
<div class="quotetitle">sternick napisał(a):</div><div class="quotecontent"><br />Konkluzja jest taka: we wszystkich procesorach w ciemno konfigurujemy stan wejść/wyjść przez PORTx, lub zaglądamy do noty i sprawdzamy funkcjonalność PINx (r/w)<br /></div><br /><br />Nie panie kochany - konkluzja jest inna<br /><br />we wszystkich prockach ustawiamy kierunek pinów za pomocą zapisu do rejestru DDRx<br /><br />we wszystkich prockach ustawiamy stan na WYJŚCIU pinów za pomocą zapisu do rejestru PORTx<br /><br />we wszystkich prockach odczytujemy stan wejść na pinach za pomocą odczytu z rejestru PINx<br />---------------------------------------<br />we wszystkich prockach podciągamy WEJŚCIE programowo do VCC przez PORTx<br /><br />----------------------------------------------------------<br /><br />bo takie podejście panie kochany to zadziała w KAŻDYCH procesorach<br /><br /><br />****************************************<br /><br />zaś w nowszych prockach możemy (jako bonus) korzystać z funkcjonalności TOGGLING PIN żeby zmieniać stan na wyjściu PORTx poprzez zmianę stanu bitów w rejestrach PINx<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 29 lip 2015, o 18:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sternick]]></name></author>
<updated>2015-07-29T16:50:27+01:00</updated>
<published>2015-07-29T16:50:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135814#p135814</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135814#p135814"/>
<title type="html"><![CDATA[Re: Arduino Pro Mini ATmega328P - problem z przyciskiem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135814#p135814"><![CDATA[
<div class="quotetitle">Daniel880 napisał(a):</div><div class="quotecontent"><br />Daniel880<br /></div> Dziękuję za wszystkie, pomocne odpowiedzi i cieszę się, że sprowokowałem Cię do poszukiwań, które i do Twojej wiedzy wniosły coś pożytecznego <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br /><div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />mirekk36<br /></div> Dziękuję za cierpliwość, poświęcony czas oraz przystępne wyjaśnienie kwestii.<br /><br />Konkluzja jest taka: we wszystkich procesorach w ciemno konfigurujemy stan wejść/wyjść przez PORTx, lub zaglądamy do noty i sprawdzamy funkcjonalność PINx (r/w). Tak się składa, że korzystałem z dwóch mikrokontrolerów. Właśnie ATtiny2313 oraz ATmega328P no i oba jak się okazuje, na taką konfigurację pozwalają.<br /><br />Pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10300">sternick</a> — 29 lip 2015, o 16:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-07-29T16:30:29+01:00</updated>
<published>2015-07-29T16:30:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135812#p135812</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135812#p135812"/>
<title type="html"><![CDATA[Re: Arduino Pro Mini ATmega328P - problem z przyciskiem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135812#p135812"><![CDATA[
<div class="quotetitle">Daniel880 napisał(a):</div><div class="quotecontent"><br />Atmegi328<br /></div><br />no bo to już nowsze procki a więc będzie i w: m48, m88, m168 ale także m644p, m1284 itp itd <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=54">mirekk36</a> — 29 lip 2015, o 16:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Daniel880]]></name></author>
<updated>2015-07-29T16:30:29+01:00</updated>
<published>2015-07-29T16:26:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135811#p135811</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135811#p135811"/>
<title type="html"><![CDATA[Re: Arduino Pro Mini ATmega328P - problem z przyciskiem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135811#p135811"><![CDATA[
a to tego nie wiedziałem ale screen prosto z noty Atmegi328, takiej samej jak w płytce kolegi;)<br /><br />Sam nie wiedziałem, że rejestr PIN ma taką funkcjonalność. Myślałem, że znajdę tam coś o tym, że rejestr PIN jest tylko do odczytu a tu taka niespodzianka;)<br /><br />Właśnie sprawdziłem notę Atmegi8:<a href="https://obrazkiforum.atnel.pl/2328/79f22ad33f638901dd4f107aa1936669.jpg"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/2328/79f22ad33f638901dd4f107aa1936669.jpg" alt="Obrazek" /></a><br /><br />Rejestr PIN tylko do odczytu;)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2328">Daniel880</a> — 29 lip 2015, o 16:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-07-29T16:21:32+01:00</updated>
<published>2015-07-29T16:21:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135809#p135809</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135809#p135809"/>
<title type="html"><![CDATA[Re: Arduino Pro Mini ATmega328P - problem z przyciskiem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135809#p135809"><![CDATA[
<div class="quotetitle">Daniel880 napisał(a):</div><div class="quotecontent"><br /><a href="https://obrazkiforum.atnel.pl/2328/b198d2ea8d614240fb65cf19aa36b604.jpg"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/2328/b198d2ea8d614240fb65cf19aa36b604.jpg" alt="Obrazek" /></a><br /><br />Pewnie dlatego. Jest to screen z noty katalogowej jak coś, bo wygląda na to, że mogłeś nie czytać;)<br /></div><br /><br />to nie jest dostępne we wszystkich prockach AVR o ile dobrze pamiętam czyli np w ATmega8 nie a już w ATtiny2313 tak<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 29 lip 2015, o 16:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Daniel880]]></name></author>
<updated>2015-07-29T16:13:07+01:00</updated>
<published>2015-07-29T16:13:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135808#p135808</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135808#p135808"/>
<title type="html"><![CDATA[Re: Arduino Pro Mini ATmega328P - problem z przyciskiem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135808#p135808"><![CDATA[
<a href="https://obrazkiforum.atnel.pl/2328/b198d2ea8d614240fb65cf19aa36b604.jpg"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/2328/b198d2ea8d614240fb65cf19aa36b604.jpg" alt="Obrazek" /></a><br /><br />Pewnie dlatego. Jest to screen z noty katalogowej jak coś, bo wygląda na to, że mogłeś nie czytać;)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2328">Daniel880</a> — 29 lip 2015, o 16:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sternick]]></name></author>
<updated>2015-07-29T15:50:13+01:00</updated>
<published>2015-07-29T15:50:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135804#p135804</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135804#p135804"/>
<title type="html"><![CDATA[Re: Arduino Pro Mini ATmega328P - problem z przyciskiem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135804#p135804"><![CDATA[
Mirku, tak wszystko jest dla mnie zrozumiałe. Wyjaśniłeś kwestię tą linią:<br /><br /><div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />ale .... ! ale UWAGA ... z tego powodu firma ATMEL wymyśliła alternatywną funkcjonalność - żeby ten rejestr nie leżał odłogiem gdy pin lub piny są wejściami ...<br /><br />otóż w tym czasie jeśli zapiszesz JEDYNKĘ na danym bicie to załączasz taki mały rezystorek w środku - który podciąga WEJŚCIE na tym bicie do VCC<br /></div><br /><br />Jednak czy możesz mi wyjaśnić, dlaczego udaje mi się uzyskać STAN WYSOKI na wejściu procesora, gdy używam poniższego zapisu:<br />[syntax=c]DDRC &amp;= ~KEY_PIN;<br />PINC |= KEY_PIN;[/syntax]<br /><br />Zgodnie z tym co napisałeś, zapis ten jest błędny, albowiem PORTx służy do wystawiania stanów w przypadku wejść. Mógłbyś się do tego odnieść? Z góry dziękuję.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10300">sternick</a> — 29 lip 2015, o 15:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-07-29T15:41:20+01:00</updated>
<published>2015-07-29T15:41:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135802#p135802</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135802#p135802"/>
<title type="html"><![CDATA[Re: Arduino Pro Mini ATmega328P - problem z przyciskiem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135802#p135802"><![CDATA[
<div class="quotetitle">sternick napisał(a):</div><div class="quotecontent"><br />I tu pojawia się moje niezrozumienie. Dlaczego podciągam do VCC przez linię kodu: PORTC |= (1&lt;&lt;PC0) zamiast PINC |= (1&lt;&lt;PC0) ?<br /></div><br /><br />No dobrze to przeniosę ten tekst z bloga tutaj bo nie wiem czy zajrzałeś:<br /><br />DDRB    DDRC    DDRD    - rejestry kierunku<br />PORTB   PORTC   PORTD   - rejestry wyjściowe<br />PINB    PINC    PIND    - rejestry wejściowe<br /><br />i rysunek bo pewnie też nie widziałeś: <br /><br /><a href="https://obrazkiforum.atnel.pl/54/de95151653f07b18cd90a462ae060f85.jpg"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/54/de95151653f07b18cd90a462ae060f85.jpg" alt="Obrazek" /></a><br /><br />widzisz to ?<br /><br />firma ATMEL wymyśliła sobie trzy rodzaje rejestrów<br /><br />DDRx<br />PINx<br />PORTx<br /><br /><br />DDRx - bitami tego rejestru ustawiasz kierunek - zrozumiałe ? do niczego innego on nie służy<br /><br />PINx - chcąc odczytać JAKI MASZ STAN na WEJŚCIU danego pinu no musisz czytać ten rejestr - bo w zależności od stanu na wejściu dany bit będzie miał albo ZERO albo JEDEN - zrozumiałe ?<br /><br />no i przechodzimy do <br /><br />PORTx - chcą wystawić jakiś stan na zewnątrz ZERO albo JEDEN (gdy kierunek pinu jest wyjściem!) wpisujesz jedynki albo zera do tego portu - i pojawiają się one na pinach - zrozumiałe ? <br /><br />czyli gdy ustawimy jakiś pin procka jak WEJŚCIE to można by powiedzieć, że rejestr PORTx jest nieużyteczny w tym momencie bo co można ustawiać ? na pinie gdy nie jest WYJŚCIEM - prawda ?<br /><br />ale .... ! ale UWAGA ... z tego powodu firma ATMEL wymyśliła alternatywną funkcjonalność - żeby ten rejestr nie leżał odłogiem gdy pin lub piny są wejściami ...<br /><br />otóż w tym czasie jeśli zapiszesz JEDYNKĘ na danym bicie to załączasz taki mały rezystorek w środku - który podciąga WEJŚCIE na tym bicie do VCC <br /><br />TERAZ rozumiesz ? To wynika wprost z noty PDF a nie z moich jakichś tam analiz poetyckich tekstów <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ....<br /><br />i dlatego w pewnych (wyżej wymienionych sytuacjach) używamy konkretnych rejestrów - wyjątkiem jest tylko rejestr PORTx, który ma dodatkowe zastosowanie gdy pin jest wejściem<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 29 lip 2015, o 15:41</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sternick]]></name></author>
<updated>2015-07-29T15:19:31+01:00</updated>
<published>2015-07-29T15:19:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135800#p135800</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135800#p135800"/>
<title type="html"><![CDATA[Re: Arduino Pro Mini ATmega328P - problem z przyciskiem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135800#p135800"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br /><div class="quotetitle">sternick napisał(a):</div><div class="quotecontent">Natomiast w BB Mirek w ćwiczeniu z microswitchami konfiguruje wejścia właśnie poprzez PORTx (strona 189).<br /></div><br /><br />Panie panie -</div><br />Panie, Panie, kobita na polanie.<br /><br />Przepraszam, jeśli powyższym szerzę nieprawdę. Zapewne wynika to z niedokładnego zrozumienia tematu.<br />A przechodząc do meritum, rozumiem czym są wejścia i wyjścia. Zapoznałem się z pojęciami: rejestru kierunkowego, rejestru wejściowego oraz rejestru wyjściowego.<br /><br />W rejestrze kierunkowym ustalam, czy dany pin ma być wejściem, czy też wyjściem<br /><br />Rejestr wyjściowy służy do ustaleniu początkowego, panującego na nim stanu, np. logicznej jedynki: PORTx |= (1&lt;&lt;PCx)<br /><br />Rejestr wejściowy z kolei pozwala na ustalenie początkowego stanu logicznego, jaki będzie panował na skonfigurowanym w rejestrze kierunkowym wejściu procesora. I tu pojawia się moje niezrozumienie. Dlaczego podciągam do VCC przez linię kodu: PORTC |= (1&lt;&lt;PC0) zamiast PINC |= (1&lt;&lt;PC0) ? Ustalam stan na wejściu czy wyjściu procesora? Skoro na wejściu, to czemu nie używamy linii PINC |= (1&lt;&lt;PC0) ? Dodam, że gdy użyję właśnie takiej konfiguracji i wpiszę PINC |= (1&lt;&lt;PC0) zamiast PORTC |= (1&lt;&lt;PC0) to program działa dokładnie tak samo! Czyli na wejściu panuje stan wysoki, który mogę zmienić np. poprzez podanie z zewnątrz masy. Poniżej przedstawiam kod DZIAŁAJĄCEGO programu i proszę o wyjaśnienie. Dodam, że wskazany przez Ciebie link o rejestrach ZNAM - czytałem. Pytanie pozostaje aktualne.<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />//definicje LED<br />#define LED_PIN (1&lt;&lt;PD2)<br />#define LED_TOG PORTD ^= LED_PIN//neguj bity<br /><br />//definicja klawisza<br />#define KEY_PIN (1&lt;&lt;PC0)<br />#define KEY_DOWN ( !( PINC &amp; KEY_PIN ))<br /><br />int main(void)<br />{<br />DDRD |= LED_PIN;<br />PORTD |= LED_PIN;<br /><br />DDRC &amp;= ~KEY_PIN;<br />PINC |= KEY_PIN;<br /><br />while(1)<br />{<br />if ( KEY_DOWN )<br />{<br />_delay_ms(80);<br />if ( KEY_DOWN )<br />{<br />LED_TOG;<br />_delay_ms(200);<br />}<br />}<br />}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10300">sternick</a> — 29 lip 2015, o 15:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-07-29T14:47:29+01:00</updated>
<published>2015-07-29T14:47:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135799#p135799</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135799#p135799"/>
<title type="html"><![CDATA[Re: Arduino Pro Mini ATmega328P - problem z przyciskiem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135799#p135799"><![CDATA[
<div class="quotetitle">sternick napisał(a):</div><div class="quotecontent"><br />Natomiast w BB Mirek w ćwiczeniu z microswitchami konfiguruje wejścia właśnie poprzez PORTx (strona 189).<br /></div><br /><br />Panie panie - no teraz toś pan napisał ..... gdzie ten Mirek TAKIE rzeczy pisze ....<br /><br />ani w starym wydaniu książki (miękka okładka) - ani w nowym wydaniu książki (twarda okładka) nigdzie takich bzdur nie piszę panie kolego - więc proszę nie wymyślaj takich rzeczy ok ? Jeśli czegoś nie rozumiesz - to po prostu dopytaj - zamiast takie kwiatki sadzić - ok ? (to tak na przyszłość)<br /><br />ty pewnie nie rozumiesz co to są WEJŚCIA a co to są WYJŚCIA jeśli chodzi o funkcjonalność pinów procka. Nie będę od nowa tego tutaj opisywał - po prostu weź książkę i jeszcze raz dokładnie przeczytaj ..... <br /><br />(aha chyba że masz stare wydanie w miękkiej okładce to tam zabrakło takiego doprecyzowania - które możesz sobie na moim blogu zobaczyć zawsze - więc patrz: <!-- m --><a class="postlink" href="http://mirekk36.blogspot.com/2012/01/avr-porty-wewy-dir-podstawy.html" >http://mirekk36.blogspot.com/2012/01/av ... stawy.html</a><!-- m --> )<br /><br />A że w książce zobaczyłeś np dla pinu klawisza<br /><br />PORTB |= KEY1;<br /><br />to WCALE nie oznacza, że konfiguruję pin jako we/wy - tylko &quot;podciągam go programowo&quot; do VCC<br /><br />ale jak mówię - poczytaj - dopytaj - a nie wypisuj takich rzeczy to moja gorąca prośba<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 29 lip 2015, o 14:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sternick]]></name></author>
<updated>2015-07-29T14:47:00+01:00</updated>
<published>2015-07-29T14:47:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135798#p135798</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135798#p135798"/>
<title type="html"><![CDATA[Re: Arduino Pro Mini ATmega328P - problem z przyciskiem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135798#p135798"><![CDATA[
<div class="quotetitle">Daniel880 napisał(a):</div><div class="quotecontent"><br />Akurat na 189 stronie mam coś o timerach;)<br /><br />Nie zrozumieliśmy się do końca;p Chodzi o zmianę:<br /><br />[syntax=c]#define KEY_DOWN ( !( PORTC &amp; KEY_PIN ))[/syntax]<br /><br />na:<br /><br />[syntax=c]#define KEY_DOWN ( !( PINC &amp; KEY_PIN ))[/syntax]<br /><br />Chodzi o bity, z których odczytujesz stan przycisku. Są one tylko w rejestrze PINC i żadnym innym. Jestem pewien, że zmiana tej lini kodu naprawi twój problem;)<br /></div><br /><br /><br />Wszystko jasne. Widocznie masz starszą wersję BB. Dzięki serdeczne, nie zauważyłem tego głupiego błędu. Już wszystko działa.<br /><br />Pozdrawiam!<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10300">sternick</a> — 29 lip 2015, o 14:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Daniel880]]></name></author>
<updated>2015-07-29T14:39:13+01:00</updated>
<published>2015-07-29T14:39:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135796#p135796</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135796#p135796"/>
<title type="html"><![CDATA[Re: Arduino Pro Mini ATmega328P - problem z przyciskiem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135796#p135796"><![CDATA[
Akurat na 189 stronie mam coś o timerach;)<br /><br />Nie zrozumieliśmy się do końca;p Chodzi o zmianę:<br /><br />[syntax=c]#define KEY_DOWN ( !( PORTC &amp; KEY_PIN ))[/syntax]<br /><br />na:<br /><br />[syntax=c]#define KEY_DOWN ( !( PINC &amp; KEY_PIN ))[/syntax]<br /><br />Chodzi o bity, z których odczytujesz stan przycisku. Są one tylko w rejestrze PINC i żadnym innym. Jestem pewien, że zmiana tej lini kodu naprawi twój problem;)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2328">Daniel880</a> — 29 lip 2015, o 14:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sternick]]></name></author>
<updated>2015-07-29T14:29:59+01:00</updated>
<published>2015-07-29T14:29:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135793#p135793</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135793#p135793"/>
<title type="html"><![CDATA[Re: Arduino Pro Mini ATmega328P - problem z przyciskiem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135793#p135793"><![CDATA[
<div class="quotetitle">Daniel880 napisał(a):</div><div class="quotecontent"><br /><strong>PIN</strong>x zamiast <strong>PORTx</strong> <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br /><strong>PORTx</strong> to rejestr wyjściowy, możesz dzięki niemu ustawić PULL-UP jeśli konfigurujesz wejście. Najlepiej tak właśnie zrobić. <br /><br /><strong>PINx</strong> to rejestr wejściowy, w nim odczytujesz stan przycisku.<br /></div><br /><br />Dzięki za odpowiedź. Zgadzam się z Tobą i zwykle tak konfiguruję wejścia (PINx - rejestr wejściowy, istotnie). Natomiast w BB Mirek w ćwiczeniu z microswitchami konfiguruje wejścia właśnie poprzez PORTx (strona 189). Tak czy inaczej, bez względu na to, czy skonfiguruję tę linię kodu jako PORTC czy też PINC, nie ma żadnej reakcji na wciśnięty przycisk.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10300">sternick</a> — 29 lip 2015, o 14:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Daniel880]]></name></author>
<updated>2015-07-29T14:17:24+01:00</updated>
<published>2015-07-29T14:17:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135789#p135789</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135789#p135789"/>
<title type="html"><![CDATA[Re: Arduino Pro Mini ATmega328P - problem z przyciskiem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135789#p135789"><![CDATA[
<strong>PIN</strong>x zamiast <strong>PORTx</strong> <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br /><strong>PORTx</strong> to rejestr wyjściowy, możesz dzięki niemu ustawić PULL-UP jeśli konfigurujesz wejście. Najlepiej tak właśnie zrobić. <br /><br /><strong>PINx</strong> to rejestr wejściowy, w nim odczytujesz stan przycisku.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2328">Daniel880</a> — 29 lip 2015, o 14:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sternick]]></name></author>
<updated>2015-07-29T13:48:50+01:00</updated>
<published>2015-07-29T13:48:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135783#p135783</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135783#p135783"/>
<title type="html"><![CDATA[Arduino Pro Mini ATmega328P - problem z przyciskiem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12470&amp;p=135783#p135783"><![CDATA[
Witam,<br /><br />Uruchomiłem płytkę Arduino Pro Mini (stykówka, 4 diody, 4 rezystory, 1 brzęczyk, dwa przyciski) i rozpocząłem programowanie w Eclipse. Wszystkie operacje testowe przeprowadzone na diodach zakończyły się powodzeniem. Przebrnąłem również pomyślnie przez konfigurację TIMER'a 8-bitowego, oraz 16-bitowego. Docelowo zmierzałem do obsługi przerwań PCINT (stąd dwa zamontowane przyciski). Zanim jednak przeszedłem do tego zagadnienia, stwierdziłem że napiszę prosty program, aby ustalić czy przyciski powodują pożądane reakcje. I tu napotkałem na problem. Przyciski podłączone są do masy i ich naciśnięcie powoduje obecność stanu niskiego odpowiednio na pinach PC0 oraz PC1. Założenie teoretyczne potwierdziłem badaniem praktycznym - sprawdziłem miernikiem i istotnie, na wskazanych pinach występuje GND po naciśnięciu przycisku. Nie ma również mowy o tym, że przyciski podłączone są omyłkowo do niewłaściwych pinów, bowiem gdy w linijce PORTC |= (1&lt;&lt;PC0) dokonam modyfikacji na PORTC &amp;= ~(1&lt;&lt;PC0) - program zaczyna działać, dioda migocze, a na pinie procesora do którego podłączony jest switch, występuje stan 0. Problem jednak w tym, że podanie GND na ten pin czy to za pomocą przycisku, czy też przez bezpośrednie zwarcie przewodu (GND - PC0) nie powoduje żadnej reakcji. <br />Gdzie robię błąd? Za wszelkie wskazówki z góry dziękuję.<br /><br />Płytka: <a href="https://obrazkiforum.atnel.pl/10300/afb69950e2a28a370de69baa41b632bf.jpg"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/10300/afb69950e2a28a370de69baa41b632bf.jpg" alt="Obrazek" /></a><br /><br />Poniżej kod:<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />//definicje LED<br />#define LED_PIN (1&lt;&lt;PD2)<br />#define LED_TOG PORTD ^= LED_PIN//neguj bity<br /><br />//definicja klawisza<br />#define KEY_PIN (1&lt;&lt;PC0)<br />#define KEY_DOWN ( !( PORTC &amp; KEY_PIN ))<br /><br />int main(void)<br />{<br />DDRD |= LED_PIN;<br />PORTD |= LED_PIN;<br /><br />DDRC &amp;= ~KEY_PIN;<br />PORTC |= KEY_PIN;<br /><br />while(1)<br />{<br />if ( KEY_DOWN )<br />{<br />_delay_ms(80);<br />if ( KEY_DOWN )<br />{<br />LED_TOG;<br />_delay_ms(200);<br />}<br />}<br />}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10300">sternick</a> — 29 lip 2015, o 13:48</p><hr />
]]></content>
</entry>
</feed>