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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-12-08T19:49:12+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=8&amp;t=5033&amp;mode</id>
<entry>
<author><name><![CDATA[programek]]></name></author>
<updated>2013-12-08T19:49:12+01:00</updated>
<published>2013-12-08T19:49:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5033&amp;p=60132#p60132</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5033&amp;p=60132#p60132"/>
<title type="html"><![CDATA[Re: Amtega88pa-pu i hd44780 wyświetlanie śmieci]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5033&amp;p=60132#p60132"><![CDATA[
no chyba że coś pomieszałeś w definicjach tych pinów....<br /><br />wgraj sobie ten program:<br /><br />main.c:<br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 08-12-2013<br /> *      Author: programek<br /> */<br /><br /><br />#include &lt;stdlib.h&gt;<br />#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_Initalize();<br /><br />       LCD_Clear();<br /><br />       LCD_WriteText(&quot;TEST&quot;);<br /><br /><br />        while(1);<br /><br />}[/syntax]<br /><br />HD44780.h:<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.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_DIRDDRA<br />#define LCD_RS_PORT PORTA<br />#define LCD_RS(1 &lt;&lt; PA0)<br /><br />#define LCD_E_DIRDDRA<br />#define LCD_E_PORTPORTA<br />#define LCD_E(1 &lt;&lt; PA2)<br /><br />#define LCD_DB4_DIRDDRA<br />#define LCD_DB4_PORTPORTA<br />#define LCD_DB4(1 &lt;&lt; PA3)<br /><br />#define LCD_DB5_DIRDDRA<br />#define LCD_DB5_PORTPORTA<br />#define LCD_DB5(1 &lt;&lt; PA4)<br /><br />#define LCD_DB6_DIRDDRA<br />#define LCD_DB6_PORTPORTA<br />#define LCD_DB6(1 &lt;&lt; PA5)<br /><br />#define LCD_DB7_DIRDDRA<br />#define LCD_DB7_PORTPORTA<br />#define LCD_DB7(1 &lt;&lt; PA6)<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 />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 />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 />jak ten kod nie zadziała to raczej jest coś nie tak z lcd (tylko jak byś teraz zmieniał definicje pinów to używaj tego sposobu co ja, żeby się nie pogubić)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1526">programek</a> — 8 gru 2013, o 19:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Ifor]]></name></author>
<updated>2013-12-08T18:11:11+01:00</updated>
<published>2013-12-08T18:11:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5033&amp;p=60115#p60115</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5033&amp;p=60115#p60115"/>
<title type="html"><![CDATA[Re: Amtega88pa-pu i hd44780 wyświetlanie śmieci]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5033&amp;p=60115#p60115"><![CDATA[
Wgrałem przykładowy program tylko wyświetlający napis i dalej dostaje tylko pusty ekran. Przemierzyłem też jeszcze raz kilkukrotnie czy odpowiednie porty połączone są z odpowiednimi wejściami na wyświetlaczu i wszystko wydaje się być OK. Straciłem już wszystkie pomysły gdzie może leżeć błąd. Chyba, że wyświetlacz nie działa tak jak powinien.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2173">Ifor</a> — 8 gru 2013, o 18:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[programek]]></name></author>
<updated>2013-12-07T21:03:05+01:00</updated>
<published>2013-12-07T21:03:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5033&amp;p=60028#p60028</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5033&amp;p=60028#p60028"/>
<title type="html"><![CDATA[Re: Amtega88pa-pu i hd44780 wyświetlanie śmieci]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5033&amp;p=60028#p60028"><![CDATA[
No to żeby mieć jeszcze pewność czy dobrze masz wszystko z lcd to spróbuj uruchomić jakiś testowy napis.... bo teraz nie wiadomo czy masz coś z lcd czy z dht.h i dht.c....<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1526">programek</a> — 7 gru 2013, o 21:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Ifor]]></name></author>
<updated>2013-12-07T17:13:43+01:00</updated>
<published>2013-12-07T17:13:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5033&amp;p=60010#p60010</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5033&amp;p=60010#p60010"/>
<title type="html"><![CDATA[Re: Amtega88pa-pu i hd44780 wyświetlanie śmieci]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5033&amp;p=60010#p60010"><![CDATA[
<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />nie wiem tylko dlaczego sobie utrudniasz sprawę i w ustawieniach portów piszesz takie wartości: 0x40, 0x20 itd... czy nie lepiej wygląda zapis jak był początkowo w kodzie???<br /></div>W sumie mi taki zapis nie sprawia specjalnej trudności i jakoś tak go użyłem, bo krócej <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Proszę oto kody od dht, ale nie sądzę, żeby wina leżała po stronie tych plików, bo jak dam tylko instrukcję na wyświetlacz w kodzie to efekt jest ten sam.<br /><br />[syntax=c]/*<br />DHT Library 0x03<br /><br />copyright (c) Davide Gironi, 2012<br /><br />Released under GPLv3.<br />Please refer to LICENSE file for licensing information.<br /><br />References:<br />  - DHT-11 Library, by Charalampos Andrianakis on 18/12/11<br />*/<br /><br /><br />#ifndef DHT_H_<br />#define DHT_H_<br /><br />//setup port<br />#define DHT_DDR DDRC<br />#define DHT_PORT PORTC<br />#define DHT_PIN PINC<br />#define DHT_INPUTPIN PC0<br /><br />//sensor type<br />#define DHT_DHT11 1<br />#define DHT_DHT22 2<br />#define DHT_TYPE DHT_DHT11<br /><br />//enable decimal precision (float)<br />#if DHT_TYPE == DHT_DHT11<br />#define DHT_FLOAT 0<br />#elif DHT_TYPE == DHT_DHT22<br />#define DHT_FLOAT 1<br />#endif<br /><br />//timeout retries<br />#define DHT_TIMEOUT 200<br /><br />//functions<br />#if DHT_FLOAT == 1<br />extern int8_t dht_gettemperature(float *temperature);<br />extern int8_t dht_gethumidity(float *humidity);<br />extern int8_t dht_gettemperaturehumidity(float *temperature, float *humidity);<br />#elif DHT_FLOAT == 0<br />extern int8_t dht_gettemperature(int8_t *temperature);<br />extern int8_t dht_gethumidity(int8_t *humidity);<br />extern int8_t dht_gettemperaturehumidity(int8_t *temperature, int8_t *humidity);<br />#endif<br /><br />#endif[/syntax]<br /><br />[syntax=c]/*<br />DHT Library 0x03<br /><br />copyright (c) Davide Gironi, 2012<br /><br />Released under GPLv3.<br />Please refer to LICENSE file for licensing information.<br />*/<br /><br /><br />#include &lt;stdio.h&gt;<br />#include &lt;string.h&gt;<br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#include &quot;dht.h&quot;<br /><br />/*<br /> * get data from sensor<br /> */<br />#if DHT_FLOAT == 1<br />int8_t dht_getdata(float *temperature, float *humidity) {<br />#elif DHT_FLOAT == 0<br />int8_t dht_getdata(int8_t *temperature, int8_t *humidity) {<br />#endif<br />uint8_t bits&#91;5&#93;;<br />uint8_t i,j = 0;<br /><br />memset(bits, 0, sizeof(bits));<br /><br />//reset port<br />DHT_DDR |= (1&lt;&lt;DHT_INPUTPIN); //output<br />DHT_PORT |= (1&lt;&lt;DHT_INPUTPIN); //high<br />_delay_ms(100);<br /><br />//send request<br />DHT_PORT &amp;= ~(1&lt;&lt;DHT_INPUTPIN); //low<br />#if DHT_TYPE == DHT_DHT11<br />_delay_ms(18);<br />#elif DHT_TYPE == DHT_DHT22<br />_delay_us(500);<br />#endif<br />DHT_PORT |= (1&lt;&lt;DHT_INPUTPIN); //high<br />DHT_DDR &amp;= ~(1&lt;&lt;DHT_INPUTPIN); //input<br />_delay_us(40);<br /><br />//check start condition 1<br />if((DHT_PIN &amp; (1&lt;&lt;DHT_INPUTPIN))) {<br />return -1;<br />}<br />_delay_us(80);<br />//check start condition 2<br />if(!(DHT_PIN &amp; (1&lt;&lt;DHT_INPUTPIN))) {<br />return -1;<br />}<br />_delay_us(80);<br /><br />//read the data<br />uint16_t timeoutcounter = 0;<br />for (j=0; j&lt;5; j++) { //read 5 byte<br />uint8_t result=0;<br />for(i=0; i&lt;8; i++) {//read every bit<br />timeoutcounter = 0;<br />while(!(DHT_PIN &amp; (1&lt;&lt;DHT_INPUTPIN))) { //wait for an high input (non blocking)<br />timeoutcounter++;<br />if(timeoutcounter &gt; DHT_TIMEOUT) {<br />return -1; //timeout<br />}<br />}<br />_delay_us(30);<br />if(DHT_PIN &amp; (1&lt;&lt;DHT_INPUTPIN)) //if input is high after 30 us, get result<br />result |= (1&lt;&lt;(7-i));<br />timeoutcounter = 0;<br />while(DHT_PIN &amp; (1&lt;&lt;DHT_INPUTPIN)) { //wait until input get low (non blocking)<br />timeoutcounter++;<br />if(timeoutcounter &gt; DHT_TIMEOUT) {<br />return -1; //timeout<br />}<br />}<br />}<br />bits&#91;j&#93; = result;<br />}<br /><br />//reset port<br />DHT_DDR |= (1&lt;&lt;DHT_INPUTPIN); //output<br />DHT_PORT |= (1&lt;&lt;DHT_INPUTPIN); //low<br />_delay_ms(100);<br /><br />//check checksum<br />if ((uint8_t)(bits&#91;0&#93; + bits&#91;1&#93; + bits&#91;2&#93; + bits&#91;3&#93;) == bits&#91;4&#93;) {<br />//return temperature and humidity<br />#if DHT_TYPE == DHT_DHT11<br />*temperature = bits&#91;2&#93;;<br />*humidity = bits&#91;0&#93;;<br />#elif DHT_TYPE == DHT_DHT22<br />uint16_t rawhumidity = bits&#91;0&#93;&lt;&lt;8 | bits&#91;1&#93;;<br />uint16_t rawtemperature = bits&#91;2&#93;&lt;&lt;8 | bits&#91;3&#93;;<br />if(rawtemperature &amp; 0x8000) {<br />*temperature = (float)((rawtemperature &amp; 0x7FFF) / 10.0) * -1.0;<br />} else {<br />*temperature = (float)(rawtemperature)/10.0;<br />}<br />*humidity = (float)(rawhumidity)/10.0;<br />#endif<br />return 0;<br />}<br /><br />return -1;<br />}<br /><br />/*<br /> * get temperature<br /> */<br />#if DHT_FLOAT == 1<br />int8_t dht_gettemperature(float *temperature) {<br />float humidity = 0;<br />#elif DHT_FLOAT == 0<br />int8_t dht_gettemperature(int8_t *temperature) {<br />int8_t humidity = 0;<br />#endif<br />return dht_getdata(temperature, &amp;humidity);<br />}<br /><br />/*<br /> * get humidity<br /> */<br />#if DHT_FLOAT == 1<br />int8_t dht_gethumidity(float *humidity) {<br />float temperature = 0;<br />#elif DHT_FLOAT == 0<br />int8_t dht_gethumidity(int8_t *humidity) {<br />int8_t temperature = 0;<br />#endif<br />return dht_getdata(&amp;temperature, humidity);<br />}<br /><br />/*<br /> * get temperature and humidity<br /> */<br />#if DHT_FLOAT == 1<br />int8_t dht_gettemperaturehumidity(float *temperature, float *humidity) {<br />#elif DHT_FLOAT == 0<br />int8_t dht_gettemperaturehumidity(int8_t *temperature, int8_t *humidity) {<br />#endif<br />return dht_getdata(temperature, humidity);<br />}[/syntax]<br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />co zrobiłeś z pinem RW?? do masy??<br /></div>Tak RW jest poprowadzone do masy.<br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />ew zobacz czy przypadkiem nie pomieszałeś pinów DB4-DB7 wyświetlacza<br /></div>Okazało się, że pomieszałem 4 z 5 i były na odwrót poprowadzone. Teraz są dobrze, ale zamiast śmieci nic się nie pojawia. Wyświetlacz się uruchamia, ale jest pusty(sprawdzałem przy różnych kontrastach). Na początku stwierdziłem, że może to być wina instrukcji clear, która się wywołuje zaraz po wypisaniu, ale po przeniesieniu jej przed ify nic się nie zmienia. Macie może jakieś pomysł co może być nie tak?<br /><br />P.S.<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />masę można brać z pinu 4, 6, 8, 10 (obojętne) tak czy tak w programatorze te piny są razem połączone.<br /></div>Dziękuję za sugestię na pewno zapamiętam <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=2173">Ifor</a> — 7 gru 2013, o 17:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[programek]]></name></author>
<updated>2013-12-05T20:26:05+01:00</updated>
<published>2013-12-05T20:26:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5033&amp;p=59829#p59829</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5033&amp;p=59829#p59829"/>
<title type="html"><![CDATA[Re: Amtega88pa-pu i hd44780 wyświetlanie śmieci]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5033&amp;p=59829#p59829"><![CDATA[
<div class="quotetitle">directx91 napisał(a):</div><div class="quotecontent"><br />nie wiem po co też tyle mas ładujesz z programatora (wystarcza z pinu 10)<br /></div><br /><br />masę można brać z pinu 4, 6, 8, 10 (obojętne) tak czy tak w programatorze te piny są razem połączone..<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1526">programek</a> — 5 gru 2013, o 20:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[directx91]]></name></author>
<updated>2013-12-05T20:02:03+01:00</updated>
<published>2013-12-05T20:02:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5033&amp;p=59820#p59820</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5033&amp;p=59820#p59820"/>
<title type="html"><![CDATA[Re: Amtega88pa-pu i hd44780 wyświetlanie śmieci]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5033&amp;p=59820#p59820"><![CDATA[
co zrobiłeś z pinem RW?? do masy?? na schemacie go nie widzę, też używam tych bibliotek i działa wyświetlacz, może spróbuj cos innego mu wyświetlić, ew zobacz czy przypadkiem nie pomieszałeś pinów DB4-DB7 wyświetlacza (sam to pozajączkowałem i trochę sie namęczyłem zanim doszedłem co i jak), nie wiem po co też tyle mas ładujesz z programatora (wystarcza z pinu 10) ale to nie temat o tym<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2069">directx91</a> — 5 gru 2013, o 20:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[programek]]></name></author>
<updated>2013-12-05T19:41:31+01:00</updated>
<published>2013-12-05T19:41:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5033&amp;p=59815#p59815</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5033&amp;p=59815#p59815"/>
<title type="html"><![CDATA[Re: Amtega88pa-pu i hd44780 wyświetlanie śmieci]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5033&amp;p=59815#p59815"><![CDATA[
już sprawdziłem... biblioteka do lcd jest dobra, wszystko ładnie chodzi. <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />nie wiem tylko dlaczego sobie utrudniasz sprawę i w ustawieniach portów piszesz takie wartości:  0x40,  0x20 itd... czy nie lepiej wygląda zapis jak był początkowo w kodzie???<br /><br />a i jeszcze jedno: podaj kod plików dht.h i dht.c.. bo to raczej w nich coś jest poknocone<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1526">programek</a> — 5 gru 2013, o 19:41</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[programek]]></name></author>
<updated>2013-12-05T18:29:28+01:00</updated>
<published>2013-12-05T18:29:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5033&amp;p=59802#p59802</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5033&amp;p=59802#p59802"/>
<title type="html"><![CDATA[Re: Amtega88pa-pu i hd44780 wyświetlanie śmieci]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5033&amp;p=59802#p59802"><![CDATA[
Moim zdaniem coś jest nie tak z tymi bibliotekami do lcd... Później jak będę miał czas to przejrzę kod i dam znać <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=1526">programek</a> — 5 gru 2013, o 18:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Ifor]]></name></author>
<updated>2013-12-05T18:06:49+01:00</updated>
<published>2013-12-05T18:06:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5033&amp;p=59800#p59800</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5033&amp;p=59800#p59800"/>
<title type="html"><![CDATA[Amtega88pa-pu i hd44780 wyświetlanie śmieci]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5033&amp;p=59800#p59800"><![CDATA[
Witam<br />Od nie zbyt długiego czasu interesuję się elektroniką, ale postanowiłem na początek zrobić trochę bardziej ambitny projekt z wykorzystaniem uC, niż migająca dioda <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Postanowiłem zbudować termostat z wyświetlaczem pokazującym temperaturę oraz wilgotność. Jak postanowiłem tak zrobiłem: zaprojektowałem układ, przygotowałem płytkę, polutowałem wszystko i zaprogramowałem atmegę. Na początku działy się dziwne rzeczy, ale problemem okazały się złe luty, albo inne błędy amatora <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Wszystko pomierzyłem, posprawdzałem(przynajmniej tak myślę) i układ zaczął ze mną nawet współpracować. Niestety nie mam pojęcia, dlaczego pojawiają mi się śmieci na wyświetlaczu, zamiast tego co bym chciał. Prosiłbym o pomoc co jest nie tak.<br /><br /><strong>Procesor:</strong> Atmega88pa-pu<br /><strong>Wyświetlacz:</strong> <!-- m --><a class="postlink" href="http://sklep.avt.pl/lcd-2x16-alfanumeryczny-z-podswietleniem-wh1602b2-yyh-ct.html" >http://sklep.avt.pl/lcd-2x16-alfanumery ... yh-ct.html</a><!-- m --><br /><strong>Schemat układu: </strong><br /><a href="http://forum.atnel.pl/_obrazki/o/2173/d7e8db759821b6d19d40c1f1470f7e53.png"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/2173/d7e8db759821b6d19d40c1f1470f7e53.png" alt="Obrazek" /></a><br /><br /><strong>Program:</strong><br />[syntax=c]#include &lt;stdlib.h&gt;<br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#include &quot;lcd.h&quot;<br />#include &quot;dht.h&quot;<br /><br />int main (void)<br />{<br />DDRC = 0xE;<br />DDRD = 0xFF;<br /><br />PORTC = 0x4;<br />PORTD = 0;<br /><br />int8_t temperature;<br />int8_t humidit;<br /><br />LCD_Initalize();<br /><br />while(1)<br />{<br />if(dht_gettemperaturehumidity(&amp;temperature, &amp;humidit))<br />{<br />if(temperature &lt; 25)<br />{<br />PORTC |= 0xA;<br />}<br />else<br />{<br />PORTC &amp;= 0x4;<br />}<br /><br />LCD_WriteText(&quot;Temp: &quot;);<br />}<br />else<br />{<br />LCD_WriteText(&quot;ERROR!&quot;);<br />}<br /><br />LCD_Clear();<br /><br />_delay_ms(1500);<br />}<br />}[/syntax]<br /><strong>Użyłem biblioteki ze strony:</strong> <!-- m --><a class="postlink" href="http://radzio.dxp.pl/hd44780/hd44780_avr_4-bit_norw_c.htm" >http://radzio.dxp.pl/hd44780/hd44780_av ... norw_c.htm</a><!-- m --> <strong>z następującymi zmianami w portach:</strong><br />[syntax=c]#define LCD_RS_DIRDDRD<br />#define LCD_RS_PORT PORTD<br />#define LCD_RS0x40<br /><br />#define LCD_E_DIRDDRD<br />#define LCD_E_PORTPORTD<br />#define LCD_E0x20<br /><br />#define LCD_DB4_DIRDDRD<br />#define LCD_DB4_PORTPORTD<br />#define LCD_DB40x10<br /><br />#define LCD_DB5_DIRDDRD<br />#define LCD_DB5_PORTPORTD<br />#define LCD_DB50x8<br /><br />#define LCD_DB6_DIRDDRD<br />#define LCD_DB6_PORTPORTD<br />#define LCD_DB60x4<br /><br />#define LCD_DB7_DIRDDRD<br />#define LCD_DB7_PORTPORTD<br />#define LCD_DB70x2[/syntax]<br /><strong><br />Co mi się pojawia na wyświetlaczu:</strong><br /><a href="http://forum.atnel.pl/_obrazki/o/2173/5b9850fd2b30a2440587df980ca719e4.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/2173/5b9850fd2b30a2440587df980ca719e4.jpg" alt="Obrazek" /></a><br /><br />P.S. Jeśli macie jakieś porady, sugestie, słowa krytyki to bardzo chętnie bym je usłyszał <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br /><span style="color: #FF0000">Kody wklejamy przy pomocy syntax=c - Różowy J.</span><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2173">Ifor</a> — 5 gru 2013, o 18:06</p><hr />
]]></content>
</entry>
</feed>