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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-12-14T10:03:43+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=13868&amp;mode</id>
<entry>
<author><name><![CDATA[elerbe]]></name></author>
<updated>2015-12-14T10:03:43+01:00</updated>
<published>2015-12-14T10:03:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13868&amp;p=147928#p147928</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13868&amp;p=147928#p147928"/>
<title type="html"><![CDATA[Re: hd77480 8bit]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13868&amp;p=147928#p147928"><![CDATA[
Witam, wyświetlacz ruszył zgodnie z oczekiwaniami. Problem leżał w złej inicjalizacji- nieco doczytałem i już jest w porządku.<br />Serdecznie dziękuję wszystkim zainteresowanym.<br /><br />Temat do zamknięcia.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5342">elerbe</a> — 14 gru 2015, o 10:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2015-12-14T09:35:57+01:00</updated>
<published>2015-12-14T09:35:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13868&amp;p=147926#p147926</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13868&amp;p=147926#p147926"/>
<title type="html"><![CDATA[Re: hd77480 8bit]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13868&amp;p=147926#p147926"><![CDATA[
Tak jest masz rację.<br />Najpierw <br />EN ustawiamy w stan wysoki <br />ustawiamy bity na liniach danych<br />i EN w stan niski aby zapisać do sterownika.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 14 gru 2015, o 09:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[elerbe]]></name></author>
<updated>2015-12-14T08:32:45+01:00</updated>
<published>2015-12-14T08:32:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13868&amp;p=147921#p147921</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13868&amp;p=147921#p147921"/>
<title type="html"><![CDATA[Re: hd77480 8bit]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13868&amp;p=147921#p147921"><![CDATA[
Dziękuję za odpowiedzi.<br />Tak jak pisałem wcześniej na bibliotece Pana Mirka wyświetlacz działał poprawnie. <br />Wydaje mi się, że ustawienie SET_EN jest poprawne. Może ktoś posiada jakiś sprawdzony kod, i mógłby sprawdzić co robię źle?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5342">elerbe</a> — 14 gru 2015, o 08:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2015-12-14T07:55:38+01:00</updated>
<published>2015-12-14T07:55:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13868&amp;p=147917#p147917</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13868&amp;p=147917#p147917"/>
<title type="html"><![CDATA[Re: hd77480 8bit]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13868&amp;p=147917#p147917"><![CDATA[
Piszę z głowy a więc z niczego, ale... czy przy zapisie bajtu do<br />wyświetlacza nie powinieneś &gt;najpierw&lt; wystawić odpowiednie<br />bity na porcie a dopiero potem dać sygnał SET_EN?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 14 gru 2015, o 07:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[yaiba83]]></name></author>
<updated>2015-12-13T22:48:15+01:00</updated>
<published>2015-12-13T22:48:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13868&amp;p=147901#p147901</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13868&amp;p=147901#p147901"/>
<title type="html"><![CDATA[Re: hd77480 8bit]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13868&amp;p=147901#p147901"><![CDATA[
A na Mirkowej bibliotece wyświetlacz działał?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2332">yaiba83</a> — 13 gru 2015, o 22:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[elerbe]]></name></author>
<updated>2015-12-13T19:54:50+01:00</updated>
<published>2015-12-13T19:54:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13868&amp;p=147875#p147875</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13868&amp;p=147875#p147875"/>
<title type="html"><![CDATA[hd77480 8bit]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13868&amp;p=147875#p147875"><![CDATA[
Dobry wieczór,<br />Po dłuższej przerwie z AVR wracam z projektem wykorzystującym LCD obsługiwany na 8bitach bez odczytu z wyświetlacza.<br />Konfiguracja: <br />ATmega16, wewnętrzny kwarc 8MHz, JTAG-enabled.<br />Zarówno pinout jak i założenia nie mogą zostać zmienione. JTAGA nie mam, aczkolwiek jest &quot;przewidziany&quot; w projekcie.<br /><br />Biblioteki Pana Mirka jak zwykle działają bez żadnych problemów. &quot;Nieco&quot; z nich uszczypnąłem. Nie wiem czy błąd jest w nieodpowiedniej inicjalizacji, czy może przez brak doświadczenia głupio zdefiniowałem/użyłem jakiś pin.<br /><br />Dodam, że próbowałem uruchomić bibliotekę ze strony radzio.dxp.pl, jednak nie udała mi się ta sztuka, co bardzo mnie dziwi- wina stoi po stronie złych połączeń?<br /><br />Serdecznie proszę o komentarze, zarówno te krytyczne jak i niosące nieco pomocy <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Dzięki z góry<br /><br />hd44780.h<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#define RS_DIRDDRC<br />#define RS_PORT PORTC<br />#define RS(1 &lt;&lt; PC1)<br /><br />#define EN_DIRDDRC<br />#define EN_PORTPORTC<br />#define EN(1 &lt;&lt; PC0)<br /><br />#define D7_DIR DDRD<br />#define D7_PORTPORTD<br />#define D7(1 &lt;&lt; PD7)<br />#define D6_DIR DDRD<br />#define D6_PORTPORTD<br />#define D6(1 &lt;&lt; PD6)<br />#define D5_DIR DDRD<br />#define D5_PORTPORTD<br />#define D5(1 &lt;&lt; PD5)<br />#define D4_DIR DDRD<br />#define D4_PORTPORTD<br />#define D4(1 &lt;&lt; PD4)<br /><br />#define D3_DIR DDRA<br />#define D3_PORTPORTA<br />#define D3(1 &lt;&lt; PA7)<br />#define D2_DIR DDRA<br />#define D2_PORTPORTA<br />#define D2(1 &lt;&lt; PA6)<br />#define D1_DIR DDRA<br />#define D1_PORTPORTA<br />#define D1(1 &lt;&lt; PA5)<br />#define D0_DIR DDRA<br />#define D0_PORTPORTA<br />#define D0(1 &lt;&lt; PA4)<br /><br />// Komendy sterujące<br />#define LCDC_CLS0x01<br />#define LCDC_HOME0x02<br />#define LCDC_ENTRY0x04<br />#define LCDC_ENTRYR0x02<br />#define LCDC_ENTRYL0<br />#define LCDC_MOVE0x01<br />#define LCDC_ONOFF0x08<br />#define LCDC_DISPLAYON0x04<br />#define LCDC_CURSORON0x02<br />#define LCDC_CURSOROFF0<br />#define LCDC_BLINKON0x01<br />#define LCDC_SHIFT0x10<br />#define LCDC_SHIFTDISP0x08<br />#define LCDC_SHIFTR0x04<br />#define LCDC_SHIFTL0<br />#define LCDC_FUNC0x20<br />#define LCDC_FUNC8B0x10<br />#define LCDC_FUNC4B0<br />#define LCDC_FUNC2L0x08<br />#define LCDC_FUNC1L0<br />#define LCDC_FUNC5x100x04<br />#define LCDC_FUNC5x70<br />#define LCDC_SET_CGRAM0x40<br />#define LCDC_SET_DDRAM0x80<br /><br /><br />void lcd_init(void);// WŁĄCZONA na stałe do kompilacji<br />void lcd_cls(void);// WŁĄCZONA na stałe do kompilacji<br />void lcd_str(char * str);// WŁĄCZONA na stałe do kompilacji<br /><br />void lcd_locate(uint8_t y, uint8_t x);// domyślnie WŁĄCZONA z kompilacji w pliku lcd.c[/syntax]<br /><br />hd44780.c<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;stdlib.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#include &quot;hd44780.h&quot;<br /><br />// makrodefinicje operacji na RS i EN<br />#define SET_RS RS_PORT |= RS<br />#define CLR_RS RS_PORT &amp;=~RS<br /><br />#define SET_EN EN_PORT |= EN<br />#define CLR_EN EN_PORT &amp;=~EN<br /><br />// funkcja wysłania do wyświetlacza- rozbicie bajtu na poszczególne piny<br />void _lcd_write_byte(unsigned char dataToWrite)<br />{<br /><br />// ustawienie portów jako wyjścia<br />DDRA |= D0 | D1 | D2 | D3;<br />DDRD |= D4 | D5 | D6 | D7;<br /><br />SET_EN;<br /><br />// rozbicie bajtu na poszczególne piny<br />if (dataToWrite&amp;(1&lt;&lt;0)) D0_PORT |= D0; else D0_PORT &amp;= ~D0;<br />if (dataToWrite&amp;(1&lt;&lt;1)) D1_PORT |= D1; else D1_PORT &amp;= ~D1;<br />if (dataToWrite&amp;(1&lt;&lt;2)) D2_PORT |= D2; else D2_PORT &amp;= ~D2;<br />if (dataToWrite&amp;(1&lt;&lt;3)) D3_PORT |= D3; else D3_PORT &amp;= ~D3;<br />if (dataToWrite&amp;(1&lt;&lt;4)) D4_PORT |= D4; else D4_PORT &amp;= ~D4;<br />if (dataToWrite&amp;(1&lt;&lt;5)) D5_PORT |= D5; else D5_PORT &amp;= ~D5;<br />if (dataToWrite&amp;(1&lt;&lt;6)) D6_PORT |= D6; else D6_PORT &amp;= ~D6;<br />if (dataToWrite&amp;(1&lt;&lt;7)) D7_PORT |= D7; else D7_PORT &amp;= ~D7;<br /><br />CLR_EN;<br /><br />_delay_us(120);<br />}<br /><br />//----------------------------------------------------------------------------------------<br />//<br />// Zapis komendy do wyświetlacza LCD<br />//<br />//----------------------------------------------------------------------------------------<br />void lcd_write_cmd(uint8_t cmd)<br />{<br />CLR_RS;<br />_lcd_write_byte(cmd);<br />}<br /><br />//----------------------------------------------------------------------------------------<br />//<br />// Zapis danych do wyświetlacza LCD<br />//<br />//----------------------------------------------------------------------------------------<br />void lcd_write_data(uint8_t data)<br />{<br />SET_RS;<br />_lcd_write_byte(data);<br />}<br /><br />void lcd_cls(void)<br />{<br />lcd_write_cmd( LCDC_CLS );<br />_delay_ms(4.9);<br />}<br /><br /><br />void lcd_init(void)<br />{<br /><br />_delay_ms(50);<br />// inicjowanie pinów portów ustalonych do podłączenia z wyświetlaczem LCD<br />// ustawienie wszystkich jako wyjścia<br /><br />DDRA |= D0 | D1 | D2 | D3;<br />DDRD |= D4 | D5 | D6 | D7;<br /><br />RS_PORT |= RS;<br />EN_PORT |= EN;<br /><br />_delay_ms(15);<br /><br />EN_PORT &amp;= ~ EN;<br />RS_PORT &amp;= ~ RS;<br /><br />// jeszcze nie można używać Busy Flag<br />SET_EN;<br />lcd_write_cmd(0x30);// tryb 8-bitowy<br />CLR_EN;<br />_delay_ms(4.1);<br /><br />SET_EN;<br />lcd_write_cmd(0x30);// tryb 8-bitowy<br />CLR_EN;<br />_delay_us(100);<br /><br />SET_EN;<br />lcd_write_cmd(0x30);// tryb 8-bitowy<br />CLR_EN;<br />_delay_us(100);<br /><br />lcd_write_cmd(0x38);<br />_delay_ms(1);<br />lcd_write_cmd(0xC);<br />_delay_ms(1);<br />lcd_write_cmd(0x01);<br />_delay_ms(1);<br />lcd_write_cmd(0x6);<br />_delay_ms(1);<br /><br />lcd_cls();<br />}[/syntax]<br /><br />main.c<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#include &quot;LCD/hd44780.h&quot;<br /><br />int main (void){<br /><br />lcd_init();<br /><br />while(1){<br />lcd_cls();<br />}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5342">elerbe</a> — 13 gru 2015, o 19:54</p><hr />
]]></content>
</entry>
</feed>