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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-04-12T23:24:30+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=8&amp;t=6737&amp;mode</id>
<entry>
<author><name><![CDATA[jacekk232]]></name></author>
<updated>2014-04-12T23:24:30+01:00</updated>
<published>2014-04-12T23:24:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6737&amp;p=77819#p77819</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6737&amp;p=77819#p77819"/>
<title type="html"><![CDATA[Re: HD44780 - zakresy adresów]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6737&amp;p=77819#p77819"><![CDATA[
Zamiast wysyłać 32 puste znaki spróbowałbym zmodyfikować bibliotekę tak aby podczas wyświetlania stringa była liczona aktualna pozycja kursora. I w przypadku gdyby następny znak miałby być zapisany w RAM poza obszarem wyświetlania, polecenie locate ustawiało by kursor na początku drugiej linii.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=204">jacekk232</a> — 12 kwi 2014, o 23:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sq8dsr]]></name></author>
<updated>2014-04-12T23:02:58+01:00</updated>
<published>2014-04-12T23:02:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6737&amp;p=77814#p77814</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6737&amp;p=77814#p77814"/>
<title type="html"><![CDATA[Re: HD44780 - zakresy adresów]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6737&amp;p=77814#p77814"><![CDATA[
Jasne, czyli żeby ten wyświetlacz traktował te 16 kolumn jako jeden wiersz trzeba by najpierw, przy każdym wysłaniu stringa, wysłać najpierw 32 jakieś znaki żeby zajęły pierwsze 32 miejsca w buforze.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1589">sq8dsr</a> — 12 kwi 2014, o 23:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jacekk232]]></name></author>
<updated>2014-04-12T22:44:39+01:00</updated>
<published>2014-04-12T22:44:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6737&amp;p=77807#p77807</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6737&amp;p=77807#p77807"/>
<title type="html"><![CDATA[Re: HD44780 - zakresy adresów]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6737&amp;p=77807#p77807"><![CDATA[
Pamięć RAM sterownika posiada 80 bajtów. Więc w wyświetlaczu 2x40 cała pamięć jest wyświetlana. I dlatego po zapisaniu jednej linii kursor od razu przechodzi do drugiej. W wyświetlaczach mających mniej niż 40 znaków w linii te znaki które nie mieszczą się w linii są zapisane w pamięci RAM wyświetlacza poza obszarem wyświetlania i żeby je wyświetlić należy przewinąć wyświetlacz odpowiednią komendą.<br /><br />Czyli wyobraź sobie że twój wyświetlacz składa się z dwóch linii po 40 znaków. Ale w każdej linii jest widoczne tylko osiem znaków. Reszta jest tak jakby poza obszarem wyświetlania. Tak więc po przekroczeniu ostatniego &quot;widzialnego&quot; znaku kursor nie przeskakuje na początek następnej linii.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=204">jacekk232</a> — 12 kwi 2014, o 22:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sq8dsr]]></name></author>
<updated>2014-04-12T22:14:53+01:00</updated>
<published>2014-04-12T22:14:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6737&amp;p=77805#p77805</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6737&amp;p=77805#p77805"/>
<title type="html"><![CDATA[Re: HD44780 - zakresy adresów]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6737&amp;p=77805#p77805"><![CDATA[
Nie, to nic nie da.<br />Pierwsze 8 znaków ze stringa ląduje dobrze. Następnie trzeba przesłać następne 32 znaki, żeby przeszło do drugiej połówki.<br /><br /><br />---EDYCJA---<br />Zresztą zachowanie jest identyczne przy 2x8.<br /><br />Ja rozumiem to tak, że wprowadzenie do biblioteki definicji ilości wierszy i kolumn jest potrzebne do tego by po przekroczeniu pozycji ostatniego znaku w wierszu &quot;kursor&quot; przeskoczył do drugiego wiersza.<br />I przykładowo na 2x40 to działa doskonale.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1589">sq8dsr</a> — 12 kwi 2014, o 22:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[acid3]]></name></author>
<updated>2014-04-12T21:52:19+01:00</updated>
<published>2014-04-12T21:52:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6737&amp;p=77799#p77799</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6737&amp;p=77799#p77799"/>
<title type="html"><![CDATA[Re: HD44780 - zakresy adresów]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6737&amp;p=77799#p77799"><![CDATA[
Jest późno więc mogę coś zamotać...<br /><br />A nie powinieneś przypadkiem dać <div class="quotetitle">sq8dsr napisał(a):</div><div class="quotecontent"><br />#define LCD_Y 1         // ilość wierszy wyświetlacza LCD<br />#define LCD_X 16 // ilość kolumn wyświetlacza LCD<br /></div><br /><br />a tu :<br /><br /><div class="quotetitle">sq8dsr napisał(a):</div><div class="quotecontent"><br />//#define LCD_LINE1 0x00          // adres 1 znaku 1 wiersza<br />#define LCD_LINE1 0x40          // adres 1 znaku 2 wiersza<br />#define LCD_LINE3 0x10          // adres 1 znaku 3 wiersza<br />#define LCD_LINE4 0x50          // adres 1 znaku 4 wiersza<br /></div><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=944">acid3</a> — 12 kwi 2014, o 21:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sq8dsr]]></name></author>
<updated>2014-04-12T21:48:04+01:00</updated>
<published>2014-04-12T21:48:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6737&amp;p=77796#p77796</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6737&amp;p=77796#p77796"/>
<title type="html"><![CDATA[HD44780 - zakresy adresów]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6737&amp;p=77796#p77796"><![CDATA[
Witam<br /><br />Nieśmiertelny temat czyli LCD <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /> Ale trochę (chyba) nietrywiany problem / zagadnienie.<br /><br />1. Jest sobie LCD 1x16 Niby typowa sprawa.<br />2. Jest sobie biblioteka do obsługi HD44780 autorstwa Mirka oczywiście, choć to nie ma znaczenia czyja.<br /><br />W bibliotece mamy (w definicjach) oczywisty i zrozumiały fragment:<br />[syntax=c]#define LCD_LINE1 0x00// adres 1 znaku 1 wiersza<br />#define LCD_LINE2 0x40// adres 1 znaku 2 wiersza<br />#define LCD_LINE3 0x10  // adres 1 znaku 3 wiersza<br />#define LCD_LINE4 0x50  // adres 1 znaku 4 wiersza[/syntax]<br />Jak wiadomo ten fragment jest brany pod uwagę dla LCD innego niż 4x16<br /><br />Mój wyświetlacz jest 1x16 więc fragment go dotyczy.<br />Jednak czytając notę PDF do LCD okazuje się, że mimo posiadania fizycznie jednego wiersza. Sterownik jest podłączony do LCD w taki sposób, że pierwsze 8 pozycji (kolumn) będzie pierwszym wierszem, a kolejne 8 kolumn będzie wierszem drugim.<br />Przynajmniej ja to tak rozumiem:<br /><a href="http://forum.atnel.pl/_obrazki/o/1589/4b1424396bbbb19802bd41dd1dd728a1.PNG"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/1589/4b1424396bbbb19802bd41dd1dd728a1.PNG" alt="Obrazek" /></a><br /><br />Ustawiam więc w bibliotece tak:<br />[syntax=c]#define LCD_Y 2// ilość wierszy wyświetlacza LCD<br />#define LCD_X 8// ilość kolumn wyświetlacza LCD[/syntax]<br /><br />Jednak efekt jest nadal niepoprawny, wyświetlanie odbywa się tylko na 8 pierwszych kolumnach.<br />Dopiero gdy zrobię tak:<br />[syntax=c]lcd_locate(1,0);<br />lcd_str(&quot;test test&quot;);[/syntax]<br /><br />Mogę wyświetlać na pozycjach 8-16.<br /><br />Dodam, że posiadam jeszcze drugi taki wyświetlacz, innego producenta, który zachowuje się identycznie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1589">sq8dsr</a> — 12 kwi 2014, o 21:48</p><hr />
]]></content>
</entry>
</feed>