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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-05-31T19:53:01+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=23&amp;t=7242&amp;mode</id>
<entry>
<author><name><![CDATA[jacekk232]]></name></author>
<updated>2014-05-31T19:53:01+01:00</updated>
<published>2014-05-31T19:53:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7242&amp;p=82932#p82932</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7242&amp;p=82932#p82932"/>
<title type="html"><![CDATA[Re: klawiaturka 4x4 Wilu88]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7242&amp;p=82932#p82932"><![CDATA[
Makra <strong>bit_is_clear</strong> i <strong>bit_is_set</strong> znajdują się w pliku sfr_defs.h. Z tego co widzę plik ten includowany razem z plikiem io.h więc te makra są standardowo dostępne. <br /><br />Chociaż ja nigdy z nich nie korzystałem. Pewnie gdybym ja pisał ten program od początku to zamiast tego makra użył bym wyrażenia [syntax=c]!(PIND &amp; (1&lt;&lt;K_WE1))[/syntax]<br /><br />Zresztą makra te korzystają z tego samego mechanizmu[syntax=c]#define bit_is_clear(sfr, bit) (!(_SFR_BYTE(sfr) &amp; _BV(bit)))[/syntax][syntax=c]#define bit_is_set(sfr, bit) (_SFR_BYTE(sfr) &amp; _BV(bit))[/syntax]<br /><br />Pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=204">jacekk232</a> — 31 maja 2014, o 19:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Nefarious19]]></name></author>
<updated>2014-05-31T09:24:29+01:00</updated>
<published>2014-05-31T09:24:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7242&amp;p=82886#p82886</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7242&amp;p=82886#p82886"/>
<title type="html"><![CDATA[Re: klawiaturka 4x4 Wilu88]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7242&amp;p=82886#p82886"><![CDATA[
Kolego <strong>jacekk232</strong>, chciałbym Cie o coś spytać, nigdzie nie zauważyłem definicji funkcji <strong>bit is clear()</strong>. Rozumiem że jest ona już wbudowana w avr_gcc? Jeżeli tak to zwraca ona jedynke wtedy gdy bit == 0, mam racje:)?<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 9 minutach ]</span></strong><br /><br />Ok, już znalazłem. Tu jest opisane co robią poszczególne funkcje:)<br /><br /><a href="http://avr.elektroda.eu/content/avr-gcc-opis-funkcji-biblioteki-avr-libc"  class="postlink">http://avr.elektroda.eu/content/avr-gcc-opis-funkcji-biblioteki-avr-libc</a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2500">Nefarious19</a> — 31 maja 2014, o 09:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RYSZARD M]]></name></author>
<updated>2014-05-31T06:36:05+01:00</updated>
<published>2014-05-31T06:36:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7242&amp;p=82882#p82882</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7242&amp;p=82882#p82882"/>
<title type="html"><![CDATA[Re: klawiaturka 4x4 Wilu88]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7242&amp;p=82882#p82882"><![CDATA[
Witam Pana i BARDZO A TO BARDZO DZIĘKUJĘ <br /><br />DZIAŁA WYŚMIENICIE <br /><br />Pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3171">RYSZARD M</a> — 31 maja 2014, o 06:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jacekk232]]></name></author>
<updated>2014-05-30T20:19:07+01:00</updated>
<published>2014-05-30T20:19:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7242&amp;p=82855#p82855</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7242&amp;p=82855#p82855"/>
<title type="html"><![CDATA[Re: klawiaturka 4x4 Wilu88]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7242&amp;p=82855#p82855"><![CDATA[
Poprawiłem nieznacznie ten kod i u mnie na ATB działa<br /><br />klaw.h<br />[syntax=c]#ifndef KLAW_H_<br />#define KLAW_H_<br /><br />#define PAD PORTD<br />#define K_WY1 1<br />#define K_WY2 2<br />#define K_WY3 3<br />#define K_WY4 4<br /><br />#define K_WE1 5<br />#define K_WE2 6<br />#define K_WE3 7<br /><br />char klaw_read(void);<br />void klaw_init();<br /><br />#endif /* KLAW_H_ */[/syntax]<br /><br />klaw.c<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &quot;klaw.h&quot;<br /><br /><br />void klaw_init() {<br /><br />//Ustawiani wejsc<br />DDRD &amp;=~(1&lt;&lt;K_WE1);<br />DDRD &amp;=~(1&lt;&lt;K_WE2);<br />DDRD &amp;=~(1&lt;&lt;K_WE3);<br /><br />//Ustawiani wyjsc<br /><br />DDRD |= (1&lt;&lt;K_WY1);<br />DDRD |= (1&lt;&lt;K_WY2);<br />DDRD |= (1&lt;&lt;K_WY3);<br />DDRD |= (1&lt;&lt;K_WY4);<br /><br />PORTD|= (1&lt;&lt;K_WE1);<br />PORTD|= (1&lt;&lt;K_WE2);<br />PORTD|= (1&lt;&lt;K_WE3);<br /><br />PORTD|=(1&lt;&lt;K_WY1);<br />PORTD|=(1&lt;&lt;K_WY2);<br />PORTD|=(1&lt;&lt;K_WY3);<br />PORTD|=(1&lt;&lt;K_WY4);<br />}<br /><br />char klaw_read(void){<br /><br />uint8_t wiersz;<br /><br />for(wiersz=1; wiersz&lt;5; wiersz++)<br />{<br /> PAD |= 0b00011110;//ustaw stany wysokie na wyjściach wierszy<br /> _delay_ms(1);<br /> PAD &amp;=~ (1&lt;&lt;wiersz);//ustaw stan niski na wybranym wierszu<br />// asm volatile(&quot;nop&quot;); asm volatile(&quot;nop&quot;);<br /> if(wiersz==1)<br /> {<br />  if(bit_is_clear(PIND,K_WE1)) return '1';<br />  else if(bit_is_clear(PIND,K_WE2))     return '2';<br />  else if(bit_is_clear(PIND,K_WE3))     return '3';<br /> }<br /> else if(wiersz==2)<br /> {<br />  if(bit_is_clear(PIND,K_WE1))return '4';<br />  else if(bit_is_clear(PIND,K_WE2))return '5';<br />  else if(bit_is_clear(PIND,K_WE3))return '6';<br /> }<br /> else if(wiersz==3)<br /> {<br />  if(bit_is_clear(PIND,K_WE1))return '7';<br />  else if(bit_is_clear(PIND,K_WE2))return '8';<br />  else if(bit_is_clear(PIND,K_WE3))return '9';<br /> }<br /> else if(wiersz==4){<br />  if(bit_is_clear(PIND,K_WE1))return '*';<br />  else if(bit_is_clear(PIND,K_WE2))return '0';<br />  else if(bit_is_clear(PIND,K_WE3))return '#';<br /> }<br /><br />}<br />return 0;<br />}[/syntax]<br /><br />main.c<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &quot;LCD/lcd44780.h&quot;<br />#include &quot;klaw.h&quot;<br /><br /><br />int main(void)<br />{<br />DDRA |= (1&lt;&lt;PA7);<br />PORTA |= (1&lt;&lt;PA7);<br /><br />        lcd_init();     /* inicjalizacja LCD */<br />        klaw_init();<br />        char przycisk;<br /><br />        lcd_str(&quot;Start...&quot;);<br /><br />        while(1)<br />        {<br /><br />przycisk = klaw_read();<br /><br />lcd_locate(1,0);<br />lcd_char(przycisk);<br />        }<br /><br />}[/syntax]<br /><br />Pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=204">jacekk232</a> — 30 maja 2014, o 20:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RYSZARD M]]></name></author>
<updated>2014-05-30T09:35:03+01:00</updated>
<published>2014-05-30T09:35:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7242&amp;p=82804#p82804</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7242&amp;p=82804#p82804"/>
<title type="html"><![CDATA[klawiaturka 4x4 Wilu88]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7242&amp;p=82804#p82804"><![CDATA[
Witam Państwo<br /><br />Moje pytanie brzmi - gdzie tkwi błąd w kodzie obsługi klawiaturki napisany przez Pana Wilu88,<br /><!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic814.html#p2286" >topic814.html#p2286</a><!-- l --><br />gdyż JA  <img src="https://forum.atnel.pl/images/smilies/icon_redface.gif" alt=":oops:" title="Zawstydzony" /> jestem zbyt (denny) aby to rozwikłać . Oczywiście posiadam zestaw Pana<br />Mirka SCORPIO i w miarę radzę sobie w kompilacjach i programowaniu scalaków lecz NAUKA <br />programowania Ciężko mnie wchodzi jak na razie (chyba) . Byłbym wdzięczny za POMOC.<br /><br />Pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3171">RYSZARD M</a> — 30 maja 2014, o 09:35</p><hr />
]]></content>
</entry>
</feed>