<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=8&amp;t=12231&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-07-07T21:35:44+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=8&amp;t=12231&amp;mode</id>
<entry>
<author><name><![CDATA[anshar]]></name></author>
<updated>2015-07-07T21:35:44+01:00</updated>
<published>2015-07-07T21:35:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12231&amp;p=133895#p133895</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12231&amp;p=133895#p133895"/>
<title type="html"><![CDATA[Re: LCD niedziała prawidłowo]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12231&amp;p=133895#p133895"><![CDATA[
Oprócz tego masz jeszcze błąd w funkcji BusyFlag(void), zamiast HIGH_RW powinno być LOW_RS;<br />W funkcji read_byte(void) brakuje HIGH_RW;<br />Masz również błąd w funkcji initialization(void)<br />[syntax=c]//            zła inicjalizacja!<br />//            send_command(0b00001100); //tutaj<br />//            send_command(0b00001000);<br />//            send_command(0b00001100); //i tutaj to samo?<br />//            send_command(0b00000111);<br /><br />            send_command(0x28);// tryb 4-bitowy, 2 wiersze, znak 5x7<br />            send_command(0x08);// wyłączenie kursora<br />            send_command(0x0C);// włączenie wyświetlacza<br />            send_command(0x06);// przesuwanie kursora w prawo bez przesuwania zawartości ekranu[/syntax]<br />Zobacz jeszcze jak wyglądają twoje funkcje do wyświetlania stringów, a jak prawidłowo powinny wyglądać. (poczytaj też o register)  <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=7157">anshar</a> — 7 lip 2015, o 21:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-07-07T20:39:16+01:00</updated>
<published>2015-07-07T20:39:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12231&amp;p=133879#p133879</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12231&amp;p=133879#p133879"/>
<title type="html"><![CDATA[Re: LCD niedziała prawidłowo]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12231&amp;p=133879#p133879"><![CDATA[
<div class="quotetitle">anshar napisał(a):</div><div class="quotecontent"><br />Błąd masz w funkcji read_halfbyte(void);, podpowiem, że na moje oko czegoś tam brakuje.<br /></div><br />A ja podpowiem jeszcze więcej .... <br /><br />1. po pierwsze w BB na DVD masz kod który przecież przepisujesz tylko zmieniasz nazwy - więc można łatwo dostrzec czego brakuje a co kolega anshar wypatrzył<br /><br />2. po drugie - przy tak napisanej funkcji nie ma bata - MUSISZ mieć WARNINGA po kompilacji a ty hmmm ignorujesz warningi ? chyba tak - więc sam widzisz jak to się mści od razu<br /><br />warto żebyś sam znalazł ten błąd na podstawie podpowiedzi bo na pewno zrozumiesz lepiej pewną rzecz odnośnie tego co dzieje się ze zmiennymi lokalnymi wewnątrz funkcji (A w Bluebooku jest opisany dokładnie ich cykl życia - warto sobie to przypomnieć)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 7 lip 2015, o 20:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[squelch]]></name></author>
<updated>2015-07-07T19:46:52+01:00</updated>
<published>2015-07-07T19:46:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12231&amp;p=133871#p133871</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12231&amp;p=133871#p133871"/>
<title type="html"><![CDATA[Re: LCD niedziała prawidłowo]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12231&amp;p=133871#p133871"><![CDATA[
Dzięki ale nie rozumiem gdzie jest ten błąd w funkcji read_halfbyte<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9939">squelch</a> — 7 lip 2015, o 19:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[anshar]]></name></author>
<updated>2015-07-07T17:13:15+01:00</updated>
<published>2015-07-07T17:13:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12231&amp;p=133851#p133851</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12231&amp;p=133851#p133851"/>
<title type="html"><![CDATA[Re: LCD niedziała prawidłowo]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12231&amp;p=133851#p133851"><![CDATA[
Błąd masz w funkcji read_halfbyte(void);, podpowiem, że na moje oko czegoś tam brakuje. <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 4 minutach ]</span></strong><br /><br />Zerknij tutaj:<a href="http://mirekk36.blogspot.co.uk/2013/11/tablica-wskaznikow-we-flash-progmem.html?m=1"  class="postlink">http://mirekk36.blogspot.co.uk/2013/11/tablica-wskaznikow-we-flash-progmem.html?m=1</a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7157">anshar</a> — 7 lip 2015, o 17:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[squelch]]></name></author>
<updated>2015-07-07T15:24:43+01:00</updated>
<published>2015-07-07T15:24:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12231&amp;p=133846#p133846</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12231&amp;p=133846#p133846"/>
<title type="html"><![CDATA[Re: LCD niedziała prawidłowo]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12231&amp;p=133846#p133846"><![CDATA[
No faktycznie działa czyli mam jakiś problem z busy bo jak rw-gnd to wszystko działa<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 26 minutach ]</span></strong><br /><br />Nie wiem gdzie mam błąd z tymi busamiflag.<br />Czemu nie mogę napisać tak<br />char tab_1[] PROGMEM = &quot;FLASH&quot;;<br />char tab_2[] EEMEM = &quot;EEPROM&quot;;<br />W eclipsie wyskakuje błąd<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9939">squelch</a> — 7 lip 2015, o 15:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[anshar]]></name></author>
<updated>2015-07-07T13:30:46+01:00</updated>
<published>2015-07-07T13:30:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12231&amp;p=133837#p133837</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12231&amp;p=133837#p133837"/>
<title type="html"><![CDATA[Re: LCD niedziała prawidłowo]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12231&amp;p=133837#p133837"><![CDATA[
Zrób tak podłącz pin RW wyświetlacza do masy i nie zapomnij zmienić w pliku LCD.h <br />[syntax=c]#define UC_RW 1[/syntax]<br />na <br />[syntax=c]#define UC_RW 0[/syntax]<br /><br />Powinno zadziałać. Możesz zrobić taki test?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7157">anshar</a> — 7 lip 2015, o 13:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[squelch]]></name></author>
<updated>2015-07-07T13:19:05+01:00</updated>
<published>2015-07-07T13:19:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12231&amp;p=133835#p133835</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12231&amp;p=133835#p133835"/>
<title type="html"><![CDATA[Re: LCD niedziała prawidłowo]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12231&amp;p=133835#p133835"><![CDATA[
Biblioteke sam napisałem chociaż mam mirka książkę więc to co przeczytałem w tej książce jest podobne <br />do jego kodu <br />wyświetlacz HD44780 magistrala 4 bitowa Atmega 32 taktowanie wewnętrznym RC 8MH<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9939">squelch</a> — 7 lip 2015, o 13:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[1bobik1]]></name></author>
<updated>2015-07-07T13:00:18+01:00</updated>
<published>2015-07-07T13:00:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12231&amp;p=133832#p133832</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12231&amp;p=133832#p133832"/>
<title type="html"><![CDATA[Re: LCD niedziała prawidłowo]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12231&amp;p=133832#p133832"><![CDATA[
Skąd masz tą bibliotekę ? jaki to LCD ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=464">1bobik1</a> — 7 lip 2015, o 13:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[squelch]]></name></author>
<updated>2015-07-07T12:55:23+01:00</updated>
<published>2015-07-07T12:55:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12231&amp;p=133830#p133830</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12231&amp;p=133830#p133830"/>
<title type="html"><![CDATA[Re: LCD niedziała prawidłowo]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12231&amp;p=133830#p133830"><![CDATA[
Dzięki za odpowiedż jednak nadal coś nie działa<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9939">squelch</a> — 7 lip 2015, o 12:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[squelch]]></name></author>
<updated>2015-07-07T12:55:23+01:00</updated>
<published>2015-07-07T12:55:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12231&amp;p=133829#p133829</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12231&amp;p=133829#p133829"/>
<title type="html"><![CDATA[Re: LCD niedziała prawidłowo]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12231&amp;p=133829#p133829"><![CDATA[
Dzięki za odpowiedż jednak nadal coś nie działa<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9939">squelch</a> — 7 lip 2015, o 12:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[1bobik1]]></name></author>
<updated>2015-07-07T12:39:49+01:00</updated>
<published>2015-07-07T12:39:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12231&amp;p=133827#p133827</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12231&amp;p=133827#p133827"/>
<title type="html"><![CDATA[Re: LCD niedziała prawidłowo]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12231&amp;p=133827#p133827"><![CDATA[
Spróbuj tak:<br /><br />[syntax=c]//char tab&#91;&#93;=&quot;ALA&quot;;<br />        pozition(0,12);<br />        text(&quot;ALA&quot;);[/syntax]<br /><br />a funkcję text zmien tak:<br /><br />[syntax=c]//Funkcja wysyłająca tekst<br />void text(char *text)<br />{<br />        <br /> <br />        while(*text)<br />        {<br />                send_character(*text++);<br />        }<br />}[/syntax]<br /><br />jak będzie działało to pobawisz się z przesunięciami <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=464">1bobik1</a> — 7 lip 2015, o 12:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[squelch]]></name></author>
<updated>2015-07-07T10:25:39+01:00</updated>
<published>2015-07-07T10:25:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12231&amp;p=133809#p133809</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12231&amp;p=133809#p133809"/>
<title type="html"><![CDATA[LCD niedziała prawidłowo]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12231&amp;p=133809#p133809"><![CDATA[
Tak jak w temacie LCD wyświetla tylko jedną litere kiedy napisze ALA to wyświetla mi tylko A.<br />Czy wiecie co mam żle.<br />[syntax=c]//Załączenie pliku nagłówkowego<br />#include&quot;Display_LCD/LCD.h&quot;<br /><br />//Główna funkcja main<br />int main(void)<br />{<br />DDRC|=(1&lt;&lt;PC7);<br />PORTC|=(1&lt;&lt;PC7);<br /><br />initialization();<br />char tab&#91;&#93;=&quot;ALA&quot;;<br />pozition(0,12);<br />text(tab);<br /><br />while(1)<br />{<br /><br />}<br />}[/syntax]<br /><br />[syntax=c]//Załączenie pliku nagłówkowego<br />#include&quot;LCD.h&quot;<br /><br />//Funkcja ustawiająca wszystkie linie danych jako wyjścia<br />void output_LCD(void)<br />{<br />DDR(D4_LCD)|=(1&lt;&lt;D4);<br />DDR(D5_LCD)|=(1&lt;&lt;D5);<br />DDR(D6_LCD)|=(1&lt;&lt;D6);<br />DDR(D7_LCD)|=(1&lt;&lt;D7);<br />DDR(RS_LCD)|=(1&lt;&lt;RS);<br />DDR(RW_LCD)|=(1&lt;&lt;RW);<br />DDR(E_LCD)|=(1&lt;&lt;E);<br />}<br /><br />//Funkcja ustawiająca wszystkie linie danych jako wejścia<br />void intput_LCD(void)<br />{<br />DDR(D4_LCD)&amp;=~(1&lt;&lt;D4);<br />DDR(D5_LCD)&amp;=~(1&lt;&lt;D5);<br />DDR(D6_LCD)&amp;=~(1&lt;&lt;D6);<br />DDR(D7_LCD)&amp;=~(1&lt;&lt;D7);<br />}<br /><br />//Funkcja która wysyła połowę bajtu<br />void half_byte(char byte)<br />{<br />if(byte&amp;(1&lt;&lt;0)) PORT(D4_LCD)|=(1&lt;&lt;D4);<br />else PORT(D4_LCD)&amp;=~(1&lt;&lt;D4);<br /><br />if(byte&amp;(1&lt;&lt;1)) PORT(D5_LCD)|=(1&lt;&lt;D5);<br />else PORT(D5_LCD)&amp;=~(1&lt;&lt;D5);<br /><br />if(byte&amp;(1&lt;&lt;2)) PORT(D6_LCD)|=(1&lt;&lt;D6);<br />else PORT(D6_LCD)&amp;=~(1&lt;&lt;D6);<br /><br />if(byte&amp;(1&lt;&lt;3)) PORT(D7_LCD)|=(1&lt;&lt;D7);<br />else PORT(D7_LCD)&amp;=~(1&lt;&lt;D7);<br />}<br /><br />//Funkcja która wysyła cały bajt<br />void byte(char byte)<br />{<br />//Ustawienie lini danych jako wyjścia<br />output_LCD();<br /><br />//Jeżeli pin RW sterowany jest z mikrokontrolera to go ustawiamy w stan niski<br />#if UC_RW==1<br />LOW_RW;<br />#endif<br /><br />//Wysłanie starszego bajtu<br />HIGH_E;<br />half_byte(byte&gt;&gt;4);<br />LOW_E;<br /><br />//Wysłanie młodszego bajtu<br />HIGH_E;<br />half_byte(byte);<br />LOW_E;<br /><br />//Jeżeli pin RW jest sterowany z mikrokontrolera to czekamy na BusyFlag<br />#if UC_RW==1<br />while(BusyFlag()&amp;(1&lt;&lt;7));<br />#else<br />_delay_us(120);<br />#endif<br />}<br /><br />//Funkcja która wysyła komendę do LCD<br />void send_command(uint8_t command)<br />{<br />LOW_RS;<br />byte(command);<br />}<br /><br />//Funkcja która wysyła znaki do LCD<br />void send_character(char character)<br />{<br />HIGH_RS;<br />byte(character);<br />}<br /><br />#if UC_RW==1<br />//Funkcja która odczytuje połowę bajtu<br />uint8_t read_halfbyte(void)<br />{<br />uint8_t zmienna=0;<br /><br />if(PIN(D4_LCD)&amp;1&lt;&lt;D4) zmienna|=1&lt;&lt;0;<br />if(PIN(D5_LCD)&amp;1&lt;&lt;D5) zmienna|=1&lt;&lt;1;<br />if(PIN(D6_LCD)&amp;1&lt;&lt;D6) zmienna|=1&lt;&lt;2;<br />if(PIN(D7_LCD)&amp;1&lt;&lt;D7) zmienna|=1&lt;&lt;3;<br /><br />return zmienna;<br />}<br /><br />//Funkcja która odczytuje cały bajt<br />uint8_t read_byte(void)<br />{<br />intput_LCD();<br /><br />uint8_t read_byte=0;<br /><br />//Odczyt starszej części bajtu<br />HIGH_E;<br />read_byte|=(read_halfbyte()&lt;&lt;4);<br />LOW_E;<br /><br />//Odczyt starszej części bajtu<br />HIGH_E;<br />read_byte|=read_halfbyte();<br />LOW_E;<br /><br />return read_byte;<br />}<br /><br />//Odczyt BusyFlag<br />uint8_t BusyFlag(void)<br />{<br />HIGH_RW;<br /><br />return read_byte();<br />}<br />#endif<br /><br />//Funkcja inicjalizująca<br />void initialization(void)<br />{<br />output_LCD();<br />_delay_ms(15);<br />HIGH_E;<br />half_byte(0x03);<br />LOW_E;<br />_delay_ms(5);<br />HIGH_E;<br />half_byte(0x03);<br />LOW_E;<br />_delay_us(100);<br />HIGH_E;<br />half_byte(0x03);<br />LOW_E;<br />_delay_us(100);<br />HIGH_E;<br />half_byte(0x02);<br />LOW_E;<br />_delay_us(100);<br /><br />send_command(0b00001100);<br />send_command(0b00001000);<br />send_command(0b00001100);<br />send_command(0b00000111);<br /><br />clear_LCD();<br />}<br /><br />//Funkcja czyszcząca LCD<br />void clear_LCD(void)<br />{<br />send_command(0x01);<br />#if UC_RW==0<br />_delay_ms(5);<br />#endif<br />}<br /><br />#if TEXT==1<br />//Funkcja wysyłająca tekst<br />void text(char *text)<br />{<br />char zmienna=0;<br /><br />while((zmienna=(*text++)))<br />{<br />send_character(((zmienna&gt;=0x80) &amp;&amp; (zmienna&lt;=0x87))?zmienna&amp;0x07:zmienna);<br />}<br />}<br />#endif<br /><br />#if TEXT_P==1<br />//Funkcja wysyłająca tekst z pamięci FLASH<br />void text_P(char *text)<br />{<br />char zmienna=0;<br /><br />while((zmienna=pgm_read_byte(text++)))<br />{<br />send_character(((zmienna&gt;=0x80) &amp;&amp; (zmienna&lt;=0x87))?zmienna&amp;0x07:zmienna);<br />}<br />}<br />#endif<br /><br />#if TEXT_E==1<br />//Funkcja wysyłająca tekst z pamięci EEPROM<br />void text_E(char *text)<br />{<br />char zmienna=0;<br /><br />while((zmienna=eeprom_read_byte(((uint8_t*)(text)))))<br />{<br />if(zmienna==0xFF) break;<br />send_character(((zmienna&gt;=0x80) &amp;&amp; (zmienna&lt;=0x87))?zmienna&amp;0x07:zmienna);<br />}<br />}<br />#endif<br /><br />#if CHARACTER==1<br />//Funkcja która zapisuje znak do pamięci CGRAM<br />void character(uint8_t adr,uint8_t *buf)<br />{<br />send_command(((adr&amp;0x07)*8)+64);<br />uint8_t zmienna;<br /><br />//Wysłanie znaku do CGRAM<br />for(zmienna=0;zmienna&lt;8;zmienna++)<br />{<br />send_command(*buf++);<br />}<br />}<br />#endif<br /><br />#if CHARACTER_P==1<br />//Funkcja która zapisuje znak do pamięci CGRAM<br />void character_P(uint8_t adr,uint8_t *buf)<br />{<br />send_command(((adr&amp;0x07)*8)+64);<br />uint8_t zmienna;<br /><br />//Wysłanie znaku do CGRAM<br />for(zmienna=0;zmienna&lt;8;zmienna++)<br />{<br />send_command(pgm_read_byte(buf++));<br />}<br />}<br />#endif<br /><br />#if CHARACTER_E==1<br />//Funkcja która zapisuje znak do pamięci CGRAM<br />void character_E(uint8_t adr,uint8_t *buf)<br />{<br />send_command(((adr&amp;0x07)*8)+64);<br />uint8_t zmienna;<br /><br />//Wysłanie znaku do CGRAM<br />for(zmienna=0;zmienna&lt;8;zmienna++)<br />{<br />send_command(eeprom_read_byte(buf++));<br />}<br />}<br />#endif<br /><br />//Funkcja która wysyła liczbę dziesiętną<br />void dec(int liczba)<br />{<br />char buffer&#91;17&#93;;<br />text(itoa(liczba,buffer,10));<br />}<br /><br />//Funkcja która wysyła liczbę szestnastkową<br />void hex(int liczba)<br />{<br />char buffer&#91;17&#93;;<br />text(itoa(liczba,buffer,16));<br />}<br /><br />#if POZITION==1<br />void pozition(uint8_t y,uint8_t x)<br />{<br />switch(y)<br />{<br />case 0:<br />y=LINE1;<br />break;<br />case 1:<br />y=LINE2;<br />break;<br />}<br /><br />send_command(0x80+x+y);<br />}<br />#endif[/syntax]<br /><br />[syntax=c]#ifndef LCD_H_<br />#define LCD_H_<br /><br />//Załączenie plików bibliotecznych<br />#include&lt;avr/io.h&gt;<br />#include&lt;util/delay.h&gt;<br />#include&lt;avr/pgmspace.h&gt;<br />#include&lt;avr/eeprom.h&gt;<br />#include&lt;stdlib.h&gt;<br /><br />//Definicje preprocesora na potrzeby PORTx oraz DDRx i PINx<br />#define D4_LCD C<br />#define D4 0<br /><br />#define D5_LCD C<br />#define D5 1<br /><br />#define D6_LCD C<br />#define D6 2<br /><br />#define D7_LCD C<br />#define D7 3<br /><br />//Makrodefinicja która skleja literę z PORTx lub DDRx lub PINx<br />#define PORT(x) MPORT(x)<br />#define MPORT(x) PORT##x<br /><br />#define DDR(x) MDDR(x)<br />#define MDDR(x) DDR##x<br /><br />#define PIN(x) MPIN(x)<br />#define MPIN(x) PIN##x<br /><br />//Definicje preprocesora dla lini sterujących<br />#define RS_LCD C<br />#define RS 4<br /><br />#define RW_LCD C<br />#define RW 5<br /><br />#define E_LCD C<br />#define E 6<br /><br />#define HIGH_RS PORT(RS_LCD)|=(1&lt;&lt;RS)<br />#define LOW_RS PORT(RS_LCD)&amp;=~(1&lt;&lt;RS)<br /><br />#define HIGH_RW PORT(RW_LCD)|=(1&lt;&lt;RW)<br />#define LOW_RW PORT(RW_LCD)&amp;=~(1&lt;&lt;RW)<br /><br />#define HIGH_E PORT(E_LCD)|=(1&lt;&lt;E)<br />#define LOW_E PORT(E_LCD)&amp;=~(1&lt;&lt;E)<br /><br />//UC_RW<br />//0-pin zwarty do GND<br />//1-pin sterowany z procesora<br />#define UC_RW 1<br /><br />//Deklaracje funkcji<br />uint8_t BusyFlag(void);<br />void initialization(void);<br />void clear_LCD(void);<br />void pozition(uint8_t y,uint8_t x);<br />void text(char *text);<br />void text_P(char *text);<br />void text_E(char *text);<br />void character(uint8_t adr,uint8_t *buf);<br />void character_P(uint8_t adr,uint8_t *buf);<br />void character_E(uint8_t adr,uint8_t *buf);<br />void dec(int liczba);<br />void hex(int liczba);<br /><br />//Definicje preprocesora dla niektórych funkcji<br />#define POZITION 1<br />#define TEXT 1<br />#define TEXT_P 1<br />#define TEXT_E 1<br />#define CHARACTER 1<br />#define CHARACTER_P 1<br />#define CHARACTER_E 1<br /><br />//Adresy dla poszczególnych lini początkowych<br />#define LINE1 0x00<br />#define LINE2 0x40<br /><br />#define LCD_ROWS 2<br /><br />#endif /* LCD_H_ */[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9939">squelch</a> — 7 lip 2015, o 10:25</p><hr />
]]></content>
</entry>
</feed>