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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-02-13T19:51:43+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=17613&amp;mode</id>
<entry>
<author><name><![CDATA[michaeleagle]]></name></author>
<updated>2017-02-13T19:51:43+01:00</updated>
<published>2017-02-13T19:51:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17613&amp;p=182580#p182580</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17613&amp;p=182580#p182580"/>
<title type="html"><![CDATA[Re: Problem z napisaniem biblioteki LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17613&amp;p=182580#p182580"><![CDATA[
Problemem okazała się błędna procedura odczytu połówki bajtu.<br />Napisałem ją tak:<br />[syntax=c]uint8_t lcd_read_half(void)     //odczyt połówki bajtu<br />{<br />        uint8_t result=0;<br />        if(PIN(D4PORT) &amp; 0x01) result |= 0x01;<br />        if(PIN(D5PORT) &amp; 0x02) result |= 0x02;<br />        if(PIN(D6PORT) &amp; 0x04) result |= 0x04;<br />        if(PIN(D7PORT) &amp; 0x08) result |= 0x08;<br /> <br />        return result;<br />}[/syntax]<br /><br />Dokonywałem operacji iloczynu bitowego rejestru wejściowego z wartością np. 0x01 a powinno być z  np.(1&lt;&lt;D4PIN) bo przecież sprawdzamy jaki stan znajduje się nie na akurat 1 bicie, tylko na tym, gdzie podłączona jest określona linia danych.<br /><br />Czyli powinno być:<br />[syntax=c]uint8_t lcd_read_half(void)//odczyt połówki bajtu<br />{<br />uint8_t result=0;<br />if(PIN(D4PORT) &amp; (1&lt;&lt;D4PIN)) result |= (1&lt;&lt;0);<br />if(PIN(D5PORT) &amp; (1&lt;&lt;D5PIN)) result |= (1&lt;&lt;1);<br />if(PIN(D6PORT) &amp; (1&lt;&lt;D6PIN)) result |= (1&lt;&lt;2);<br />if(PIN(D7PORT) &amp; (1&lt;&lt;D7PIN)) result |= (1&lt;&lt;3);<br /><br />return result;<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=16396">michaeleagle</a> — 13 lut 2017, o 19:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Bartek123]]></name></author>
<updated>2017-02-13T18:07:46+01:00</updated>
<published>2017-02-13T18:07:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17613&amp;p=182562#p182562</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17613&amp;p=182562#p182562"/>
<title type="html"><![CDATA[Re: Problem z napisaniem biblioteki LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17613&amp;p=182562#p182562"><![CDATA[
Nie temat do zamknięcia tylko jeszcze podaj co się okazało przyczyną niepoprawnego działania dla osób które będą miały być może podobny problem <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=10617">Bartek123</a> — 13 lut 2017, o 18:07</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[michaeleagle]]></name></author>
<updated>2017-02-13T17:12:26+01:00</updated>
<published>2017-02-13T17:12:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17613&amp;p=182559#p182559</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17613&amp;p=182559#p182559"/>
<title type="html"><![CDATA[Re: Problem z napisaniem biblioteki LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17613&amp;p=182559#p182559"><![CDATA[
Dobra, dałem sobie radę.<br />Temat do zamknięcia.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=16396">michaeleagle</a> — 13 lut 2017, o 17:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[michaeleagle]]></name></author>
<updated>2017-02-13T14:13:39+01:00</updated>
<published>2017-02-13T14:13:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17613&amp;p=182555#p182555</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17613&amp;p=182555#p182555"/>
<title type="html"><![CDATA[Re: Problem z napisaniem biblioteki LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17613&amp;p=182555#p182555"><![CDATA[
Dziękuję Panowie serdecznie za uwagę póki nic się jeszcze złego nie stało.<br />A może któryś rzuci okiem na kod?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=16396">michaeleagle</a> — 13 lut 2017, o 14:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2017-02-13T14:10:45+01:00</updated>
<published>2017-02-13T14:10:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17613&amp;p=182554#p182554</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17613&amp;p=182554#p182554"/>
<title type="html"><![CDATA[Re: Problem z napisaniem biblioteki LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17613&amp;p=182554#p182554"><![CDATA[
<div class="quotetitle">HomoChemicus napisał(a):</div><div class="quotecontent"><br />A ja tak zapytam. Czy ty na prawdę zasilasz podświetlenie bezpośrednio z pinu, bez tranzystora?<br /></div><br />Dokładnie ! Łoj no masakra - można uwalić procka taką metodą, toż podświetlenie wciąga KUPĘ prądu, więc tylko przez jakiś tranzystor<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 13 lut 2017, o 14:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[HomoChemicus]]></name></author>
<updated>2017-02-13T13:57:38+01:00</updated>
<published>2017-02-13T13:57:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17613&amp;p=182551#p182551</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17613&amp;p=182551#p182551"/>
<title type="html"><![CDATA[Re: Problem z napisaniem biblioteki LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17613&amp;p=182551#p182551"><![CDATA[
A ja tak zapytam. Czy ty na prawdę zasilasz podświetlenie bezpośrednio z pinu, bez tranzystora?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10470">HomoChemicus</a> — 13 lut 2017, o 13:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[michaeleagle]]></name></author>
<updated>2017-02-13T13:04:08+01:00</updated>
<published>2017-02-13T13:04:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17613&amp;p=182546#p182546</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17613&amp;p=182546#p182546"/>
<title type="html"><![CDATA[Re: Problem z napisaniem biblioteki LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17613&amp;p=182546#p182546"><![CDATA[
Przez przypadek to dałem, jak testowałem.Nie ma to żadnego znaczenia.I tak nic nie wyświetla.<br />Normalnie powinno tam być np. lcd_str(intro);<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=16396">michaeleagle</a> — 13 lut 2017, o 13:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[janusz17]]></name></author>
<updated>2017-02-13T12:39:58+01:00</updated>
<published>2017-02-13T12:39:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17613&amp;p=182543#p182543</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17613&amp;p=182543#p182543"/>
<title type="html"><![CDATA[Re: Problem z napisaniem biblioteki LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17613&amp;p=182543#p182543"><![CDATA[
W programie głównym, po wykonaniu inicjalizacji LCD wysyłasz wartość 0x01 ( lcd_data(0x01) ), to przepraszam ale co spodziewasz się zobaczyć na wyświetlaczu?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1226">janusz17</a> — 13 lut 2017, o 12:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[michaeleagle]]></name></author>
<updated>2017-02-13T11:36:34+01:00</updated>
<published>2017-02-13T11:36:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17613&amp;p=182541#p182541</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17613&amp;p=182541#p182541"/>
<title type="html"><![CDATA[Re: Problem z napisaniem biblioteki LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17613&amp;p=182541#p182541"><![CDATA[
Ok Mirku, poprawione.<br />Na następny raz będę wiedział <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=16396">michaeleagle</a> — 13 lut 2017, o 11:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2017-02-13T11:22:03+01:00</updated>
<published>2017-02-13T11:22:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17613&amp;p=182540#p182540</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17613&amp;p=182540#p182540"/>
<title type="html"><![CDATA[Re: Problem z napisaniem biblioteki LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17613&amp;p=182540#p182540"><![CDATA[
<span style="color: #FF0000">ok panie kochany - ja wszystko rozumiem, ale bardzo proszę edytować swój pierwszy post i poprawić kody zgodnie z instrukcją na forum ok?<br /><br /><!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic7402.html" >topic7402.html</a><!-- l --><br /><br />bardzo proszę</span><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 13 lut 2017, o 11:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[michaeleagle]]></name></author>
<updated>2017-02-13T11:19:15+01:00</updated>
<published>2017-02-13T11:19:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17613&amp;p=182539#p182539</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17613&amp;p=182539#p182539"/>
<title type="html"><![CDATA[Re: Problem z napisaniem biblioteki LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17613&amp;p=182539#p182539"><![CDATA[
Tak z biblioteką z BB działał poprawnie.<br />Ale jak porównuje to co napisałem z kodem z płyty to jest podobnie, poza małymi wyjątkami<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=16396">michaeleagle</a> — 13 lut 2017, o 11:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jarecki]]></name></author>
<updated>2017-02-13T11:12:11+01:00</updated>
<published>2017-02-13T11:12:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17613&amp;p=182538#p182538</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17613&amp;p=182538#p182538"/>
<title type="html"><![CDATA[Re: Problem z napisaniem biblioteki LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17613&amp;p=182538#p182538"><![CDATA[
A z biblioteką z BB wyświetlacz działa poprawnie?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2511">Jarecki</a> — 13 lut 2017, o 11:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[michaeleagle]]></name></author>
<updated>2017-02-13T13:07:28+01:00</updated>
<published>2017-02-13T11:03:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17613&amp;p=182536#p182536</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17613&amp;p=182536#p182536"/>
<title type="html"><![CDATA[Problem z napisaniem biblioteki LCD]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17613&amp;p=182536#p182536"><![CDATA[
Cześć<br />Po przeczytaniu z BB rozdziału na temat wyświetlacza LCD(HD44708) postanowiłem napisać własną bibliotekę wzorując się na tej z książki.Chciałem rozpocząć od podstaw, żeby później dodawać lepsze i uniwersalne rozwiązania.Jednak mój program niestety nie działa.Sprawdziłem krytyczne momenty i nie jestem w stanie sam sobie odpowiedzieć, dlaczego to nie działa.<br />Nie wiem czy to dobre miejsce i czy ktoś będzie chciał rzucić na to okiem ale byłbym wdzięczny.<br /><br />Schemat:<br /><img src="https://obrazkiforum.atnel.pl/16396/f0954ea22c009473777226f5c45b62c1.PNG" alt="Obrazek" /><br /><br />Plik main.c:<br />[syntax=c]/*<br /> * main.c<br /> *<br /> *Obsługa wyświetlacza LCD(HD44780)<br /> *2x16,RW do uC<br /> *<br /> *  Created on: 09.02.2017<br /> *      Author: Eagle<br /> */<br /><br />//pliki biblioteczne<br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;avr/eeprom.h&gt;<br />#include &quot;lcd.h&quot;<br /><br /><br />//testowe łańcuchy znaków<br />char intro&#91;&#93; = &quot;Created by&quot;;//napis w RAM<br />const char PROGMEM imie&#91;&#93;  = &quot;M&quot;;//napis w FLASH<br />char  EEMEM nazwisko&#91;&#93; = &quot;Orzel&quot;;//napis w EEPROM<br /><br />//główna funkcja<br />int main(void)<br />{<br />//inicjalizacja procesora<br />lcd_init();<br />lcd_lamp_on();<br />lcd_str(intro);<br />//pętla główna<br />while(1);<br /><br />}//koniec main[/syntax]<br /><br />Plik lcd.c<br />[syntax=c]/*<br /> * lcd.c<br /> *<br /> *Plik źródłowy biblioteki LCD(HD44780)<br /> *Obsługa wyświetlacza w trybie 4-bitowym<br /> *2x16,RW do uC<br /> *<br /> *  Created on: 10.02.2017<br /> *      Author: Eagle<br /> */<br /><br />//pliki biblioteczne<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 &quot;lcd.h&quot;<br /><br />//definicje funkcji<br />void lcd_lamp_on(void)//włącza podświetlenie<br />{<br />DDR(LAMPPORT) |= (1&lt;&lt;LAMPPIN);<br />PORT(LAMPPORT) |= (1&lt;&lt;LAMPPIN);<br />}<br /><br />void lcd_lamp_off(void)//wyłącza podświetlenie<br />{<br />PORT(LAMPPORT) &amp;=~ (1&lt;&lt;LAMPPIN);<br />}<br /><br />void lcd_line_out(void)//ustawienie linii jako wyjśc<br />{<br />//linie danych<br />DDR(D7PORT) |= (1&lt;&lt;D7PIN);<br />DDR(D6PORT) |= (1&lt;&lt;D6PIN);<br />DDR(D5PORT) |= (1&lt;&lt;D5PIN);<br />DDR(D4PORT) |= (1&lt;&lt;D4PIN);<br />//linie sterujące<br />DDR(EPORT)|= (1&lt;&lt;EPIN);<br />DDR(RSPORT)|= (1&lt;&lt;RSPIN);<br />DDR(RWPORT)|= (1&lt;&lt;RWPIN);<br />}<br /><br />void lcd_line_in(void)//ustawienie linii jako wejśc<br />{<br />//linie danych<br />DDR(D7PORT) &amp;=~ (1&lt;&lt;D7PIN);<br />DDR(D6PORT) &amp;=~ (1&lt;&lt;D6PIN);<br />DDR(D5PORT) &amp;=~ (1&lt;&lt;D5PIN);<br />DDR(D4PORT) &amp;=~ (1&lt;&lt;D4PIN);<br /><br />}<br /><br />void lcd_send_half(uint8_t data)//wysłanie połówki bajtu<br />{<br />if(data &amp; 0x01)PORT(D4PORT) |= (1&lt;&lt;D4PIN);<br />elsePORT(D4PORT) &amp;=~ (1&lt;&lt;D4PIN);<br />if(data &amp; 0x02)PORT(D5PORT) |= (1&lt;&lt;D5PIN);<br />elsePORT(D5PORT) &amp;=~ (1&lt;&lt;D5PIN);<br />if(data &amp; 0x04)PORT(D6PORT) |= (1&lt;&lt;D6PIN);<br />elsePORT(D6PORT) &amp;=~ (1&lt;&lt;D6PIN);<br />if(data &amp; 0x08)PORT(D7PORT) |= (1&lt;&lt;D7PIN);<br />elsePORT(D7PORT) &amp;=~ (1&lt;&lt;D7PIN);<br />}<br /><br />static inline void lcd_send(unsigned char _data)//wysłanie całego bajtu<br />{<br />lcd_line_out();<br />CLRRW;<br />//wysłanie starszej połówki<br />SETE;<br />lcd_send_half(_data&gt;&gt;4);<br />CLRE;<br />//wysłanie młodszej połówki<br />SETE;<br />lcd_send_half(_data);<br />CLRE;<br /><br />while(lcd_check_bf());<br />}<br /><br />void lcd_data(uint8_t data)//wysłanie danych<br />{<br />SETRS;<br />lcd_send(data);<br />}<br /><br />void lcd_cmd(uint8_t cmd)//wysłanie komend<br />{<br />CLRRS;<br />lcd_send(cmd);<br />}<br /><br />uint8_t lcd_read_half(void)//odczyt połówki bajtu<br />{<br />uint8_t result=0;<br />if(PIN(D4PORT) &amp; 0x01) result |= 0x01;<br />if(PIN(D5PORT) &amp; 0x02) result |= 0x02;<br />if(PIN(D6PORT) &amp; 0x04) result |= 0x04;<br />if(PIN(D7PORT) &amp; 0x08) result |= 0x08;<br /><br />return result;<br />}<br /><br />static inline uint8_t lcd_read(void)//odczyt całego bajtu<br />{<br />uint8_t wynik=0;<br />lcd_line_in();<br />SETRW;<br />//odczyt starszej połówki<br />SETE;<br />wynik = ( (lcd_read_half()&lt;&lt;4) );<br />CLRE;<br /><br />//odczyt młodszej połówki<br />SETE;<br />wynik |= (lcd_read_half());<br />CLRE;<br /><br />return wynik;<br />}<br /><br />uint8_t lcd_check_bf(void)//sprawdzenie flagi zajętości<br />{<br />CLRRS;<br />if((lcd_read() &amp; 0x80) == 0x80)//1 na pinie D7<br />return 1;//flaga zajęta<br />else<br />return 0;//flaga wolna<br />}<br /><br />void lcd_init(void)//inicjalizacja wyświetlacza<br />{<br />lcd_line_out();<br />SETRS;<br />SETE;<br />SETRW;<br /><br />_delay_ms(15);<br />CLRRS;<br />CLRE;<br />CLRRW;<br /><br />SETE;<br />lcd_send_half(0x03);<br />CLRE;<br />_delay_ms(4.1);<br /><br />SETE;<br />lcd_send_half(0x03);<br />CLRE;<br />_delay_us(100);<br /><br />SETE;<br />lcd_send_half(0x03);<br />CLRE;<br />_delay_us(100);<br /><br />SETE;<br />lcd_send_half(0x02);<br />CLRE;<br />_delay_us(100);<br /><br />lcd_cmd(0x28);<br />lcd_cmd(0x08);<br />lcd_cmd(0x0C);<br />lcd_cmd(0x06);<br />lcd_cmd(0x01);//clear display<br />}<br /><br />void lcd_str(char *tab)//wysyła ciąg znaków z pamięci RAM<br />{<br />char sign;<br />while((sign=*(tab++)))<br />lcd_data(sign);<br />}<br /><br />void lcd_str_p(const char *tab)//wysyła ciąg znaków z pamięci FLASH<br />{<br />char sign;<br />while( (sign=pgm_read_byte(tab++)) )<br />lcd_data(sign);<br />}<br /><br />void lcd_str_e(char *tab)//wysyła ciąg znaków z pamięci EEPROM<br />{<br />char sign;<br />while( (sign=eeprom_read_byte(tab++)) )<br />lcd_data(sign);<br />}<br /><br />void lcd_cursor(uint8_t y,uint8_t x)//ustala kursor w wybranej pozycji<br />{<br />uint8_t score;<br />score=0x80+y+x;<br />lcd_cmd(score);<br /><br />}[/syntax]<br /><br />Plik lcd.h<br />[syntax=c]/*<br /> * lcd.h<br /> *<br /> *Plik nagłówkowy biblioteki LCD(HD44780)<br /> *Obsługa wyświetlacza w trybie 4-bitowym<br /> *2x16,RW do uC<br /> *<br /> *  Created on: 09.02.2017<br /> *      Author: Eagle<br /> */<br /><br />/*<br /> * RS: 0-komenda1-dane<br /> * RW: 0-zapis1-odczyt<br /> * E:  0-OFF1-ON<br /> */<br /><br />#ifndef LCD_H_<br />#define LCD_H_<br /><br />//linie danych LCD<br />#define D7PORT C<br />#define D6PORT C<br />#define D5PORT C<br />#define D4PORT C<br />#define D7PIN 5<br />#define D6PIN 4<br />#define D5PIN 3<br />#define D4PIN 2<br />//linie sterujące<br />#define EPORT B<br />#define RWPORT B<br />#define RSPORT B<br />#define EPIN 3<br />#define RWPIN 2<br />#define RSPIN 1<br />//linia oświetlenia<br />#define LAMPPORT C<br />#define LAMPPIN 0<br /><br />//makra dostępu do portów i pinów<br />//PORTx<br />#define PORT(x) _PORT(x)<br />#define _PORT(x) (PORT##x)<br />//PINx<br />#define PIN(x) _PIN(x)<br />#define _PIN(x) (PIN##x)<br />//DDRx<br />#define DDR(x) _DDR(x)<br />#define _DDR(x) (DDR##x)<br /><br />//komendy sterujące<br />#define SETRWPORT(RWPORT) |= (1&lt;&lt;RWPIN)//RW=1<br />#define CLRRWPORT(RWPORT) &amp;=~ (1&lt;&lt;RWPIN)//RW=0<br />#define SETRS PORT(RSPORT) |= (1&lt;&lt;RSPIN)//RS=1<br />#define CLRRS PORT(RSPORT) &amp;=~ (1&lt;&lt;RSPIN)//RS=0<br />#define SETEPORT(EPORT) |= (1&lt;&lt;EPIN)//E=1<br />#define CLREPORT(EPORT) &amp;=~ (1&lt;&lt;EPIN)//E=0<br /><br /><br />//deklaracje funkcji<br />void lcd_lamp_on(void);//włącza podświetlenie<br />void lcd_lamp_off(void);//wyłącza podświetlenie<br />void lcd_line_out(void);//ustawienie linii jako wyjśc<br />void lcd_line_in(void);//ustawienie linii jako wejśc<br />void lcd_send_half(uint8_t data);//wysyłanie połówki bajtu<br />void lcd_data(uint8_t data);//wysłanie danych<br />void lcd_cmd(uint8_t cmd);//wysłanie komend<br />uint8_t lcd_read_half(void);//odczyt połówki bajtu<br />void lcd_init(void);//inicjalizacja wyświetlacza<br />uint8_t lcd_check_bf(void);//sprawdzenie flagi zajętości<br />void lcd_str(char *tab);//wysyła ciąg znaków z pamięci RAM<br />void lcd_str_p(const char *tab);//wysyła ciąg znaków z pamięci FLASH<br />void lcd_str_e(char *tab);//wysyła ciąg znaków z pamięci EEPROM<br />void lcd_cursor(uint8_t y,uint8_t x);//ustala kursor w wybranej pozycji<br /><br />#endif /* LCD_H_ */[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=16396">michaeleagle</a> — 13 lut 2017, o 11:03</p><hr />
]]></content>
</entry>
</feed>