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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-04-22T20:36:15+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=23&amp;t=950&amp;mode</id>
<entry>
<author><name><![CDATA[Malutki_27]]></name></author>
<updated>2013-04-22T20:35:01+01:00</updated>
<published>2013-04-22T20:35:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=950&amp;p=34999#p34999</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=950&amp;p=34999#p34999"/>
<title type="html"><![CDATA[Re: Atmega + S1D15705 = biblioteka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=950&amp;p=34999#p34999"><![CDATA[
Anty o czym ty do mnie mówisz ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> . A na poważnie ..... bardziej mnie interesował tryb tekstowy dla tego wyświetlacza , dlatego powiedziałbym że zostało użyte z premedytacją <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> , ale wtedy bym się lekko minął z prawdą. Po prostu tarfił gdziesz mi się kawałek kodu z gotowymi funkcjami i został przystosowany do mich potrzeb <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Hehheee, a tam ...... takie sobie tam pocżątki <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=225">Malutki_27</a> — 22 kwi 2013, o 20:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2013-04-22T14:00:32+01:00</updated>
<published>2013-04-22T14:00:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=950&amp;p=34961#p34961</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=950&amp;p=34961#p34961"/>
<title type="html"><![CDATA[Re: Atmega + S1D15705 = biblioteka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=950&amp;p=34961#p34961"><![CDATA[
powiedzmy że nic z tego nie chce działac w trybie 8bit zaraza na razie mam ciekawsze zajęcia i odpuściłem<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 22 kwi 2013, o 14:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Badman]]></name></author>
<updated>2013-04-22T13:39:11+01:00</updated>
<published>2013-04-22T13:39:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=950&amp;p=34959#p34959</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=950&amp;p=34959#p34959"/>
<title type="html"><![CDATA[Re: Atmega + S1D15705 = biblioteka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=950&amp;p=34959#p34959"><![CDATA[
SunRiver: Mam okazję tanio kupić wyświetlacz na SSD1289. Poradziłeś sobie z nim na AVR ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=916">Badman</a> — 22 kwi 2013, o 13:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2012-03-27T14:10:26+01:00</updated>
<published>2012-03-27T14:10:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4666#p4666</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4666#p4666"/>
<title type="html"><![CDATA[Re: Atmega + S1D15705 = biblioteka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4666#p4666"><![CDATA[
<div class="quotetitle">Malutki_27 napisał(a):</div><div class="quotecontent"><br />SunRiver<br />A nie lepiej sie wzorowac na bibliotece od Arudino, tam jest zaimplementowana obsługa 8bit<br /></div><br /><br /><br />Wiem bo sam próbowałem czy będzie się chciał odzywać , ale .... tak jest pewne ale <br />backboardy pod ten LCD dla duino się różnią miedzy innymi tym że można sprzętowo przełączyć zworka 8/16bit<br />i jest gitara dajemy 8bit i wszystko śmiga ...<br /><br />ale nie z moja wersją PCB dla LCD  tu muszę napisać programowe przełączenie na tryb 8bit:(<br />tylko po to by nie kombinować sprzętowo <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br /><br />edit:<br /><br />a jednak bez grzebania w sprzęcie się nie obejdzie <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />no nic zrobię zatem pcb  z zatrzaskiem (np74LV573) pod HY32 i w ten sposób będę miał możliwość uruchomienia LCD-ka w trybie 8Bit<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 27 mar 2012, o 14:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Malutki_27]]></name></author>
<updated>2012-03-27T13:59:46+01:00</updated>
<published>2012-03-27T13:59:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4665#p4665</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4665#p4665"/>
<title type="html"><![CDATA[Re: Atmega + S1D15705 = biblioteka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4665#p4665"><![CDATA[
No to dobrze,bo tą informacją uśnieżyłeś mój głęboko skrywany niepokój <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=225">Malutki_27</a> — 27 mar 2012, o 13:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-03-27T13:56:13+01:00</updated>
<published>2012-03-27T13:56:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4664#p4664</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4664#p4664"/>
<title type="html"><![CDATA[Re: Atmega + S1D15705 = biblioteka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4664#p4664"><![CDATA[
No będzie opisane w drugiej części wiemy czego <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> i będziesz mógł od razu zaadoptować to do swoich potrzeb.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 27 mar 2012, o 13:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Malutki_27]]></name></author>
<updated>2012-03-27T13:31:53+01:00</updated>
<published>2012-03-27T13:31:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4663#p4663</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4663#p4663"/>
<title type="html"><![CDATA[Re: Atmega + S1D15705 = biblioteka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4663#p4663"><![CDATA[
Muszę pomyśleć nad jakimś filmikem ale to troszkę później, bo jak na razie to odpuściłem sobie funcję graficzne typu elipsy, koła i takie tam, bo przyznam i mam nadzieję że będzie to fajnie opisane w drugiej części wiemy czego <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />, A po drugie &quot;waga&quot; biblioteki math.h mnie przeraziła i postanowiłem że przysiąde do tego za jakiś czas i postaram się zrobić to &quot;na okrągło&quot; czyli znowu będę wyłamywał otwarte drzwi <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=225">Malutki_27</a> — 27 mar 2012, o 13:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-03-27T13:26:27+01:00</updated>
<published>2012-03-27T13:26:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4662#p4662</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4662#p4662"/>
<title type="html"><![CDATA[Re: Atmega + S1D15705 = biblioteka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4662#p4662"><![CDATA[
No dlatego mówiłem że może się mylę - bo nie mam tego pod ręką - a z drugiej strony rzeczywiście to jest odczyt a nie zapis DO wyświetlacza.<br /><br />Ja tam nie patrzę na taki kod jak na jakieś fragmenty gdzie miałbym wyszukiwać rozwiązań z książki - to jest twoje rozwiązanie i już <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ... i jeszcze raz powiem, że miło słyszeć że mogłem być jakoś pomocny.<br /><br />Nie jestem w stanie natomiast, jak sobie zdajesz sprawę super dokładnie przeanalizować programu bo to się znacznie lepiej robi jak człowiek ma sprzęt w łapkach. No ale trudno nie wierzyć że ci to nie działa. Chociaż aż przydałby się może jakiś filmik na youtube z przykładów wykorzystania takiej biblioteki na żywo <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .... może ci się uda - to byłoby ukoronowaniem tego projektu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 27 mar 2012, o 13:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Malutki_27]]></name></author>
<updated>2012-03-27T13:26:31+01:00</updated>
<published>2012-03-27T13:20:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4660#p4660</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4660#p4660"/>
<title type="html"><![CDATA[Re: Atmega + S1D15705 = biblioteka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4660#p4660"><![CDATA[
Dziękuję za uznanie <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Przyznam się że spodziewałem się bardziej &quot;radykalnej&quot; konstruktywnej krytyki <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Niestety te nop-y są potrzebne gdyż wyświetlacz nie nadąża z ustabilizowaniem stanów na portach i odczytują się jakieś kwiatki.<br />Zwróć uwagę że są w stawione w funkcjach służących do odczytu danych z wyświetlacza, bo to uC musi poczekać na wyświetlacz, natomiast w drugą stronę nie ma takiego problemu.<br /><br />Mirku to własnie twoja książka przyczyniła się do popełnienia takiego występku z mojej strony <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br />Zresztą jak przeglądałeś kod to napewno znalazłeś kilka swoich rozwiązań, i co tu ukrywac makra upraszczające dostęp do portów są jak na razie moim konikiem <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br /><br />SunRiver<br />A nie lepiej sie wzorowac na bibliotece od Arudino, tam jest zaimplementowana obsługa 8bit<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=225">Malutki_27</a> — 27 mar 2012, o 13:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-03-27T12:46:36+01:00</updated>
<published>2012-03-27T12:46:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4658#p4658</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4658#p4658"/>
<title type="html"><![CDATA[Re: Atmega + S1D15705 = biblioteka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4658#p4658"><![CDATA[
Wpadłem tu i widzę fajny projekt <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> jest mi bardzo miło jeśli chociaż w minimalny sposób moja książka pomogła w powstaniu tej biblioteki (nawet pomimo czytania odwrotnie książki <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ) ..... Niech będzie, że udaję że nie zobaczyłem tego <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />A tak nawiasem mówiąc - to czy w ogóle konieczne są te NOP'y ? tak mi się coś wydaje że bez nich wszystko będzie działać poprawnie, przecież wszystkie te operacje:<br /><br />[syntax=c]    if(PIN(LCD_PD0)&amp;(1&lt;&lt;LCD_D0)) rbyte |= (1&lt;&lt;0);<br />    if(PIN(LCD_PD1)&amp;(1&lt;&lt;LCD_D1)) rbyte |= (1&lt;&lt;1);<br />    if(PIN(LCD_PD2)&amp;(1&lt;&lt;LCD_D2)) rbyte |= (1&lt;&lt;2);<br />    if(PIN(LCD_PD3)&amp;(1&lt;&lt;LCD_D3)) rbyte |= (1&lt;&lt;3);<br />    if(PIN(LCD_PD4)&amp;(1&lt;&lt;LCD_D4)) rbyte |= (1&lt;&lt;4);<br />    if(PIN(LCD_PD5)&amp;(1&lt;&lt;LCD_D5)) rbyte |= (1&lt;&lt;5);<br />    if(PIN(LCD_PD6)&amp;(1&lt;&lt;LCD_D6)) rbyte |= (1&lt;&lt;6);<br />    if(PIN(LCD_PD7)&amp;(1&lt;&lt;LCD_D7)) rbyte |= (1&lt;&lt;7);[/syntax]<br /><br />wystarczą zamiast tych NOP'ów i to z dużym zapasem - skoro przyjęta została taka a nie inna taktyka odnośnie obsługi transmisji i pinów procesora. Tzn mogę się tu mylić bo z tym konkretnym wyświetlaczem nie miałem do czynienia, ale zwykle przy takiej transmisji powinno to się spokojnie wyrabiać i to do 20MHz taktowania procka. <br /><br />Chyba że sprawdziłeś namacalnie, empirycznie - doświadczalnie, że likwidując te NOPy zaczyna coś źle działać. Ale jak mówię to dziwne bo od opadającego do narastającego zbocza CS1 te wszystkie IF'y powinny zająć sporo czasu.<br /><br />Generalnie fajnie wygląda taka biblioteczka.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 27 mar 2012, o 12:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2012-03-27T12:43:23+01:00</updated>
<published>2012-03-27T12:43:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4657#p4657</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4657#p4657"/>
<title type="html"><![CDATA[Re: Atmega + S1D15705 = biblioteka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4657#p4657"><![CDATA[
oczywiście że może pracować z mniejszą ilością pinów właśnie w trybie 8bit <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />co d SPI to niestety zależy od konkretnego pcb , ja mam w sumie wersje ultra uboga jaką jest HY32:(<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 27 mar 2012, o 12:43</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Malutki_27]]></name></author>
<updated>2012-03-27T11:25:53+01:00</updated>
<published>2012-03-27T11:25:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4656#p4656</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4656#p4656"/>
<title type="html"><![CDATA[Re: Atmega + S1D15705 = biblioteka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4656#p4656"><![CDATA[
Dodałem taką informację wedle sugestii, a jak złapię chwilkę to sprawdzę przy jakiej częstotliwości się wykłada o ile się wykłada.<br />MirkoT:<br />Tego się obawiam, ale cichaczem liczę że może jakoś zostanie to nie zauważone. <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br /><br />SunRiver:<br />O ile nie popełniłem błędów w czytaniu jego noty do zdaje się że potrafi też pracować w SPI.<br />No 8bit to już nie jest tak źle <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> i  z tego co widzę nie jest też wcale drogi.<br />Swoją drogą nie wiem czy zwróciłeś uwagę ale 15705 i 15710 potrafi też pracować z mniejszą ilością pinów i przyznam się że zaciekawiło mnie to.<br /><br />Tylko znając życie będzie problem z inicjalizacją bo pewnie tak jak u ciebie w HY tak i w tych wyświetlaczach cholernika interfejs inicjalizuje się na samym początku stanami pinów. W związku z tym zabiorę się za to po następnej lekcji bo od LCD, GLCD na razie trzeba odpocząć. <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Edit:<br />Przy 1 Mhz też bez problemu się wyrabia z tymi pętali nop<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=225">Malutki_27</a> — 27 mar 2012, o 11:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2012-03-27T11:09:21+01:00</updated>
<published>2012-03-27T11:09:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4655#p4655</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4655#p4655"/>
<title type="html"><![CDATA[Re: Atmega + S1D15705 = biblioteka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4655#p4655"><![CDATA[
Tak to prawda jest , że zależy od taktowania i tu może być kłopot <br />fizycznie można dodać funkcje która to załatwi <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Malutki_27:<br /><br />A tam za dużo pinów pracuje w trybie 16 bit świetnie  ale na tryb 8bit się już skubaniutki nie bardzo chce przełączyć <br />ale zmęczę to jakem SunRiver <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />  bo mam sporo tych LCDkow <br /><br />No uwaga jak nic się należy <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=58">SunRiver</a> — 27 mar 2012, o 11:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2012-03-27T19:38:54+01:00</updated>
<published>2012-03-27T11:04:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4654#p4654</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4654#p4654"/>
<title type="html"><![CDATA[Re: Atmega + S1D15705 = biblioteka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4654#p4654"><![CDATA[
<div class="quotetitle">Malutki_27 napisał(a):</div><div class="quotecontent"><br />Pozatym trzeba by zacząć lekcję nr 5, co prawda dziwnym trafem książkę mam otwartą na na lekcji 19, ale ja zawsze jakoś innaczej czytałem i czytam książki <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /></div><br /><br />Lepiej uważaj bo dostaniesz uwagę do dzienniczka <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /> <br />Pan Mirek tu już nieraz ostrzegał, że kolejność lekcji nie jest przypadkowa <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=189">MirkoT</a> — 27 mar 2012, o 11:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2012-03-27T11:01:51+01:00</updated>
<published>2012-03-27T11:01:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4653#p4653</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4653#p4653"/>
<title type="html"><![CDATA[Re: Atmega + S1D15705 = biblioteka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4653#p4653"><![CDATA[
Wygląda na to, że kod jest zależny od taktowania procka.<br />Bo nop-y będą miały różną długość w zależności od zegara. Może to trzebaby napisać gdzieś w opisie biblioteki? Inaczej może się okazać, że ktoś zacznie marudzić &quot;no zrobiłem a to mi nie działa <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> co to za badziewny kod jest&quot;  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />To tylko taka mała uwaga<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 27 mar 2012, o 11:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Malutki_27]]></name></author>
<updated>2012-03-27T10:53:56+01:00</updated>
<published>2012-03-27T10:53:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4652#p4652</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4652#p4652"/>
<title type="html"><![CDATA[Re: Atmega + S1D15705 = biblioteka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4652#p4652"><![CDATA[
<div class="quotetitle">SunRiver napisał(a):</div><div class="quotecontent"><br />Ja teraz dla odmiany męczę LCD 3,2&quot; z dotykiem HY32D  na sterowniku  SSD1289<br /></div><br /><br />Łojej jak dla mnie to on za duzo pinow ma <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br />Pozatym trzeba by zacząć lekcję nr 5, co prawda dziwnym trafem książkę mam otwartą na na lekcji 19, ale ja zawsze jakoś innaczej czytałem i czytam książki <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=225">Malutki_27</a> — 27 mar 2012, o 10:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2012-03-27T10:52:47+01:00</updated>
<published>2012-03-27T10:52:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4651#p4651</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4651#p4651"/>
<title type="html"><![CDATA[Re: Atmega + S1D15705 = biblioteka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4651#p4651"><![CDATA[
ale coś mam nie tak z aparatem buntuje się ostrość czasem nie łapie <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 27 mar 2012, o 10:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2012-03-27T10:51:29+01:00</updated>
<published>2012-03-27T10:51:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4650#p4650</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4650#p4650"/>
<title type="html"><![CDATA[Re: Atmega + S1D15705 = biblioteka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4650#p4650"><![CDATA[
Nawet nam się łapka Suna załapała na zdjęcie  <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=189">MirkoT</a> — 27 mar 2012, o 10:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2012-03-27T10:22:47+01:00</updated>
<published>2012-03-27T10:22:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4649#p4649</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4649#p4649"/>
<title type="html"><![CDATA[Re: Atmega + S1D15705 = biblioteka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4649#p4649"><![CDATA[
No ładne cacko - fiu fiu fiu ....<br /><br />Moje gratulacje , działa wyśmienicie , no musiałem co nieco zmienić  bo jak wiesz mam trochę większy LCD  na tym sterowniku<br />Ja teraz dla odmiany męczę LCD 3,2&quot; z dotykiem HY32D  na sterowniku  SSD1289<br /><br /><a href="http://img141.imageshack.us/i/s6301589.jpg/"  class="postlink"><img src="http://img141.imageshack.us/img141/8092/s6301589.th.jpg" alt="Obrazek" /></a><br /><a href="http://img526.imageshack.us/i/s6301590x.jpg/"  class="postlink"><img src="http://img526.imageshack.us/img526/8432/s6301590x.th.jpg" alt="Obrazek" /></a><br /><br />O ile z LPC i STM32 niema problemu to z AVR ma swoje zdanie na temat działania i ni huhu <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=58">SunRiver</a> — 27 mar 2012, o 10:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Malutki_27]]></name></author>
<updated>2013-04-22T20:36:15+01:00</updated>
<published>2012-03-27T10:08:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4648#p4648</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4648#p4648"/>
<title type="html"><![CDATA[Atmega + S1D15705 = biblioteka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=950&amp;p=4648#p4648"><![CDATA[
Szanowni Państwo <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Ponieważ jakiś czas temu trafił mi się w/w wyświetlacz graficzny, a nigdzie nie znalazłem działającej ( no z dwoma wyjątkami ) biblioteki to niego,<br />więc postanowiłem sklecić coś samemu. A poniweważ wyszło to całkiem fajnie ( wg. mojej subiektywnej opini ) postanowiłem udostepnić pliczki dla szerszego grona, z jednym Malutkim zastrzeżeniem. Jeżeli ktoś ma zamiar publikować ten kod na innych forach to proszę o umieszczenie linku do tego forum.<br /><br /><br />Plik nagłówkowy<br />[syntax=c]/*<br /> * s1d15705.h<br /> *<br /> *  Created on: 19-03-2012<br /> *      Author: Malutki_27<br /> *forum.atnel.pl<br />*/<br />#ifndef S1D15705_H_<br />#define S1D15705_H_<br />#include &lt;avr/pgmspace.h&gt;<br />// Makra ulatwiajace zycie<br />// *** PORT<br />#define PORT(x) SPORT(x)<br />#define SPORT(x) (PORT##x)<br />// *** PIN<br />#define PIN(x) SPIN(x)<br />#define SPIN(x) (PIN##x)<br />// *** DDR<br />#define DDR(x) SDDR(x)<br />#define SDDR(x) (DDR##x)<br /><br />// Konfiguracja portow data<br /><br />// Data port D0<br />#define LCD_PD0 D<br />#define LCD_D0 0<br />// Data port D1<br />#define LCD_PD1 D<br />#define LCD_D1 1<br />// Data port D2<br />#define LCD_PD2 D<br />#define LCD_D2 2<br />// Data port D3<br />#define LCD_PD3 D<br />#define LCD_D3 3<br />// Data port D4<br />#define LCD_PD4 D<br />#define LCD_D4 4<br />// Data port D5<br />#define LCD_PD5 D<br />#define LCD_D5 5<br />// Data port D6<br />#define LCD_PD6 D<br />#define LCD_D6 6<br />// Data port D7<br />#define LCD_PD7 D<br />#define LCD_D7 7<br /><br />// Konfiguracja portów do sterowania<br /><br />// Data port RD<br />#define LCD_PRD C<br />#define LCD_RD 0<br />// Data port WR<br />#define LCD_PWR C<br />#define LCD_WR 1<br />// Data port A0<br />#define LCD_PA0 C<br />#define LCD_A0 2<br />// Data port RESET<br />#define LCD_PRES C<br />#define LCD_RES 3<br />// Data port CS1<br />#define LCD_PCS1 C<br />#define LCD_CS1 4<br /><br />// Komendy wywietlacza<br /><br />#define ON 1<br />#define OFF0<br /><br />    // (1) Display ON/OFF 1- ON, 0 - OFF<br />    // Włącza lub wyłącza ekran<br />#define DISP_ONOFF0xAE<br />    // (2) Display start Line<br />    // Wartosci 0 - 63<br />#define DISP_START_LINE0x40<br />    // (3) Page address Set<br />    // Wartosci 0 - 7<br />#define DISP_PAGE_ADDR0xB0<br />    // (4) Column Address Set<br />    //  ******KOMENDA 2-BAJTOWA*********<br />#define DISP_COL_ADDR0x10<br />    // (8) ADC Select<br />    // Noraml - ON, Reversal - OFF<br />#define DISP_ADC0xA0<br />    // (9) Display Normal Rotation/Reversal<br />    //  Normal - OFF, Reversal - ON<br />#define DISP_TYPE0xA6<br />    // (10) Display All Lighting Wyłączone - OFF, Wlaczone - ON<br />    // Powoduje zapalenie wszytskich pikesli wyswietlacza bez zmiany<br />    // zawartosci RAM<br />#define DISP_ALL_LIGHT0xA4<br />    // (11) LCD BIAS BIAS7 - ON, BIAS9 - OFF<br />    // Umożliwia uzyskanie większego lub mniejszego zaciemnienia pikseli<br />#define DISP_BIAS0xA2<br />    // (14) RESET<br />    // Resetuje wszytskie ustawienia, RAM pozostaje nie naruszony<br />#define DISP_RESET0xE2<br />    // (15) Common Output State ( Normal/reversal rotation )<br />    // Normal - 0 reversal - 0x08<br />#define DISP_COMM_STATE0xC0<br />    // (16) Power Control Set<br />    // BOOST ON - 0x04, V - 0x02, VF - 1<br />#define DISP_PWR_SET0x28<br />    // (17) V5 Voltage Adjust Internal Resistance Ratio Set<br />    // Wartosci 0 - 7<br />#define DISP_V5ADJ0x20<br />    // (18) Electronic Control<br />    // ********* KOMENDA 2-BAJTOWA ***********<br />    // Umozliwia regulację kontrastu. Wartosci 0 - 63<br />#define DISP_ELECTRCTRL0x81<br />    // (20) Power Save<br />    // Stand by - OFF, Sleep - ON<br />#define DISP_PWR_SAVE0xA8<br />    // (21) Power Save Reset<br />#define DISP_PWR_SAVE_RES0xE1<br />    // (24) Oscillator ON<br />    // Wlaczenie oscylatora w wyswietlaczu<br />#define DISP_OSCL0xAB<br /><br />//     ******************   Udostępnione funkcje   *******************<br />void lcd_init (void);<br />void lcd_send_cmd(uint8_t data);<br />void lcd_clear (uint8_t par);<br />void lcd_pixel(uint8_t x, uint8_t y, uint8_t show);<br />void lcd_line(uint8_t x1,uint8_t y1,uint8_t x2,uint8_t y2,uint8_t show);<br />void lcd_frame(uint8_t x1,uint8_t y1,uint8_t x2,uint8_t y2,uint8_t show,uint8_t fill);<br />//void lcd_circle(uint8_t x,uint8_t y, uint8_t rad,uint8_t show);<br />void lcd_send_data(uint8_t data);<br />void lcd_char(char str, uint8_t x, uint8_t y, uint8_t show);<br />void lcd_string(char *str, uint8_t x, uint8_t y, uint8_t show);<br />void lcd_value (int val, uint8_t x, uint8_t y, uint8_t show, uint8_t par);<br /><br />static const prog_uint8_t fonty&#91;95*5&#93;=    {0x00,0x00,0x00,0x00,0x00,//spacja<br />        0x00,0x06,0x5F,0x06,0x00,//!<br />        0x07,0x03,0x00,0x07,0x03,//&quot;<br />        0x24,0x7E,0x24,0x7E,0x24,//#<br />        0x24,0x2B,0x6A,0x12,0x00,//$<br />        0x63,0x13,0x08,0x64,0x63,//%<br />        0x36,0x49,0x56,0x20,0x50,//&amp;<br />        0x00,0x07,0x03,0x00,0x00,//'<br />        0x00,0x3E,0x41,0x00,0x00,//(<br />        0x00,0x41,0x3E,0x00,0x00,//)<br />        0x08,0x3E,0x1C,0x3E,0x08,//*<br />        0x08,0x08,0x3E,0x08,0x08,//+<br />        0x00,0xE0,0x60,0x00,0x00,//<br />        0x08,0x08,0x08,0x08,0x08,//-<br />        0x00,0x60,0x60,0x00,0x00,//.<br />        0x20,0x10,0x08,0x04,0x02,///    aaaaa<br />        0x3E,0x51,0x49,0x45,0x3E,//0<br />        0x00,0x42,0x7F,0x40,0x00,//1<br />        0x62,0x51,0x49,0x49,0x46,//2<br />        0x22,0x49,0x49,0x49,0x36,//3<br />        0x18,0x14,0x12,0x7F,0x10,//4<br />        0x2F,0x49,0x49,0x49,0x31,//5<br />        0x3C,0x4A,0x49,0x49,0x30,//6<br />        0x01,0x71,0x09,0x05,0x03,//7<br />        0x36,0x49,0x49,0x49,0x36,//8<br />        0x06,0x49,0x49,0x29,0x1E,//9<br />        0x00,0x6C,0x6C,0x00,0x00,//:<br />        0x00,0xEC,0x6C,0x00,0x00,//;<br />        0x08,0x14,0x22,0x41,0x00,//&lt;<br />        0x24,0x24,0x24,0x24,0x24,//=<br />        0x00,0x41,0x22,0x14,0x08,//&gt;<br />        0x02,0x01,0x59,0x09,0x06,//?<br />        0x3E,0x41,0x5D,0x55,0x1E,//@<br />        0x7E,0x11,0x11,0x11,0x7E,//A<br />        0x7F,0x49,0x49,0x49,0x36,//B<br />        0x3E,0x41,0x41,0x41,0x22,//C<br />        0x7F,0x41,0x41,0x41,0x3E,//D<br />        0x7F,0x49,0x49,0x49,0x41,//E<br />        0x7F,0x09,0x09,0x09,0x01,//F<br />        0x3E,0x41,0x49,0x49,0x7A,//G<br />        0x7F,0x08,0x08,0x08,0x7F,//H<br />        0x00,0x41,0x7F,0x41,0x00,//I<br />        0x30,0x40,0x40,0x40,0x3F,//J<br />        0x7F,0x08,0x14,0x22,0x41,//K<br />        0x7F,0x40,0x40,0x40,0x40,//L<br />        0x7F,0x02,0x04,0x02,0x7F,//M<br />        0x7F,0x02,0x04,0x08,0x7F,//N<br />        0x3E,0x41,0x41,0x41,0x3E,//O<br />        0x7F,0x09,0x09,0x09,0x06,//P<br />        0x3E,0x41,0x51,0x21,0x5E,//Q<br />        0x7F,0x09,0x09,0x19,0x66,//R<br />        0x26,0x49,0x49,0x49,0x32,//S<br />        0x01,0x01,0x7F,0x01,0x01,//T<br />        0x3F,0x40,0x40,0x40,0x3F,//U<br />        0x1F,0x20,0x40,0x20,0x1F,//V<br />        0x3F,0x40,0x3C,0x40,0x3F,//W<br />        0x63,0x14,0x08,0x14,0x63,//X<br />        0x07,0x08,0x70,0x08,0x07,//Y<br />        0x61,0x51,0x49,0x45,0x43,//Z<br />        0x00,0x7F,0x41,0x41,0x00,//&#91;<br />        0x02,0x04,0x08,0x10,0x20,//backslash<br />        0x00,0x41,0x41,0x7F,0x00,//&#93;<br />        0x04,0x02,0x01,0x02,0x04,//^<br />        0x80,0x80,0x80,0x80,0x80,//_<br />        0x00,0x03,0x07,0x00,0x00,//`<br />        0x20,0x54,0x54,0x54,0x78,//a<br />        0x7F,0x44,0x44,0x44,0x38,//b<br />        0x38,0x44,0x44,0x44,0x28,//c<br />        0x38,0x44,0x44,0x44,0x7F,//d<br />        0x38,0x54,0x54,0x54,0x08,//e<br />        0x08,0x7E,0x09,0x09,0x00,//f<br />        0x18,0xA4,0xA4,0xA4,0x7C,//g<br />        0x7F,0x04,0x04,0x78,0x00,//h<br />        0x00,0x00,0x7D,0x40,0x00,//i<br />        0x40,0x80,0x84,0x7D,0x00,//j<br />        0x7F,0x10,0x28,0x44,0x00,//k<br />        0x00,0x00,0x7F,0x40,0x00,//l<br />        0x7C,0x04,0x18,0x04,0x78,//m<br />        0x7C,0x04,0x04,0x78,0x00,//n<br />        0x38,0x44,0x44,0x44,0x38,//o<br />        0xFC,0x44,0x44,0x44,0x38,//p<br />        0x38,0x44,0x44,0x44,0xFC,//q<br />        0x44,0x78,0x44,0x04,0x08,//r<br />        0x08,0x54,0x54,0x54,0x20,//s<br />        0x04,0x3E,0x44,0x24,0x00,//t<br />        0x3C,0x40,0x20,0x7C,0x00,//u<br />        0x1C,0x20,0x40,0x20,0x1C,//v<br />        0x3C,0x60,0x30,0x60,0x3C,//w<br />        0x6C,0x10,0x10,0x6C,0x00,//x<br />        0x9C,0xA0,0x60,0x3C,0x00,//y<br />        0x64,0x54,0x54,0x4C,0x00,//z<br />        0x08,0x3E,0x41,0x41,0x00,//{<br />        0x00,0x00,0x77,0x00,0x00,//|<br />        0x00,0x41,0x41,0x3E,0x08,//}<br />        0x02,0x01,0x02,0x01,0x00};//~<br />#endif /* S1D15705_H_ */[/syntax]<br /><br />Plik c<br /><br />[syntax=c]/*<br /> * LCD_s1d15705.c<br /> *<br /> *  Created on: 19-03-2012<br /> *      Author: Malutki_27<br /> *forum.atnel.pl<br /> */<br /><br />#include &lt;avr/io.h&gt;<br />#include &quot;s1d15705.h&quot;<br />//#include &lt;math.h&gt;<br />#include &lt;stdlib.h&gt;<br />#define SET_A0PORT(LCD_PA0) |= (1&lt;&lt;LCD_A0)// Stan Hi dla linii A0 wyswietlacza<br />#define CLR_A0PORT(LCD_PA0) &amp;= ~(1&lt;&lt;LCD_A0)// Stan Lo dla linii A0 wyswietlacza<br />#define SET_RDPORT(LCD_PRD) |= (1&lt;&lt;LCD_RD)// Stan Hi dla linii RD wyswietlacza<br />#define CLR_RDPORT(LCD_PRD) &amp;= ~(1&lt;&lt;LCD_RD)// Stan Lo dla linii RD wyswietlacza<br />#define SET_WRPORT(LCD_PWR) |= (1&lt;&lt;LCD_WR)// Stan Hi dla linii WR wyswietlacza<br />#define CLR_WRPORT(LCD_PWR) &amp;= ~(1&lt;&lt;LCD_WR)// Stan Lo dla linii WR wyswietlacza<br />#define SET_RESPORT(LCD_PRES) |= (1&lt;&lt;LCD_RES)// Stan Hi dla linii Reset wyswietlacza<br />#define CLR_RESPORT(LCD_PRES) &amp;= ~(1&lt;&lt;LCD_RES)// Stan Lo dla linii Reset wyswietlacza<br />#define SET_CS1PORT(LCD_PCS1) |= (1&lt;&lt;LCD_CS1)// Stan Hi dla linii CS1 wyswietlacza<br />#define CLR_CS1PORT(LCD_PCS1) &amp;= ~(1&lt;&lt;LCD_CS1)// Stan Lo dla linii CS1 wyswietlacza<br /><br />// Ustawia Kierunek portu danych 1 - wyjcie, 0 - wejscie<br />void lcd_data_dir (uint8_t kier){<br />if (kier){<br />    DDR(LCD_PD0) |= (1&lt;&lt;LCD_D0);<br />    DDR(LCD_PD1) |= (1&lt;&lt;LCD_D1);<br />    DDR(LCD_PD2) |= (1&lt;&lt;LCD_D2);<br />    DDR(LCD_PD3) |= (1&lt;&lt;LCD_D3);<br />    DDR(LCD_PD4) |= (1&lt;&lt;LCD_D4);<br />    DDR(LCD_PD5) |= (1&lt;&lt;LCD_D5);<br />    DDR(LCD_PD6) |= (1&lt;&lt;LCD_D6);<br />    DDR(LCD_PD7) |= (1&lt;&lt;LCD_D7);<br />}<br />else {<br />    DDR(LCD_PD0) &amp;= ~(1&lt;&lt;LCD_D0);<br />    DDR(LCD_PD1) &amp;= ~(1&lt;&lt;LCD_D1);<br />    DDR(LCD_PD2) &amp;= ~(1&lt;&lt;LCD_D2);<br />    DDR(LCD_PD3) &amp;= ~(1&lt;&lt;LCD_D3);<br />    DDR(LCD_PD4) &amp;= ~(1&lt;&lt;LCD_D4);<br />    DDR(LCD_PD5) &amp;= ~(1&lt;&lt;LCD_D5);<br />    DDR(LCD_PD6) &amp;= ~(1&lt;&lt;LCD_D6);<br />    DDR(LCD_PD7) &amp;= ~(1&lt;&lt;LCD_D7);<br />}<br />}<br />// Wysyła Bajt na piny<br />void lcd_send_byte (uint8_t byte){<br />    if (byte&amp;(1&lt;&lt;0)) PORT(LCD_PD0) |= (1&lt;&lt;LCD_D0); else PORT(LCD_PD0) &amp;= ~(1&lt;&lt;LCD_D0);<br />    if (byte&amp;(1&lt;&lt;1)) PORT(LCD_PD1) |= (1&lt;&lt;LCD_D1); else PORT(LCD_PD1) &amp;= ~(1&lt;&lt;LCD_D1);<br />    if (byte&amp;(1&lt;&lt;2)) PORT(LCD_PD2) |= (1&lt;&lt;LCD_D2); else PORT(LCD_PD2) &amp;= ~(1&lt;&lt;LCD_D2);<br />    if (byte&amp;(1&lt;&lt;3)) PORT(LCD_PD3) |= (1&lt;&lt;LCD_D3); else PORT(LCD_PD3) &amp;= ~(1&lt;&lt;LCD_D3);<br />    if (byte&amp;(1&lt;&lt;4)) PORT(LCD_PD4) |= (1&lt;&lt;LCD_D4); else PORT(LCD_PD4) &amp;= ~(1&lt;&lt;LCD_D4);<br />    if (byte&amp;(1&lt;&lt;5)) PORT(LCD_PD5) |= (1&lt;&lt;LCD_D5); else PORT(LCD_PD5) &amp;= ~(1&lt;&lt;LCD_D5);<br />    if (byte&amp;(1&lt;&lt;6)) PORT(LCD_PD6) |= (1&lt;&lt;LCD_D6); else PORT(LCD_PD6) &amp;= ~(1&lt;&lt;LCD_D6);<br />    if (byte&amp;(1&lt;&lt;7)) PORT(LCD_PD7) |= (1&lt;&lt;LCD_D7); else PORT(LCD_PD7) &amp;= ~(1&lt;&lt;LCD_D7);<br />}<br />// ********** Sprawdza stan wyswietlacza ***************<br />// 1 - Busy Zajety - 0 / Wolny - 1<br />// 2 - ADCWlaczona - 0 / Wylaczona - 1<br />// 3 - Wyswietlacz Wlaczony - 0/ Wylaczony - 1<br />// 4 - ResetNie - 0/ Tak - 1<br />uint8_t lcd_status (uint8_t par){<br />    uint8_t status=0;<br />    lcd_data_dir(0);<br />    CLR_A0;<br />    CLR_RD;<br />    CLR_CS1;<br /> asm(&quot;nop&quot;); nop-y są wystarczające dla częstotliwości 11 Mhz w przypadku większej częstotliwości należy zwiększyć ich ilość lub zastosowac timer<br />switch(par){<br />    case 1: status = PIN(LCD_PD7)&amp;(1&lt;&lt;LCD_D7); break;<br />    case 2: status = PIN(LCD_PD6)&amp;(1&lt;&lt;LCD_D6); break;<br />    case 3: status = PIN(LCD_PD5)&amp;(1&lt;&lt;LCD_D5); break;<br />    case 4: status = PIN(LCD_PD4)&amp;(1&lt;&lt;LCD_D4); break;<br />   }<br />SET_CS1;<br />    lcd_data_dir(1);<br />    SET_A0;<br />    SET_RD;<br />    return status;<br />}<br />// Czyta dane z wyswietlacza<br />uint8_t lcd_read_data (void){<br />    uint8_t rbyte=0;<br />    while(lcd_status(1));// sprawdza czy zjety<br />    CLR_RD;<br />    lcd_data_dir(0);<br />    CLR_CS1;<br />    SET_CS1;<br />    CLR_CS1;<br />    asm(&quot;nop&quot;); // nop-y są wystarczające dla częstotliwości 11 Mhz w przypadku mniejszej częstotliwości należy zwiększyć ich ilość lub<br />    asm(&quot;nop&quot;); // zastosować timer<br />    if(PIN(LCD_PD0)&amp;(1&lt;&lt;LCD_D0)) rbyte |= (1&lt;&lt;0);<br />    if(PIN(LCD_PD1)&amp;(1&lt;&lt;LCD_D1)) rbyte |= (1&lt;&lt;1);<br />    if(PIN(LCD_PD2)&amp;(1&lt;&lt;LCD_D2)) rbyte |= (1&lt;&lt;2);<br />    if(PIN(LCD_PD3)&amp;(1&lt;&lt;LCD_D3)) rbyte |= (1&lt;&lt;3);<br />    if(PIN(LCD_PD4)&amp;(1&lt;&lt;LCD_D4)) rbyte |= (1&lt;&lt;4);<br />    if(PIN(LCD_PD5)&amp;(1&lt;&lt;LCD_D5)) rbyte |= (1&lt;&lt;5);<br />    if(PIN(LCD_PD6)&amp;(1&lt;&lt;LCD_D6)) rbyte |= (1&lt;&lt;6);<br />    if(PIN(LCD_PD7)&amp;(1&lt;&lt;LCD_D7)) rbyte |= (1&lt;&lt;7);<br />    SET_CS1;<br />    SET_RD;<br />    lcd_data_dir(1);<br />    return rbyte;<br />}<br />// wywysla komende do wyswietlacza<br />void lcd_send_cmd(uint8_t data){<br />    CLR_A0;<br />    CLR_WR;<br />    lcd_send_byte(data);<br />    CLR_CS1;<br />    SET_CS1;<br />    SET_WR;<br />    SET_A0;<br />    lcd_send_byte (0xFF);<br />}<br />// wysyla bajt danych do wyswietlacza<br />void lcd_send_data(uint8_t data){<br />    while(lcd_status(1));<br />    CLR_WR;<br />    lcd_send_byte(data);<br />    CLR_CS1;<br />    SET_CS1;<br />    SET_WR;<br />    lcd_send_byte (0xFF);<br />}<br />// rysuje 1 pixel w zadanej pozycji<br />// y - pozycja w pionie ( w pixelach )<br />// x - pozycja w poziomie ( w pixelach )<br />// show 1- pozytyw , 0 - negatyw<br />void lcd_pixel(uint8_t y, uint8_t x, uint8_t show){ // y wiersz (pix), x kolumna (pix), show 1 - pozytyw, 0 - negatyw<br />uint8_t tmp, pix;<br />x+=0x03;// dodajemy bo adresy kolumn są numerowane od 3h<br />lcd_send_cmd(DISP_PAGE_ADDR|(y / 8));// Ustawia numer wiersza<br />lcd_send_cmd(DISP_COL_ADDR|(x &gt;&gt; 4));// Ustawia wyższy bit adresu kolumny<br />lcd_send_cmd(x &amp; 0x0F);// ustawia niższy bit adresu kolumny<br />tmp = lcd_read_data();//czytamy co jest na tej pozycji<br />pix = 0x01&lt;&lt;(y % 8);// oblicza polozenie pixela w wierszu<br />if (show==0){<br />pix =~pix;// skoro piszemy w negatywie to trzeba by odwrocic &quot;pixel&quot;<br />tmp&amp;= pix;// laczymy wsio przez iloczyn bitowy<br />}<br />else tmp |=pix;// dodaje go do tego co odczytalismy<br />lcd_send_cmd(DISP_PAGE_ADDR|(y / 8));// Ustawiamy ponownie pozycje poniewaz poprzedni odczyt zainkrementowal go o 1<br />lcd_send_cmd(DISP_COL_ADDR|(x &gt;&gt; 4));<br />lcd_send_cmd(x &amp; 0x0F);<br />while(lcd_status(1));<br />lcd_send_data(tmp);// piszemy do wyswietlacza<br />}<br /><br />void lcd_line(uint8_t x1,uint8_t y1,uint8_t x2,uint8_t y2,uint8_t show){<br />uint8_t bufx, bufy;<br />bufy = (y2-y1);<br />bufx = (x2-x1);<br />for (uint8_t i=x1;i&lt;=x2;i++){<br />for (uint8_t j=y1;j&lt;=y2;j++){<br />lcd_pixel(i,j,1);<br />}<br />}<br />}<br /><br />// Funkcja rysuje prostokat<br />// x1 oraz y1 punkt poczatkowy<br />// x2 oraz y2 punkt koncowy<br />// show 1 - pozytyw, 0 - negatyw<br />// fill 1 - wypelnienie, 0 - bez wypelnienia<br />void lcd_frame(uint8_t x1,uint8_t y1,uint8_t x2,uint8_t y2,uint8_t show,uint8_t fill){<br />for (uint8_t i=x1;i&lt;=x2;i++) {<br />lcd_pixel(i,y1,show);<br />lcd_pixel(i,y2,show);<br />}<br />for (uint8_t j=y1;j&lt;=y2;j++) {<br />lcd_pixel(x1,j,show);<br />lcd_pixel(x2,j,show);<br />}<br />if (fill){<br />for (uint8_t k=x1;k&lt;=x2;k++){<br />for (uint8_t l=y1;l&lt;=y2;l++){<br />lcd_pixel(k,l,show);<br />}<br />}<br />}<br />}<br />//void lcd_circle(uint8_t x,uint8_t y, uint8_t rad,uint8_t show){<br />//for(uint16_t i=0;i&lt;=360;i++){<br />//lcd_pixel(x+(cos(i)*rad),y+(sin(i)*rad),show);<br />//}<br />//}<br />// wyswietla znak w zadanej pozycji<br />// x - pozycja w pionie ( w pixelach )<br />// y - pozycja w poziomie ( w pixelach )<br />// show 1- pozytyw , 0 - negatyw<br />void lcd_char(char str, uint8_t x, uint8_t y, uint8_t show){<br />    uint8_t font=0;<br />    for (uint8_t i=0; i&lt;5;i++){//<br />font = pgm_read_byte(&amp;fonty&#91;((str-32)*5)+i&#93;);<br />for (uint8_t j=0;j&lt;8;j++){<br />if (font&amp;(1&lt;&lt;j)) lcd_pixel(x+j,y+i,show);<br />}<br />    }<br />}<br />// wysyla tekst w trybie graficznym ( dozwolona dowolna pozycja tekstu )<br />// x - pozycja w pionie ( w pixelach )<br />// y - pozycja w poziomie ( w pixelach )<br />// show 1- pozytyw , 0 - negatyw<br />void lcd_string(char *str, uint8_t x, uint8_t y, uint8_t show){<br />uint8_t step=0;<br />while(*str){<br />lcd_char(*str++,x,y+step,show);<br />step+=5;<br />}<br />}<br />// wysyla wartosc w trybie graficznym ( dozwolona dowolna pozycja tekstu )<br />// x - pozycja w pionie ( w pixelach )<br />// y - pozycja w poziomie ( w pixelach )<br />// show 1- pozytyw , 0 - negatyw<br />// par 10 - DEC, 2 - bin, 16 - hex<br />void lcd_value (int val, uint8_t x, uint8_t y, uint8_t show, uint8_t par){<br />char buf&#91;17&#93;;<br />lcd_string( itoa(val, buf, par),x,y,show );<br />}<br />/* ********* Czysci ekran ***********<br /> * negatyw - 0, pozytyw - 1 */<br />void lcd_clear (uint8_t par){<br />    switch(par){<br />case 0: {for (uint8_t j=DISP_PAGE_ADDR;j&lt;(DISP_PAGE_ADDR|9);j++){<br />    lcd_send_cmd(j);<br />    lcd_send_cmd(DISP_COL_ADDR);<br />    lcd_send_cmd(0x03);<br />    for (uint8_t i=0;i&lt;162;i++){<br />lcd_send_data(0x00);<br />    }<br />}<br /><br />} break;<br />case 1: {for (uint8_t j=DISP_PAGE_ADDR;j&lt;(DISP_PAGE_ADDR|9);j++){<br />    lcd_send_cmd(j);<br />    lcd_send_cmd(DISP_COL_ADDR);<br />    lcd_send_cmd(0x03);<br />    for (uint8_t i=0;i&lt;162;i++){<br />    lcd_send_data(0xFF);<br />    }<br />}<br />} break;<br />    }<br />    lcd_send_byte(0xFF);<br />}<br />// Inicjalizacja wyswietlacza<br />void lcd_init (void){<br />    DDR(LCD_PRD) |= (1&lt;&lt;LCD_RD);//Porty sterujące ustawiamy jako wyjscia<br />    DDR(LCD_PWR) |= (1&lt;&lt;LCD_WR);<br />    DDR(LCD_PA0) |= (1&lt;&lt;LCD_A0);<br />    DDR(LCD_PRES) |= (1&lt;&lt;LCD_RES);<br />    DDR(LCD_PCS1) |= (1&lt;&lt;LCD_CS1);<br />    SET_A0;// Ustawiamy 1<br />    SET_RD;<br />    SET_WR;<br />    SET_RES;<br />    SET_CS1;<br />    lcd_data_dir (1);// port danych ustawiamy jako wyjscie<br />    lcd_send_byte (0xFF);// ustawimay 1<br />    CLR_RES;// Resetujemy wyswietlacz<br />    SET_RES;<br />    lcd_send_cmd(DISP_PWR_SAVE_RES);// (21) Power Save Reset<br />    lcd_send_cmd(DISP_OSCL);// (24) Build-in Oscillator ON<br />    lcd_send_cmd(DISP_BIAS|ON);// (11) LCD Bias Set<br />    lcd_send_cmd(DISP_ADC);// (8) ADC Select<br />    lcd_send_cmd(DISP_COMM_STATE|8);// (15) Common output State selection<br />    lcd_send_cmd(DISP_V5ADJ);// (17)V5 Voltage Adjusting Internal Resistance Ratio Set<br />    lcd_send_cmd(DISP_PWR_SET|3);// (16) Power Control set<br />    lcd_send_cmd(DISP_V5ADJ|6);// (17)V5 Voltage Adjusting Internal Resistance Ratio Set<br />    lcd_send_cmd(DISP_ELECTRCTRL);// (18 a) Electronic Control Mode set<br />    lcd_send_cmd(0x13);// (18 b) Electronic Control Register Set<br />    lcd_send_cmd(DISP_ONOFF|ON);// (1) Display ON/OFF<br />    lcd_send_cmd(DISP_TYPE|ON);// (9)Display Normal Rotation / reversal<br />    lcd_send_cmd(DISP_START_LINE|2);// (2)Display Start Line Set 0x42<br />    lcd_send_cmd(DISP_PAGE_ADDR);// (3)Page Address Set<br />    lcd_send_cmd(DISP_COL_ADDR);// (4 a)Column Address Set - High Bit<br />    lcd_send_cmd(0x03);// (4 b)Column Address Set - Low Bit 0x03<br />    lcd_clear(0);// Czyscimy wyswietlacz ( jak ktos chce Matrixa to mozna tymczasowo wylaczyc :)<br />}[/syntax]<br /><br />A nasze Szanowne grono &quot;Pedagogiczne&quot; proszę o wyrozumiałość <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br />Jenocześnie oznajmiam że lekcja nr 4_LCD została zakończona <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=225">Malutki_27</a> — 27 mar 2012, o 10:08</p><hr />
]]></content>
</entry>
</feed>