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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-06-16T17:52:03+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=58&amp;t=12018&amp;mode</id>
<entry>
<author><name><![CDATA[jacekk232]]></name></author>
<updated>2015-06-16T17:52:03+01:00</updated>
<published>2015-06-16T17:52:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12018&amp;p=131933#p131933</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12018&amp;p=131933#p131933"/>
<title type="html"><![CDATA[Re: [HD44780] Inicjalizacja - problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12018&amp;p=131933#p131933"><![CDATA[
No faktycznie wywala błąd. Teraz sprawdziłem.<br />A koledze nie wywalało błędu bo #include &lt;util/delay.h&gt; ma w pliku HD44780.h. Wtedy jest dobrze. Sprawdzałem.<br />Wiedziałem, że gdzieś dzwoni... Ech... Errare humanum est<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=204">jacekk232</a> — 16 cze 2015, o 17:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kicajek]]></name></author>
<updated>2015-06-16T17:17:13+01:00</updated>
<published>2015-06-16T17:17:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12018&amp;p=131929#p131929</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12018&amp;p=131929#p131929"/>
<title type="html"><![CDATA[Re: [HD44780] Inicjalizacja - problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12018&amp;p=131929#p131929"><![CDATA[
Witam<br /><div class="quotetitle">jacekk232 napisał(a):</div><div class="quotecontent"><br />Nie dopominał się bo w pliku main.c przed #include &quot;HD44780.h&quot; jest już #include &lt;util/delay.h&gt;.<br /></div><br />U mnie natomiast wyskakuje &quot;takie coś&quot;<br /><a href="http://forum.atnel.pl/_obrazki/o/826/c597093cd3033c807bb6c92a7747288e.JPG"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/826/c597093cd3033c807bb6c92a7747288e.JPG" alt="Obrazek" /></a><br />...no ale nie wnikam.<br />Oczywiście w main.c util/delay jest. <br /><br />Pozdr.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=826">kicajek</a> — 16 cze 2015, o 17:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jacekk232]]></name></author>
<updated>2015-06-16T11:31:06+01:00</updated>
<published>2015-06-16T11:31:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12018&amp;p=131894#p131894</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12018&amp;p=131894#p131894"/>
<title type="html"><![CDATA[Re: [HD44780] Inicjalizacja - problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12018&amp;p=131894#p131894"><![CDATA[
<div class="quotetitle">kicajek napisał(a):</div><div class="quotecontent"><br />... a kompilator nie dopominał się o<br /><br />    #include &lt;util/delay.h&gt;<br /><br />w pliku HD44780.c?<br /></div><br />Nie dopominał się bo w pliku main.c przed #include &quot;HD44780.h&quot; jest już #include &lt;util/delay.h&gt;.<br />A z tego co mi się obiło o uszy to wystarczy dla wszystkich plików zainkludowanych po tym #include &lt;util/delay.h&gt;.<br /><br />Dzielnik napięcia wygląda tak <!-- m --><a class="postlink" href="https://pl.wikipedia.org/wiki/Dzielnik_napi%C4%99cia" >https://pl.wikipedia.org/wiki/Dzielnik_napi%C4%99cia</a><!-- m -->.<br />Ale ja zamiast na sztywno stosować dzielnik napięcia zastosował bym jednak potencjometr. Miałem już taką sytuację, że testując układ na stykówce podłączyłem go do jednego kompa i wyregulowałem kontrast. <br />Po jakimś czasie układ podłączyłem do innego kompa i... napięcie na USB w tym kompie trochę się różniło niż na tym pierwszym. No i trzeba było troszkę skorygować ustawienie kontrastu bo zamiast znaków LCD wyświetlał same czarne prostokąty.<br />Nie trudno się domyśleć, że po podłączeniu układu do tego pierwszego kompa na LCD ledwo co było widać.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=204">jacekk232</a> — 16 cze 2015, o 11:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Tygrys]]></name></author>
<updated>2015-06-16T09:14:14+01:00</updated>
<published>2015-06-16T09:14:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12018&amp;p=131884#p131884</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12018&amp;p=131884#p131884"/>
<title type="html"><![CDATA[Re: [HD44780] Inicjalizacja - problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12018&amp;p=131884#p131884"><![CDATA[
<div class="quotetitle">kicajek napisał(a):</div><div class="quotecontent"><br />Witam<br />Nie - PIN od kontrastu na bieżąco &quot;odczytuje&quot; napięcie jakie panuje na ślizgaczu PR'ka; natomiast można na stałe podłączyć dzielnik zbudowany z rezystorów ( a dlaczego Ci on przeszkadza?)<br /></div><br /><br />Mam &quot;nieporęczny&quot; potencjometr <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /> Mógłbyś przybliżyć mi nieco to jak taki dzielnik zbudować?<br /><br /><div class="quotetitle">kicajek napisał(a):</div><div class="quotecontent"><br />... a kompilator nie dopominał się o <br />[syntax=c]#include &lt;util/delay.h&gt;[/syntax] <br />w pliku <strong>HD44780.c</strong>?<br /></div><br /><br />O dziwo nie <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=7393">Tygrys</a> — 16 cze 2015, o 09:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-06-15T15:59:47+01:00</updated>
<published>2015-06-15T15:59:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12018&amp;p=131826#p131826</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12018&amp;p=131826#p131826"/>
<title type="html"><![CDATA[Re: [HD44780] Inicjalizacja - problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12018&amp;p=131826#p131826"><![CDATA[
<div class="quotetitle">Tygrys napisał(a):</div><div class="quotecontent"><br />Po wyregulowaniu kontrastu dalej to samo... Ma ktoś jakiś pomysł?<br /></div><br /><br /><span style="color: #FF0000">[ listingi na forum umieszcza się tak: <!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic7402.html" >topic7402.html</a><!-- l --> - zajrzyj tu i popraw ok ? bo inaczej usunę cały wątek - mirekk36 ]</span><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 15 cze 2015, o 15:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kicajek]]></name></author>
<updated>2015-06-15T15:40:44+01:00</updated>
<published>2015-06-15T15:40:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12018&amp;p=131823#p131823</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12018&amp;p=131823#p131823"/>
<title type="html"><![CDATA[Re: [HD44780] Inicjalizacja - problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12018&amp;p=131823#p131823"><![CDATA[
Witam<br />[<div class="quotetitle">MirkoT napisał(a):</div><div class="quotecontent"><br />Czy da się raz wyregulowany kontrast zostawić bez podpinania potencjometru?<br /></div><br />Nie - PIN od kontrastu na bieżąco &quot;odczytuje&quot; napięcie jakie panuje na ślizgaczu PR'ka; natomiast można na stałe podłączyć dzielnik zbudowany z rezystorów ( a dlaczego Ci on przeszkadza?)<br /><br /><div class="quotetitle">Tygrys napisał(a):</div><div class="quotecontent"><br />Problem rozwiązany! Problem tkwił w wadliwym wyświetlaczu<br /></div><br />... a kompilator nie dopominał się o <br />[syntax=c]#include &lt;util/delay.h&gt;[/syntax] <br />w pliku <strong>HD44780.c</strong>?<br /><br />Pozdr.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=826">kicajek</a> — 15 cze 2015, o 15:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Tygrys]]></name></author>
<updated>2015-06-15T14:15:26+01:00</updated>
<published>2015-06-15T14:15:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12018&amp;p=131817#p131817</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12018&amp;p=131817#p131817"/>
<title type="html"><![CDATA[Re: [HD44780] Inicjalizacja - problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12018&amp;p=131817#p131817"><![CDATA[
Po wyregulowaniu kontrastu dalej to samo... Ma ktoś jakiś pomysł?<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 55 minutach ]</span></strong><br /><br />Problem rozwiązany! Problem tkwił w wadliwym wyświetlaczu - na innym śmiga.<br /><br />Jeszcze jedno pytanko, mianowicie po wyregulowaniu kontrastu, gdy odłączam potencjometr obraz znika (po podłączeniu Vo do masy). Czy da się raz wyregulowany kontrast zostawić bez podpinania potencjometru?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7393">Tygrys</a> — 15 cze 2015, o 14:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2015-06-15T12:48:10+01:00</updated>
<published>2015-06-15T12:48:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12018&amp;p=131809#p131809</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12018&amp;p=131809#p131809"/>
<title type="html"><![CDATA[Re: [HD44780] Inicjalizacja - problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12018&amp;p=131809#p131809"><![CDATA[
<div class="quotetitle">Tygrys napisał(a):</div><div class="quotecontent"><br />Wybacz, nie zauważyłem.<br /><br />W <strong>&quot;HD44780.c&quot;:</strong><br />#include &quot;HD44780.h&quot;<br /><br /><strong>&quot;HD44780.h&quot;:</strong><br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br /><strong>&quot;main.c&quot;:</strong><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;stdlib.h&gt;<br />#include &lt;stdio.h&gt;<br /><br />#include &quot;HD44780.h&quot;<br /><br /><br />Wyczytałem, że przyczyną może być też włączony JTAG. Czy w attiny jest coś takiego? Jeśli tak to jak to wyłączyć?<br /></div><br />Nie, ATTiny nie ma JTAGa.<br />Możej jednak spróbuj jeszcze z kontrastem<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 15 cze 2015, o 12:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Tygrys]]></name></author>
<updated>2015-06-16T09:11:53+01:00</updated>
<published>2015-06-15T11:12:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12018&amp;p=131802#p131802</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12018&amp;p=131802#p131802"/>
<title type="html"><![CDATA[Re: [HD44780] Inicjalizacja - problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12018&amp;p=131802#p131802"><![CDATA[
<span style="color: #FF0000">//Edit: Na górze poprawiłem także wszystko już widać <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /></span><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7393">Tygrys</a> — 15 cze 2015, o 11:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kicajek]]></name></author>
<updated>2015-06-15T11:03:01+01:00</updated>
<published>2015-06-15T11:03:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12018&amp;p=131801#p131801</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12018&amp;p=131801#p131801"/>
<title type="html"><![CDATA[Re: [HD44780] Inicjalizacja - problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12018&amp;p=131801#p131801"><![CDATA[
Witam<br />Edytuj listing kodu.<br />...a co tam &quot;includujesz&quot;?<br /><br />Pozdr.<br /><br />edit:<br />Do pliku HD.... .c dodałem ( oczywiście te brakujące też ):<br />[syntax=c]#include &lt;util/delay.h&gt;[/syntax]<br />Na moim zestawie działa, więc szukaj coś w okablowaniu.<br /><br />Pozdr II<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=826">kicajek</a> — 15 cze 2015, o 11:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Tygrys]]></name></author>
<updated>2015-06-16T09:09:46+01:00</updated>
<published>2015-06-15T10:47:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12018&amp;p=131799#p131799</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12018&amp;p=131799#p131799"/>
<title type="html"><![CDATA[[HD44780] Inicjalizacja - problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12018&amp;p=131799#p131799"><![CDATA[
Witam, zdaję sobie sprawę z tego, że takich tematów jest multum ale żaden nie rozwiązuje mojego problemu - a oto on:<br /><br />Ostatnimi czasy sprawiłem sobie wyświetlacz WC1602A. Po poprawnym podłączeniu do ATTiny2313, czyli:<br /><br /><strong>RW =&gt; GND</strong>,<br /><strong>RS =&gt; PD5</strong>,<br /><strong>E =&gt; PD4</strong>,<br /><br /><strong>D0...D3 =&gt; nie podłączone</strong>,<br /><strong>D4...D7 =&gt; PB0...PB3</strong>.<br /><br />Kontrast regulowałem potencjometrem 50K (10 nie miałem), ale teraz jest podłączony do masy a moim oczom ukazany jest <strong><span style="text-decoration: underline">jeden</span></strong> (górny) rząd kwadratów. Myślę, że kontrast jest dobrze ustawiony skoro widać pierwszy rząd.<br /><br />Użyłem bibliotek autorstwa Radosława Kwietnia ale po wielokrotnych próbach ciągle jest to samo - tylko rząd kwadratów <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br /><br />Jako, że to dział dla &quot;całkowicie początkujących&quot; proszę o wyrozumiałość i pomoc.<br /><br />Poniżej zamieszczam źródło programu, który wgrywam.<br /><br /><span style="color: #FF0000">[ listingi na forum umieszcza się tak: <!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic7402.html" >topic7402.html</a><!-- l --> - zajrzyj tu i popraw ok ? - mirekk36 ]</span><br /><br /><strong>HD44780.c</strong><br />[syntax=c]//-------------------------------------------------------------------------------------------------<br />// Wyświetlacz alfanumeryczny ze sterownikiem HD44780<br />// Sterowanie w trybie 4-bitowym bez odczytu flagi zajętości<br />// z dowolnym przypisaniem sygnałów sterujących<br />// Plik : HD44780.c<br />// Mikrokontroler : Atmel AVR<br />// Kompilator : avr-gcc<br />// Autor : Radosław Kwiecień<br />// Źródło : http://radzio.dxp.pl/hd44780/<br />// Data : 24.03.2007<br />//-------------------------------------------------------------------------------------------------<br /><br />#include &quot;HD44780.h&quot;<br />//-------------------------------------------------------------------------------------------------<br />//<br />// Funkcja wystawiająca półbajt na magistralę danych<br />//<br />//-------------------------------------------------------------------------------------------------<br />void _LCD_OutNibble(unsigned char nibbleToWrite)<br />{<br />if(nibbleToWrite &amp; 0x01)<br />LCD_DB4_PORT |= LCD_DB4;<br />else<br />LCD_DB4_PORT  &amp;= ~LCD_DB4;<br /><br />if(nibbleToWrite &amp; 0x02)<br />LCD_DB5_PORT |= LCD_DB5;<br />else<br />LCD_DB5_PORT  &amp;= ~LCD_DB5;<br /><br />if(nibbleToWrite &amp; 0x04)<br />LCD_DB6_PORT |= LCD_DB6;<br />else<br />LCD_DB6_PORT  &amp;= ~LCD_DB6;<br /><br />if(nibbleToWrite &amp; 0x08)<br />LCD_DB7_PORT |= LCD_DB7;<br />else<br />LCD_DB7_PORT  &amp;= ~LCD_DB7;<br />}<br />//-------------------------------------------------------------------------------------------------<br />//<br />// Funkcja zapisu bajtu do wyświetacza (bez rozróżnienia instrukcja/dane).<br />//<br />//-------------------------------------------------------------------------------------------------<br />void _LCD_Write(unsigned char dataToWrite)<br />{<br />LCD_E_PORT |= LCD_E;<br />_LCD_OutNibble(dataToWrite &gt;&gt; 4);<br />LCD_E_PORT &amp;= ~LCD_E;<br />LCD_E_PORT |= LCD_E;<br />_LCD_OutNibble(dataToWrite);<br />LCD_E_PORT &amp;= ~LCD_E;<br />_delay_us(50);<br />}<br />//-------------------------------------------------------------------------------------------------<br />//<br />// Funkcja zapisu rozkazu do wyświetlacza<br />//<br />//-------------------------------------------------------------------------------------------------<br />void LCD_WriteCommand(unsigned char commandToWrite)<br />{<br />LCD_RS_PORT &amp;= ~LCD_RS;<br />_LCD_Write(commandToWrite);<br />}<br />//-------------------------------------------------------------------------------------------------<br />//<br />// Funkcja zapisu danych do pamięci wyświetlacza<br />//<br />//-------------------------------------------------------------------------------------------------<br />void LCD_WriteData(unsigned char dataToWrite)<br />{<br />LCD_RS_PORT |= LCD_RS;<br />_LCD_Write(dataToWrite);<br />}<br />//-------------------------------------------------------------------------------------------------<br />//<br />// Funkcja wyświetlenia napisu na wyswietlaczu.<br />//<br />//-------------------------------------------------------------------------------------------------<br />void LCD_WriteText(char * text)<br />{<br />while(*text)<br />  LCD_WriteData(*text++);<br />}<br />//-------------------------------------------------------------------------------------------------<br />//<br />// Funkcja ustawienia współrzędnych ekranowych<br />//<br />//-------------------------------------------------------------------------------------------------<br />void LCD_GoTo(unsigned char x, unsigned char y)<br />{<br />LCD_WriteCommand(HD44780_DDRAM_SET | (x + (0x40 * y)));<br />}<br />//-------------------------------------------------------------------------------------------------<br />//<br />// Funkcja czyszczenia ekranu wyświetlacza.<br />//<br />//-------------------------------------------------------------------------------------------------<br />void LCD_Clear(void)<br />{<br />LCD_WriteCommand(HD44780_CLEAR);<br />_delay_ms(2);<br />}<br />//-------------------------------------------------------------------------------------------------<br />//<br />// Funkcja przywrócenia początkowych współrzędnych wyświetlacza.<br />//<br />//-------------------------------------------------------------------------------------------------<br />void LCD_Home(void)<br />{<br />LCD_WriteCommand(HD44780_HOME);<br />_delay_ms(2);<br />}<br />//-------------------------------------------------------------------------------------------------<br />//<br />// Procedura inicjalizacji kontrolera HD44780.<br />//<br />//-------------------------------------------------------------------------------------------------<br />void LCD_Initalize(void)<br />{<br />unsigned char i;<br />LCD_DB4_DIR |= LCD_DB4; // Konfiguracja kierunku pracy wyprowadzeń<br />LCD_DB5_DIR |= LCD_DB5; //<br />LCD_DB6_DIR |= LCD_DB6; //<br />LCD_DB7_DIR |= LCD_DB7; //<br />LCD_E_DIR |= LCD_E;   //<br />LCD_RS_DIR |= LCD_RS;  //<br />_delay_ms(15); // oczekiwanie na ustalibizowanie się napiecia zasilajacego<br />LCD_RS_PORT &amp;= ~LCD_RS; // wyzerowanie linii RS<br />LCD_E_PORT &amp;= ~LCD_E;  // wyzerowanie linii E<br /><br />for(i = 0; i &lt; 3; i++) // trzykrotne powtórzenie bloku instrukcji<br />  {<br />  LCD_E_PORT |= LCD_E; //  E = 1<br />  _LCD_OutNibble(0x03); // tryb 8-bitowy<br />  LCD_E_PORT &amp;= ~LCD_E; // E = 0<br />  _delay_ms(5); // czekaj 5ms<br />  }<br /><br />LCD_E_PORT |= LCD_E; // E = 1<br />_LCD_OutNibble(0x02); // tryb 4-bitowy<br />LCD_E_PORT &amp;= ~LCD_E; // E = 0<br /><br />_delay_ms(1); // czekaj 1ms<br />LCD_WriteCommand(HD44780_FUNCTION_SET | HD44780_FONT5x7 | HD44780_TWO_LINE | HD44780_4_BIT); // interfejs 4-bity, 2-linie, znak 5x7<br />LCD_WriteCommand(HD44780_DISPLAY_ONOFF | HD44780_DISPLAY_OFF); // wyłączenie wyswietlacza<br />LCD_WriteCommand(HD44780_CLEAR); // czyszczenie zawartosći pamieci DDRAM<br />_delay_ms(2);<br />LCD_WriteCommand(HD44780_ENTRY_MODE | HD44780_EM_SHIFT_CURSOR | HD44780_EM_INCREMENT);// inkrementaja adresu i przesuwanie kursora<br />LCD_WriteCommand(HD44780_DISPLAY_ONOFF | HD44780_DISPLAY_ON | HD44780_CURSOR_OFF | HD44780_CURSOR_NOBLINK); // włącz LCD, bez kursora i mrugania<br />}<br /><br />//-------------------------------------------------------------------------------------------------<br />//<br />// Koniec pliku HD44780.c<br />//<br />//-------------------------------------------------------------------------------------------------[/syntax]<br /><br /><strong>HD44780.h</strong><br />[syntax=c]//-------------------------------------------------------------------------------------------------<br />// Wyświetlacz alfanumeryczny ze sterownikiem HD44780<br />// Sterowanie w trybie 4-bitowym bez odczytu flagi zajętości<br />// z dowolnym przypisaniem sygnałów sterujących<br />// Plik : HD44780.h<br />// Mikrokontroler : Atmel AVR<br />// Kompilator : avr-gcc<br />// Autor : Radosław Kwiecień<br />// Źródło : http://radzio.dxp.pl/hd44780/<br />// Data : 24.03.2007<br />//-------------------------------------------------------------------------------------------------<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />//-------------------------------------------------------------------------------------------------<br />//<br />// Konfiguracja sygnałów sterujących wyświetlaczem.<br />// Można zmienić stosownie do potrzeb.<br />//<br />//-------------------------------------------------------------------------------------------------<br />#define LCD_RS_DIRDDRD<br />#define LCD_RS_PORT PORTD<br />#define LCD_RS(1 &lt;&lt; PD5)<br /><br />#define LCD_E_DIRDDRD<br />#define LCD_E_PORTPORTD<br />#define LCD_E(1 &lt;&lt; PD4)<br /><br />#define LCD_DB4_DIRDDRB<br />#define LCD_DB4_PORTPORTB<br />#define LCD_DB4(1 &lt;&lt; PB0)<br /><br />#define LCD_DB5_DIRDDRB<br />#define LCD_DB5_PORTPORTB<br />#define LCD_DB5(1 &lt;&lt; PB1)<br /><br />#define LCD_DB6_DIRDDRB<br />#define LCD_DB6_PORTPORTB<br />#define LCD_DB6(1 &lt;&lt; PB2)<br /><br />#define LCD_DB7_DIRDDRB<br />#define LCD_DB7_PORTPORTB<br />#define LCD_DB7(1 &lt;&lt; PB3)<br /><br />//-------------------------------------------------------------------------------------------------<br />//<br />// Instrukcje kontrolera Hitachi HD44780<br />//<br />//-------------------------------------------------------------------------------------------------<br /><br />#define HD44780_CLEAR0x01<br /><br />#define HD44780_HOME0x02<br /><br />#define HD44780_ENTRY_MODE0x04<br />#define HD44780_EM_SHIFT_CURSOR0<br />#define HD44780_EM_SHIFT_DISPLAY1<br />#define HD44780_EM_DECREMENT0<br />#define HD44780_EM_INCREMENT2<br /><br />#define HD44780_DISPLAY_ONOFF0x08<br />#define HD44780_DISPLAY_OFF0<br />#define HD44780_DISPLAY_ON4<br />#define HD44780_CURSOR_OFF0<br />#define HD44780_CURSOR_ON2<br />#define HD44780_CURSOR_NOBLINK0<br />#define HD44780_CURSOR_BLINK1<br /><br />#define HD44780_DISPLAY_CURSOR_SHIFT0x10<br />#define HD44780_SHIFT_CURSOR0<br />#define HD44780_SHIFT_DISPLAY8<br />#define HD44780_SHIFT_LEFT0<br />#define HD44780_SHIFT_RIGHT4<br /><br />#define HD44780_FUNCTION_SET0x20<br />#define HD44780_FONT5x70<br />#define HD44780_FONT5x104<br />#define HD44780_ONE_LINE0<br />#define HD44780_TWO_LINE8<br />#define HD44780_4_BIT0<br />#define HD44780_8_BIT16<br /><br />#define HD44780_CGRAM_SET0x40<br /><br />#define HD44780_DDRAM_SET0x80<br /><br />//-------------------------------------------------------------------------------------------------<br />//<br />// Deklaracje funkcji<br />//<br />//-------------------------------------------------------------------------------------------------<br /><br />void LCD_WriteCommand(unsigned char);<br />void LCD_WriteData(unsigned char);<br />void LCD_WriteText(char *);<br />void LCD_GoTo(unsigned char, unsigned char);<br />void LCD_Clear(void);<br />void LCD_Home(void);<br />void LCD_Initalize(void);<br /><br />//-------------------------------------------------------------------------------------------------<br />//<br />// Koniec pliku HD44780.h<br />//<br />//-------------------------------------------------------------------------------------------------[/syntax]<br /><br /><strong>main.c</strong><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#include &quot;HD44780.h&quot;  <br /><br />int main(void)<br />{<br />   LCD_Initalize();<br />   _delay_ms(50);<br /><br />   LCD_Clear();<br />   LCD_Home();<br />   LCD_GoTo(0,0);<br />   LCD_WriteText(&quot;Hello World!&quot;);<br /><br />   while(1){          <br /><br />   }<br />}[/syntax]<br /><br /><span style="color: #FF0000">@edit: kod poprawiony - przepraszam za niewiedze. </span><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7393">Tygrys</a> — 15 cze 2015, o 10:47</p><hr />
]]></content>
</entry>
</feed>