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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-03-26T17:55:05+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=58&amp;t=6505&amp;mode</id>
<entry>
<author><name><![CDATA[gordo]]></name></author>
<updated>2014-03-26T17:55:05+01:00</updated>
<published>2014-03-26T17:55:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6505&amp;p=75878#p75878</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6505&amp;p=75878#p75878"/>
<title type="html"><![CDATA[Re: Jak ustawić porty w tym kodzie:]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6505&amp;p=75878#p75878"><![CDATA[
<div class="quotetitle">programek napisał(a):</div><div class="quotecontent"><br />[syntax=c]#define LCD  PORTB<br />#define E  3<br />#define RS  2[/syntax]<br />Wydaje mi się że linia E ma być podpięta do PB3, a linia RS do PB2, a linie danych: ?.<br /></div><br /><br />linie danych do PB4 - PB7.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2592">gordo</a> — 26 mar 2014, o 17:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[KDziardziel]]></name></author>
<updated>2014-03-26T16:03:06+01:00</updated>
<published>2014-03-26T16:03:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6505&amp;p=75870#p75870</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6505&amp;p=75870#p75870"/>
<title type="html"><![CDATA[Re: Jak ustawić porty w tym kodzie:]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6505&amp;p=75870#p75870"><![CDATA[
OK, rozumim <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /> A mógłbyś podać jakiś normalny kod?<br /><br />Edit: Ołkej już ogarnąłem sobie odpowiednią bibliotekę <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3697">KDziardziel</a> — 26 mar 2014, o 16:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[programek]]></name></author>
<updated>2014-03-26T15:43:10+01:00</updated>
<published>2014-03-26T15:43:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6505&amp;p=75868#p75868</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6505&amp;p=75868#p75868"/>
<title type="html"><![CDATA[Re: Jak ustawić porty w tym kodzie:]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6505&amp;p=75868#p75868"><![CDATA[
No trochę dziwny jest ten kod, w innych libsach do lcd jest coś takiego jak np w niebieskiej książce Mirka:<br />[syntax=c]// tu konfigurujemy port i piny do jakich podłączymy linie D7..D4 LCD<br />#define LCD_D7PORT  B<br />#define LCD_D7 7<br />#define LCD_D6PORT  B<br />#define LCD_D6 6<br />#define LCD_D5PORT  B<br />#define LCD_D5 5<br />#define LCD_D4PORT  B<br />#define LCD_D4 4<br /><br />// tu definiujemy piny procesora do których podłączamy sygnały RS,RW, E<br />#define LCD_RSPORT B<br />#define LCD_RS 0<br /><br />#define LCD_RWPORT B<br />#define LCD_RW 1<br /><br />#define LCD_EPORT B<br />#define LCD_E 2[/syntax]<br />i każdy pin jest osobno definiowany. A tu jest coś takiego:<br />[syntax=c]#define LCD  PORTB<br />#define E  3<br />#define RS  2[/syntax]<br />Wydaje mi się że linia E ma być podpięta do PB3, a linia RS do PB2, a linie danych: ?.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1526">programek</a> — 26 mar 2014, o 15:43</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[KDziardziel]]></name></author>
<updated>2014-03-26T15:23:57+01:00</updated>
<published>2014-03-26T15:23:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6505&amp;p=75867#p75867</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6505&amp;p=75867#p75867"/>
<title type="html"><![CDATA[Re: Jak ustawić porty w tym kodzie:]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6505&amp;p=75867#p75867"><![CDATA[
To znaczy, że sam muszę sobie skonfigurować tak?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3697">KDziardziel</a> — 26 mar 2014, o 15:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[programek]]></name></author>
<updated>2014-03-26T15:18:49+01:00</updated>
<published>2014-03-26T15:18:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6505&amp;p=75866#p75866</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6505&amp;p=75866#p75866"/>
<title type="html"><![CDATA[Re: Jak ustawić porty w tym kodzie:]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6505&amp;p=75866#p75866"><![CDATA[
Od razu lepiej.... <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br /><br />Wydaje mi się że tu jest konfiguracja:<br />[syntax=c]#define LCD  PORTB<br />#define E  3<br />#define RS  2[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1526">programek</a> — 26 mar 2014, o 15:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[KDziardziel]]></name></author>
<updated>2014-03-26T15:14:26+01:00</updated>
<published>2014-03-26T15:14:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6505&amp;p=75865#p75865</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6505&amp;p=75865#p75865"/>
<title type="html"><![CDATA[Re: Jak ustawić porty w tym kodzie:]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6505&amp;p=75865#p75865"><![CDATA[
O_O dodałem przecie O_O<br /><br />Edit:<br />Działa <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3697">KDziardziel</a> — 26 mar 2014, o 15:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[programek]]></name></author>
<updated>2014-03-26T15:13:22+01:00</updated>
<published>2014-03-26T15:13:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6505&amp;p=75864#p75864</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6505&amp;p=75864#p75864"/>
<title type="html"><![CDATA[Re: Jak ustawić porty w tym kodzie:]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6505&amp;p=75864#p75864"><![CDATA[
Dodaj kod za pomocą syntax=c bo trochę ciężko się odczytać....<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1526">programek</a> — 26 mar 2014, o 15:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[KDziardziel]]></name></author>
<updated>2014-03-26T15:15:15+01:00</updated>
<published>2014-03-26T15:03:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6505&amp;p=75862#p75862</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6505&amp;p=75862#p75862"/>
<title type="html"><![CDATA[Jak ustawić porty w tym kodzie:]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6505&amp;p=75862#p75862"><![CDATA[
Witam!<br />Znalazłem w necie gotowy kod dla LCD'ka, nie wiem tylko pod jakie porty mam podpiąć poszczególne wejścia/wyjścia. Jak można to skonfigurować?<br />[syntax=c]#include &lt;avr/io.h&gt;<br />//<br />#define LCD  PORTB<br />#define E  3<br />#define RS  2<br />//<br />#define SET_E   LCD |= _BV(E)<br />#define CLR_E   LCD &amp;= ~_BV(E)<br />//<br />#define SET_RS  LCD |= _BV(RS)<br />#define CLR_RS  LCD &amp;= ~_BV(RS)<br /><br />// funkcja opóźniająca o x*1ms<br />void waitms(char x)<br />{<br />unsigned char a, b; // zmnienne licznikowe<br />for( ; x &gt; 0; --x) // ta pętla zostanie wykonana x-razy<br />  for(b = 10; b &gt; 0; --b) // a ta 10 razy<br />for(a = 100; a &gt; 0; --a) // natomiast ta 100 razy<br />__asm(&quot;nop&quot;); // dodatkowa instrukcja opóźniająca o 1 cykl<br />// razem to da opóźnienie ok. x * 1ms<br />// x od 0 do 255<br />}<br /><br />// pcodedura zapisu bajtu do wyświetlacza LCD<br />// bez rozróżnienia instrukcja/dana<br />void write_to_lcd(char x)<br />{<br />SET_E; // ustaw na E stan wysoki<br />LCD = ((LCD &amp; 0x0F) | (x &amp; 0xF0)); // zapis pierwszej połówki bajtu<br />CLR_E; // opadające zbocze na E -&gt; zapis do wyświetlacza<br />SET_E; // ustaw na E stan wysoki<br />LCD = ((LCD &amp; 0x0F) | ((x &amp; 0x0F) &lt;&lt; 4)); // zapis drugiej połowki bajtu<br />CLR_E; // opadające zbocze na E -&gt; zapis do wyświetlacza<br />waitms(1); // czekaj 1ms<br />}<br /><br />// procedura zapisu instrukcji do wyświetlacza LCD<br />void write_command(char x)<br />{<br />CLR_RS; // niski stan na RS -&gt; zapis instrukcji<br />write_to_lcd(x); // zapis do LCD<br />}<br /><br />// procedura zapisu danej do wyświetlacza LCD<br />void write_char(char x)<br />{<br />SET_RS; // wysoki stan na RS -&gt; zapis danej<br />write_to_lcd(x); // zapis do LCD<br />}<br /><br />// procedura zapisu tekstu do wyświetlacza LCD<br />void write_text(char * s)<br />{<br />while(*s) // do napotkania 0<br />  {<br />  write_char(*s); // zapisz znak wskazywany przez s na LCD<br />  s++; // zwiększ s (przygotuj nastepny znak)<br />  }<br />}<br /><br />// procedura inicjalizacji wyświetlacza LCD<br />void lcd_init(void)<br />{<br />waitms(15); // czekaj 15ms na ustabilizowanie się napięcia zasilającego<br />CLR_E; // E = 0<br />CLR_RS; // RS = 0<br />char i; // zmianna licznikowa<br />for(i = 0; i &lt; 3; i++) // trzykrotne powtórzenie bloku instrukcji<br />  {<br />  SET_E; // E = 1<br />  LCD &amp;= 0x3F; //<br />  CLR_E; // E = 0<br />  waitms(5); // czekaj 5ms<br />  }<br />SET_E; // E = 1<br />LCD &amp;= 0x2E; //<br />CLR_E; // E = 0<br />waitms(1); // czekaj 1ms<br />write_command(0x28); // interfejs 4-bity, 2-linie, znak 5x7<br />write_command(0x08); // wyłącz LCD, kursor i miganie<br />write_command(0x01); // czyść LCD<br />write_command(0x06); // bez przesuwania w prawo<br />write_command(0x0C); // włącz LCD, bez kursora i mrugania<br />}<br /><br />// program główny<br />int main(void)<br />{<br />// konfiguracja portów we/wy<br />DDRB = 0xFF;<br />DDRD = 0xFC;<br />PORTB = 0xFF;<br />PORTD = 0xF7;<br />// inicjalizacja LCD<br />lcd_init();<br />// zapisz na LCD przykładowy tekst<br />write_text(&quot;Ala ma kota :D&quot;);<br />// petla nieskończona<br />while(1);<br />return 0;<br />}[/syntax]<br />Pozdrawiam i dziękuje za pomoc <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=3697">KDziardziel</a> — 26 mar 2014, o 15:03</p><hr />
]]></content>
</entry>
</feed>