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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-01-07T16:17:57+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=58&amp;t=14110&amp;mode</id>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2016-01-07T16:17:57+01:00</updated>
<published>2016-01-07T16:17:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14110&amp;p=149889#p149889</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14110&amp;p=149889#p149889"/>
<title type="html"><![CDATA[Re: Pomoc w zrozumieniu kodu z Bluebooka - obsługa klawisza]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14110&amp;p=149889#p149889"><![CDATA[
KL_DOWN jest to makro preprocesora. Pod niego podstawiane jest wartość wcześniej zdefiniowana w:<br />[syntax=c]#define KL_DOWN (!(PINC &amp; ktory))[/syntax]<br />Czyli funkcja w czasie kompilacji wygląda następująco:<br />[syntax=c]uint8_t klawisz_on (uint8_t ktory)<br />{<br />        if (!(PINC &amp; ktory)) return 1;<br />        else return 0;<br />}[/syntax]A tu już masz w zmiennej <em>ktory</em> wartość sprawdzanego klawisza.<br /><br />-- <br />Pozdrawiam,<br />Robert<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 7 sty 2016, o 16:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[dayer41]]></name></author>
<updated>2016-01-07T15:33:17+01:00</updated>
<published>2016-01-07T15:33:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14110&amp;p=149887#p149887</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14110&amp;p=149887#p149887"/>
<title type="html"><![CDATA[Pomoc w zrozumieniu kodu z Bluebooka - obsługa klawisza]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14110&amp;p=149887#p149887"><![CDATA[
Witam, próbuję zrozumieć działanie funkcji obsługującej klawisz. Kod jest ideowo identyczny jak w Bluebooku, działa pięknie, tylko nie za bardzo wiem jak działa ta funkcja (nie umiem jeszcze myśleć &quot;liniowo&quot;).<br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 5 sty 2016<br /> *      Author: Dominik<br /> */<br />#include &lt;avr/io.h&gt;<br /><br />#define LED (1&lt;&lt;PD0)<br />#define KEY1 (1&lt;&lt;PC4)<br />#define KEY2 (1&lt;&lt;PC5)<br />#define ON (PORTD &amp;= ~LED)<br />#define OFF (PORTD |= LED)<br />#define KL_DOWN (!(PINC &amp; ktory))<br /><br />uint8_t klawisz_on (uint8_t ktory);<br /><br />int main (void)<br />{<br />DDRD |= LED;<br />PORTD |= LED;<br />DDRC &amp;= ~(KEY1 | KEY2);<br />PORTC |= (KEY1 | KEY2);<br /><br />while(1)<br />{<br />if (klawisz_on(KEY1)) ON;<br />if (klawisz_on(KEY2)) OFF;<br />}<br />}<br /><br />uint8_t klawisz_on (uint8_t ktory)<br />{<br />if (KL_DOWN) return 1;<br />else return 0;<br />}[/syntax]<br /><br />Jak to jest, że funkcja zwraca 1 lub 0, a rozumie który klawisz jest wciśnięty?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3977">dayer41</a> — 7 sty 2016, o 15:33</p><hr />
]]></content>
</entry>
</feed>