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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-11-09T19:59:16+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=58&amp;t=19573&amp;mode</id>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2017-11-09T19:59:16+01:00</updated>
<published>2017-11-09T19:59:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19573&amp;p=198610#p198610</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19573&amp;p=198610#p198610"/>
<title type="html"><![CDATA[Re: LCD HD44780 , 16x2 - eclipse nie widzi biblioteki c]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19573&amp;p=198610#p198610"><![CDATA[
<div class="quotetitle">Jakub321 napisał(a):</div><div class="quotecontent"><br />Panie Mirku ja juz tą ksiązkie juz mialem kiedys, jest super, szkoda ze nie ma jej w wersji pdf , mieszkam w holandii wiec z wysylka bedzie problem.<br /></div><br />sorki, ale jak przeczytałem, że przesyłka do Holandii, czyli prakycznie &quot;za miedzę&quot; będzie problemem to o mało co nie zakrztusiłem się ze śmiechu <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> Bez urazy ale kolega pisze jakbyśmy żyli w czasach co najmniej średniowiecza <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Tymczasem nie tylko książki ale i zestawy wysyłamy do klientów w takich zakątkach świata jak:<br /><br />- RPA<br />- Jakarta<br />- Australia<br />- Kanada<br />- Abu Dhabi (Emiraty)<br />- Argentyna<br />- Brazylia<br />- Korea Płdn.<br /><br /><img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /> i wyobraź sobie Pan, że docierają bez najmniejszego problemu <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> więc proszę o odrobinę powagi odnośnie wysyłki do tak małego kraju obok Polski jak Holandia <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> Ja rozumiałbym, gdybyś akurat przebywał np na jakiejś extremalnej ekspedycji na którymś biegunie <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=54">mirekk36</a> — 9 lis 2017, o 19:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Harry]]></name></author>
<updated>2017-11-09T19:06:18+01:00</updated>
<published>2017-11-09T19:06:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19573&amp;p=198608#p198608</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19573&amp;p=198608#p198608"/>
<title type="html"><![CDATA[Re: LCD HD44780 , 16x2 - eclipse nie widzi biblioteki c]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19573&amp;p=198608#p198608"><![CDATA[
A jak ma nie znikać, skoro po delay czyścisz wyświetlacz <br /><br />Wysłane ze srajfona<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14685">Harry</a> — 9 lis 2017, o 19:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jakub321]]></name></author>
<updated>2017-11-09T19:01:57+01:00</updated>
<published>2017-11-09T19:01:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19573&amp;p=198606#p198606</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19573&amp;p=198606#p198606"/>
<title type="html"><![CDATA[Re: LCD HD44780 , 16x2 - eclipse nie widzi biblioteki c]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19573&amp;p=198606#p198606"><![CDATA[
Dziekuje i pozdrawiam <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Mozna zamknac<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1610">Jakub321</a> — 9 lis 2017, o 19:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[anshar]]></name></author>
<updated>2017-11-09T18:59:32+01:00</updated>
<published>2017-11-09T18:59:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19573&amp;p=198605#p198605</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19573&amp;p=198605#p198605"/>
<title type="html"><![CDATA[Re: LCD HD44780 , 16x2 - eclipse nie widzi biblioteki c]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19573&amp;p=198605#p198605"><![CDATA[
Spróbuj tak:<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &quot;HD44780.h&quot;<br />     <br />int main(void)<br />{<br />       LCD_Initalize();<br />       LCD_Clear();<br />     <br />       while(1)<br />       {<br />                LCD_GoTo(0,0);<br />                LCD_WriteText(&quot;Bluebook potrzebny!!&quot;);<br />                _delay_ms( 1000 );<br />                LCD_Clear();  <br />                _delay_ms( 1000 );   <br />         }<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7157">anshar</a> — 9 lis 2017, o 18:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jakub321]]></name></author>
<updated>2017-11-09T18:51:40+01:00</updated>
<published>2017-11-09T18:51:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19573&amp;p=198604#p198604</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19573&amp;p=198604#p198604"/>
<title type="html"><![CDATA[Re: LCD HD44780 , 16x2 - eclipse nie widzi biblioteki c]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19573&amp;p=198604#p198604"><![CDATA[
Witam,<br /><br />Dziekuje za pomoc, dziala.<br />Biblioteki w folderze glownym projektu , oraz popasowanie pinow i portow.<br /><br />Panie Mirku ja juz tą ksiązkie juz mialem kiedys, jest super, szkoda ze nie ma jej w wersji pdf , mieszkam w holandii wiec z wysylka bedzie problem.<br /><br /><br />Skoro juz piszemy o lcd, to mam jeszcze jedno pytanie, nie dziala mi petla z napis pojawia sie i znika , oto kod:<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />    #include &lt;util/delay.h&gt;<br />    #include &lt;avr/interrupt.h&gt;<br />    #include &lt;avr/pgmspace.h&gt;<br />    #include &quot;HD44780.h&quot;<br /><br />    int main(void)<br />    {<br /><br />    LCD_Initalize();<br />    LCD_Clear();<br /><br />   while(1)<br />        {<br />                LCD_GoTo(0,0);<br />                LCD_WriteText(&quot;Bluebook potrzebny!!&quot;);<br />                _delay_ms( 1000 );<br />                 LCD_Clear();<br /><br />                }<br />    }[/syntax]<br /><br />Z diodami delay dziala a tu nie ... <br />Zestaw , atmega 328p , 16 MHz<br /><br />Pozdrawiam<br />Jakub<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1610">Jakub321</a> — 9 lis 2017, o 18:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2017-11-09T10:57:18+01:00</updated>
<published>2017-11-09T10:57:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19573&amp;p=198585#p198585</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19573&amp;p=198585#p198585"/>
<title type="html"><![CDATA[Re: LCD HD44780 , 16x2 - eclipse nie widzi biblioteki c]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19573&amp;p=198585#p198585"><![CDATA[
Ja polecam przede wszystkim zacząć od książki:<br /><br /><!-- m --><a class="postlink" href="http://atnel.pl/mikrokontrolery-avr-jezyk-c.html" >http://atnel.pl/mikrokontrolery-avr-jezyk-c.html</a><!-- m --><br /><br />wtedy stanie się to wszystko jasne i przejrzyste - nie będzie trzeba próbować czy zadziała &quot;może tak&quot; ... a może siak, a może jeszcze inaczej ... są proste zasady które mówią o tym jak dzielić projekt na pliki - w tej książce jest to ładnie przedstawione i mnóstwo innych rzeczy<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 9 lis 2017, o 10:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[micky]]></name></author>
<updated>2017-11-09T10:45:18+01:00</updated>
<published>2017-11-09T10:45:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19573&amp;p=198584#p198584</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19573&amp;p=198584#p198584"/>
<title type="html"><![CDATA[Re: LCD HD44780 , 16x2 - eclipse nie widzi biblioteki c]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19573&amp;p=198584#p198584"><![CDATA[
Nie o to chodzi. Masz różne definicje portow dla RS_PORT i RS_DIR - odwoluja sie do rejestrów różnych portów!<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1546">micky</a> — 9 lis 2017, o 10:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jakub321]]></name></author>
<updated>2017-11-09T07:54:02+01:00</updated>
<published>2017-11-09T07:54:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19573&amp;p=198583#p198583</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19573&amp;p=198583#p198583"/>
<title type="html"><![CDATA[Re: LCD HD44780 , 16x2 - eclipse nie widzi biblioteki c]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19573&amp;p=198583#p198583"><![CDATA[
Xentis , Zealota sprawdze to jak tylko wroce z pracy. <br />Andrzej z ustawieniem bibliotek masz racje, lecz co do konfiguracji pinow mozna je edytowac , jest mi tak wygodnie wpiac to w breadboard ,nie musza one byc jak w lib od radzia, po to masz define aby nadac swoje wlasne porty . Postaram sie jednak dac wszystkie piny na jednakowym porcie, sprawdze jeszcze raz czy skladnia jest okey.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1610">Jakub321</a> — 9 lis 2017, o 07:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Andrzej]]></name></author>
<updated>2017-11-08T22:46:55+01:00</updated>
<published>2017-11-08T22:46:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19573&amp;p=198580#p198580</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19573&amp;p=198580#p198580"/>
<title type="html"><![CDATA[Re: LCD HD44780 , 16x2 - eclipse nie widzi biblioteki c]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19573&amp;p=198580#p198580"><![CDATA[
Sama konfiguracja portów dla LCD jest pomieszana, Zdecyduj się który port używasz A czy D, <br />Tak wygląda Twoja konfiguracja<br />[syntax=c]#define LCD_RS_DIR      DDRA<br />#define LCD_RS_PORT   PORTD<br />#define LCD_RS_PIN      PINA<br />#define LCD_RS        (1 &lt;&lt; PD6)[/syntax]<br /><br />a tak radzia<br />[syntax=c]#define LCD_RS_DIRDDRA<br />#define LCD_RS_PORT         PORTA<br />#define LCD_RS_PINPINA<br />#define LCD_RS(1 &lt;&lt; PA2)[/syntax]<br />widzisz różnice więc jak ma zadziałać, i jak wyżej kolega napisał includowanie plików lcd narmalna magia, zrób folder LCD do niego wrzuć pliki HD44780.c i h w ten sposób + includowanie<br /><br /><a href="https://obrazkiforum.atnel.pl/7001/4c0d65a2967037056831f9c90f51fa1e.jpg"  class="postlink"><img src="https://obrazkiforum.atnel.pl/7001/4c0d65a2967037056831f9c90f51fa1e.jpg" alt="Obrazek" /></a><a href="https://obrazkiforum.atnel.pl/7001/16c037252bcb2d714565de6456197812.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/7001/16c037252bcb2d714565de6456197812.png" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7001">Andrzej</a> — 8 lis 2017, o 22:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Zealota]]></name></author>
<updated>2017-11-08T21:50:55+01:00</updated>
<published>2017-11-08T21:50:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19573&amp;p=198578#p198578</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19573&amp;p=198578#p198578"/>
<title type="html"><![CDATA[Re: LCD HD44780 , 16x2 - eclipse nie widzi biblioteki c]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19573&amp;p=198578#p198578"><![CDATA[
<div class="quotetitle">xentis napisał(a):</div><div class="quotecontent"><br />Coś mi się wydaje że sposób na dołączanie bibliotek jaki zastosowałeś jest niewłaściwy.<br /></div><br /><br />Autorze wątku, w jakiś sposób skopiowałeś biblioteki do katalogu &quot;include&quot; ale wg mnie on nie jest dla użytkownika w ten sposób.<br /><br />Includowanie &quot;hd4780.h&quot; zadziałałoby wtedy, gdy pliki biblioteczne będą zaraz obok pliku main.c<br />Brak pliku źródłowego hd44780.c w katalogu głównym projektu powoduje, że kompilator nie stworzy z niego obiektu hd44780.o zatem linker nie widzi funkcji lcd_write_txt.<br /><br />Twoje zamieszanie jest o tyle ciekawe, że kompilator widzi ten plik nagłówkowy, ale w katalogu C:/hd44780 <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> i dlatego nie zgłasza błędu, ale nadal to jest źle <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Skopiuj wszystkie pliki biblioteczne .h .c do katalogu głównego projektu i wszystko ruszy.<br />Skopiować możesz po prostu z dysku c poprzez ctr+c i ctr+v od razu do okienka Eclipse, jakby to był exsplorator windows.<br />Podsumowując w katalogu głównym projektu musisz mieć:<br />main.c<br />hd44780.c<br />hd44780.h<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 5 minutach ]</span></strong><br /><br /><div class="quotetitle">Zealota napisał(a):</div><div class="quotecontent"><br />Podsumowując w katalogu głównym projektu musisz mieć:<br />main.c<br />hd44780.c<br />hd44780.h<br /></div><br /><br />Z drugiej strony zrób eksperyment. Linię:<br />#include &quot;hd44780.h&quot; zamień na:<br />#include &lt;hd44780.h&gt;<br /><br />a plik źródłowy  hd44780.c skopiuj obok main.c.<br /><br />Deklarację sobie linker pobierze z katalogu na dysku C, a ciało funkcji pojawią się w obiekcie hd44780.o :<br />Oczywiście w tym wypadku to nie jest dobre rozwiązanie i nie należy tak robić, na pewno nie na poczatku <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=16487">Zealota</a> — 8 lis 2017, o 21:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xentis]]></name></author>
<updated>2017-11-08T20:53:07+01:00</updated>
<published>2017-11-08T20:53:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19573&amp;p=198573#p198573</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19573&amp;p=198573#p198573"/>
<title type="html"><![CDATA[Re: LCD HD44780 , 16x2 - eclipse nie widzi biblioteki c]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19573&amp;p=198573#p198573"><![CDATA[
Coś mi się wydaje że sposób na dołączanie bibliotek jaki zastosowałeś jest niewłaściwy. Na początek w nowym projekcie stwórz oprócz pliku main.c, dwa pliki hd44780.c i taki sam plik hd44780.h (oczywiście wypełnij je właściwym kodem)i umieść je luzem obok pliku main.c. W początkowej sekcji main.c zainkluduj plik hd44780.h i powinno zadziałać.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6265">xentis</a> — 8 lis 2017, o 20:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jakub321]]></name></author>
<updated>2017-11-08T20:21:31+01:00</updated>
<published>2017-11-08T20:21:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19573&amp;p=198572#p198572</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19573&amp;p=198572#p198572"/>
<title type="html"><![CDATA[LCD HD44780 , 16x2 - eclipse nie widzi biblioteki c]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19573&amp;p=198572#p198572"><![CDATA[
Witam ,<br /><br />Dawno mnie tu nie bylo ... postanowilem wrocic do elektroniki . Nie posiadam ksiazki Pana Mirka, sprzedalem ja gdy rozstawalem sie z elektronika.<br /><br />Wlasnie zakupilem pelna wersje mkvcalculator, czekam na licencje <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />A więc przejdzmy do rzeczy.<br /><br />Uzywam atmega328p na breadboardzie , oscylator 16 mhz. Plytka dziala , robione wedlug porad pana mirka. Mryganie dioda dziala, wykrywa mkv kalkulator , filtrowanie zasilania wedlug schematow od pana mirka.<br /><br />Utworzylem nowy projekt o nazwie &quot;lcd&quot; , dodalem biblioteke poprzez projekt&gt;properties&gt;c general&gt;paths and symbols , pozniej add i tak oto moj projekt wyglada tak:<br /><br /><a href="https://obrazkiforum.atnel.pl/1610/bc7755a258a4457ee668d92182ff626f.jpg"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/1610/bc7755a258a4457ee668d92182ff626f.jpg" alt="Obrazek" /></a><br /><br /><br />Napisalem prosty program , czesc na bazie informacji z internetu , biblioteki do lcd mam od niejakiego radzia. Nie posiadam juz ksiazki od atnela a narazie mnie nie stac na nowa wiec nie mam dostepu do bibliotek pana mirka, wiec kombinuje z tym co mam.<br /><br />Ponizej:<br /><br /> hd44780.h<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_DIR              DDRA<br />#define LCD_RS_PORT     PORTD<br />#define LCD_RS_PIN              PINA<br />#define LCD_RS                  (1 &lt;&lt; PD6)<br /><br />#define LCD_RW_DIR              DDRA<br />#define LCD_RW_PORT             PORTD<br />#define LCD_RW_PIN              PINA<br />#define LCD_RW                  (1 &lt;&lt; PD7)<br /><br />#define LCD_E_DIR               DDRA<br />#define LCD_E_PORT              PORTB<br />#define LCD_E_PIN               PINA<br />#define LCD_E                   (1 &lt;&lt; PB0)<br /><br />#define LCD_DB4_DIR             DDRA<br />#define LCD_DB4_PORT    PORTD<br />#define LCD_DB4_PIN             PINA<br />#define LCD_DB4                 (1 &lt;&lt; PD5)<br /><br />#define LCD_DB5_DIR             DDRA<br />#define LCD_DB5_PORT    PORTD<br />#define LCD_DB5_PIN             PINA<br />#define LCD_DB5                 (1 &lt;&lt; PD4)<br /><br />#define LCD_DB6_DIR             DDRA<br />#define LCD_DB6_PORT    PORTD<br />#define LCD_DB6_PIN             PINA<br />#define LCD_DB6                 (1 &lt;&lt; PD3)<br /><br />#define LCD_DB7_DIR             DDRA<br />#define LCD_DB7_PORT    PORTD<br />#define LCD_DB7_PIN             PINA<br />#define LCD_DB7                 (1 &lt;&lt; PD2)<br /><br />//-------------------------------------------------------------------------------------------------<br />//<br />// Instrukcje kontrolera Hitachi HD44780<br />//<br />//-------------------------------------------------------------------------------------------------<br /><br />#define HD44780_CLEAR                                   0x01<br /><br />#define HD44780_HOME                                    0x02<br /><br />#define HD44780_ENTRY_MODE                              0x04<br />        #define HD44780_EM_SHIFT_CURSOR         0<br />        #define HD44780_EM_SHIFT_DISPLAY        1<br />        #define HD44780_EM_DECREMENT            0<br />        #define HD44780_EM_INCREMENT            2<br /><br />#define HD44780_DISPLAY_ONOFF                   0x08<br />        #define HD44780_DISPLAY_OFF                     0<br />        #define HD44780_DISPLAY_ON                      4<br />        #define HD44780_CURSOR_OFF                      0<br />        #define HD44780_CURSOR_ON                       2<br />        #define HD44780_CURSOR_NOBLINK          0<br />        #define HD44780_CURSOR_BLINK            1<br /><br />#define HD44780_DISPLAY_CURSOR_SHIFT    0x10<br />        #define HD44780_SHIFT_CURSOR            0<br />        #define HD44780_SHIFT_DISPLAY           8<br />        #define HD44780_SHIFT_LEFT                      0<br />        #define HD44780_SHIFT_RIGHT                     4<br /><br />#define HD44780_FUNCTION_SET                    0x20<br />        #define HD44780_FONT5x7                         0<br />        #define HD44780_FONT5x10                        4<br />        #define HD44780_ONE_LINE                        0<br />        #define HD44780_TWO_LINE                        8<br />        #define HD44780_4_BIT                           0<br />        #define HD44780_8_BIT                           16<br /><br />#define HD44780_CGRAM_SET                               0x40<br /><br />#define HD44780_DDRAM_SET                               0x80<br /><br />//-------------------------------------------------------------------------------------------------<br />//<br />// Deklaracje funkcji<br />//<br />//-------------------------------------------------------------------------------------------------<br /><br />void LCD_WriteCommand(unsigned char);<br />unsigned char LCD_ReadStatus(void);<br />void LCD_WriteData(unsigned char);<br />unsigned char LCD_ReadData(void);<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 />a tutaj <br /><br />hd44780.c<br /><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 /><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 wystawiająca półbajt na magistralę danych<br />//<br />//-------------------------------------------------------------------------------------------------<br />unsigned char _LCD_InNibble(void)<br />{<br />unsigned char tmp = 0;<br /><br />if(LCD_DB4_PIN &amp; LCD_DB4)<br />        tmp |= (1 &lt;&lt; 0);<br />if(LCD_DB5_PIN &amp; LCD_DB5)<br />        tmp |= (1 &lt;&lt; 1);<br />if(LCD_DB6_PIN &amp; LCD_DB6)<br />        tmp |= (1 &lt;&lt; 2);<br />if(LCD_DB7_PIN &amp; LCD_DB7)<br />        tmp |= (1 &lt;&lt; 3);<br />return tmp;<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_DB4_DIR |= LCD_DB4;<br />LCD_DB5_DIR |= LCD_DB5;<br />LCD_DB6_DIR |= LCD_DB6;<br />LCD_DB7_DIR |= LCD_DB7;<br /><br />LCD_RW_PORT &amp;= ~LCD_RW;<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 />while(LCD_ReadStatus()&amp;0x80);<br />}<br />//-------------------------------------------------------------------------------------------------<br />//<br />// Funkcja odczytu bajtu z wyświetacza (bez rozróżnienia instrukcja/dane).<br />//<br />//-------------------------------------------------------------------------------------------------<br /><br />unsigned char _LCD_Read(void)<br />{<br />unsigned char tmp = 0;<br />LCD_DB4_DIR &amp;= ~LCD_DB4;<br />LCD_DB5_DIR &amp;= ~LCD_DB5;<br />LCD_DB6_DIR &amp;= ~LCD_DB6;<br />LCD_DB7_DIR &amp;= ~LCD_DB7;<br /><br />LCD_RW_PORT |= LCD_RW;<br />LCD_E_PORT |= LCD_E;<br />tmp |= (_LCD_InNibble() &lt;&lt; 4);<br />LCD_E_PORT &amp;= ~LCD_E;<br />LCD_E_PORT |= LCD_E;<br />tmp |= _LCD_InNibble();<br />LCD_E_PORT &amp;= ~LCD_E;<br />return tmp;<br />}<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 />//<br />// Funkcja odczytu bajtu statusowego<br />//<br />//-------------------------------------------------------------------------------------------------<br />unsigned char LCD_ReadStatus(void)<br />{<br />LCD_RS_PORT &amp;= ~LCD_RS;<br />return _LCD_Read();<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 odczytu danych z pamięci wyświetlacza<br />//<br />//-------------------------------------------------------------------------------------------------<br />unsigned char LCD_ReadData(void)<br />{<br />LCD_RS_PORT |= LCD_RS;<br />return _LCD_Read();<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 />LCD_RW_DIR      |= LCD_RW;  //<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 />LCD_RW_PORT &amp;= ~LCD_RW;<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 />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 />Gdy kompiluje program bez instrukcji int main , eclipse kompiluje hexa, natomiast gdy dam prosty program zachowuje sie jakby nie widzial hd44780.c i instrukcji. <br /><br />Zdjecie:<br /><br /><a href="https://obrazkiforum.atnel.pl/1610/f990b2aeb0315f68f6873428fc06f08b.jpg"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/1610/f990b2aeb0315f68f6873428fc06f08b.jpg" alt="Obrazek" /></a><br /><br /><br />Dodam iz porty w hd44780.h sa ustawione wedlug mojego schematu.<br />Ps . probowalem biblioteki od tego radzia z rw i bez , w obu przypadkach mam ten sam problem.<br /><br />Czy moglbym prosic o pomoc z rozwiazaniem tego problemu.<br /><br />Pozdrawiam<br />Jakub<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1610">Jakub321</a> — 8 lis 2017, o 20:21</p><hr />
]]></content>
</entry>
</feed>