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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-07-10T20:19:42+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=7730&amp;mode</id>
<entry>
<author><name><![CDATA[atmel]]></name></author>
<updated>2014-07-10T20:19:42+01:00</updated>
<published>2014-07-10T20:19:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7730&amp;p=87207#p87207</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7730&amp;p=87207#p87207"/>
<title type="html"><![CDATA[Re: Z UARTU na wyświetlacz hd44780 - krzaki]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7730&amp;p=87207#p87207"><![CDATA[
Jest to funkcja do bezpośredniego wysterowywania linii wyświetlacza.<br />Argument &quot;v&quot; to wartość jaka zostanie przesłana do kontrolera. Natomiast &quot;rs&quot; powoduje odpowiednie ustalenie stanu na linii RS wyświetlacza. Dla rs == 0 wartość &quot;v&quot; będzie interpretowana jako komanda, a dla rs != 0 będą to dane.<br /><br />Pozorne działanie funkcji dla obu parametrów równych UDR0 mogło mieć miejsce, ponieważ gdy rs == UDR0, a UDR0 != 0, wtedy do wyświetlacza zapisywane są dane, które w tym wypadku są tożsame z UDR0 == v.<br /><br />Najlepiej sięgnij do książki, albo innego źródła po większe szczegóły, ponieważ ciężko pokrótce wszystko dokładnie omówić.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1183">atmel</a> — 10 lip 2014, o 20:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[cwanish]]></name></author>
<updated>2014-07-10T18:53:43+01:00</updated>
<published>2014-07-10T18:42:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7730&amp;p=87185#p87185</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7730&amp;p=87185#p87185"/>
<title type="html"><![CDATA[Re: Z UARTU na wyświetlacz hd44780 - krzaki]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7730&amp;p=87185#p87185"><![CDATA[
Dziękuję, Twoja odpowiedź jest bardzo zrozumiała.<br /><br />W bibliotece o tym wyświetlaczu mam tylko trzy funkcje - ostatnia jaka została to:<br /><br />[syntax=c]void WriteToLCD (unsigned char v,unsigned char  rs)<br />{<br /><br />    SET_OUT_LCD_D4;<br />    SET_OUT_LCD_D5;<br />    SET_OUT_LCD_D6;<br />    SET_OUT_LCD_D7;<br /><br />    if(v&amp;0x10) SET_LCD_D4; else CLR_LCD_D4;<br />    if(v&amp;0x20) SET_LCD_D5; else CLR_LCD_D5;<br />    if(v&amp;0x40) SET_LCD_D6; else CLR_LCD_D6;<br />    if(v&amp;0x80) SET_LCD_D7; else CLR_LCD_D7;<br /> <br />    CLR_LCD_E;<br />    if(rs) SET_LCD_RS;else CLR_LCD_RS;<br /><br />    LCD_NOP;<br />    SET_LCD_E;<br />    LCD_NOP; <br />    CLR_LCD_E;<br />    LCD_NOP;<br /> <br />    if(v&amp;0x01) SET_LCD_D4; else CLR_LCD_D4;<br />    if(v&amp;0x02) SET_LCD_D5; else CLR_LCD_D5;<br />    if(v&amp;0x04) SET_LCD_D6; else CLR_LCD_D6;<br />    if(v&amp;0x08) SET_LCD_D7; else CLR_LCD_D7;<br /> <br />    LCD_NOP;<br />    SET_LCD_E;<br />    LCD_NOP; <br />    CLR_LCD_E;<br />    LCD_NOP;<br /><br />    _delay_us(100);<br />}[/syntax]<br />Ta funkcja potrzebuje dwóch argumentów - nie mam pojęcia do czego aż dwóch ale zadziałało gdy dwa razy podałem ReceivedByte    (wcześniej było UDR0 = ReceivedByte)<br /><br />Jeśli to jest oczywiste i nie wymaga wysiłku to może ktoś mi powiedzieć do czego który argument?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2643">cwanish</a> — 10 lip 2014, o 18:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[atmel]]></name></author>
<updated>2014-07-10T16:36:02+01:00</updated>
<published>2014-07-10T16:36:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7730&amp;p=87178#p87178</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7730&amp;p=87178#p87178"/>
<title type="html"><![CDATA[Re: Z UARTU na wyświetlacz hd44780 - krzaki]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7730&amp;p=87178#p87178"><![CDATA[
Oczywiście do wyświetlania pojedynczych znaków potrzeba funkcji w stylu &quot;lcd_putc(char Char);&quot;.<br />Nie wiem czy taką posiadasz dlatego powinno zadziałać wywołanie takiej funkcji: &quot;LCD_WRITE_DATA(UDR0);&quot;.<br /><br />&quot;Krzaki&quot; pojawiają się dlatego, że funkcja &quot;lcd_puts&quot; spodziewa się w argumencie wskaźnika na c-string tzn. miejsce w pamięci, które zakończone będzie znakiem NULL. Kiedy otrzymuje wartość liczbową (taką jest wartość z rejestru UDR0), kompilator stara się ją zrzutować niejawnie na żądany typ (char*), jednocześnie informując o swoim świadomym działaniu poprzez ostrzeżenie.<br />W związku z tym, że dane w UDR0 ulegają zmianie to również wyświetlane są przeróżne dane umieszczone w pamięci.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1183">atmel</a> — 10 lip 2014, o 16:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[cwanish]]></name></author>
<updated>2014-07-10T18:51:53+01:00</updated>
<published>2014-07-10T16:26:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7730&amp;p=87177#p87177</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7730&amp;p=87177#p87177"/>
<title type="html"><![CDATA[Z UARTU na wyświetlacz hd44780 - krzaki]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7730&amp;p=87177#p87177"><![CDATA[
Dzień dobry.<br /><br />Wysyłam do atmegi 644p znaki z komputera poprzez adapter rs232. Atmega jako potwierdzenie odrazu odsyła te znaki w niezmienionej formie. Mam jednak problem, gdyż nie chcą się poprawnie wyświetlić na wyświetlaczu.<br /><br />Oto kod:<br />[syntax=c]//uart for atmega644p - using usart0<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;stdlib.h&gt;<br />#include &quot;hd44780.h&quot;<br /><br />#define USART_BAUDRATE 9600<br />#define BAUD_PRESCALE (((F_CPU / (USART_BAUDRATE * 16UL))) - 1)<br /><br />int main(void) {<br /><br />// display initialization<br />lcd_init();<br />LCD_CLEAR;<br />_delay_ms(500);<br /><br />LCD_DISPLAY(LCDDISPLAY);<br /><br />char ReceivedByte;<br />char str&#91;5&#93;;<br /><br />UCSR0B = (1 &lt;&lt; RXEN0) | (1 &lt;&lt; TXEN0); // Turn on the transmission and reception circuitry<br />UCSR0C = (1 &lt;&lt; USBS0) | (3 &lt;&lt; UCSZ00); // Use 8-bit character sizes<br /><br />UBRR0H = (BAUD_PRESCALE &gt;&gt; 8); // Load upper 8-bits of the baud rate value into the high byte of the UBRR register<br />UBRR0L = BAUD_PRESCALE; // Load lower 8-bits of the baud rate value into the low byte of the UBRR register<br /><br />while (1) // Loop forever<br />{<br />LCD_LOCATE(0, 0);<br />lcd_puts(&quot;Received: &quot;);<br /><br />//receive<br />while ((UCSR0A &amp; (1 &lt;&lt; RXC0)) == 0) {<br />}; // Do nothing until data have been received and is ready to be read from UDR<br />ReceivedByte = UDR0; // Fetch the received byte value into the variable &quot;ByteReceived&quot;<br /><br />//transmit<br />while ((UCSR0A &amp; (1 &lt;&lt; UDRE0)) == 0) {<br />}; // Do nothing until UDR is ready for more data to be written to it<br />UDR0 = ReceivedByte; // Echo back the received byte back to the computer<br />_delay_ms(100);<br /><br />//display<br />LCD_LOCATE(0, 1);<br />lcd_puts(UDR0);<br /><br />}<br /><br />}<br /><br />&#91;/code&#93;<br /><br />przy lcd_puts(UDR0) Eclipse podaje ostrzeżenie: &quot;passing argument 1 of 'lcd_puts' makes pointer from integer without a cast &#91;enabled by default&#93;&quot;<br /><br />Domyślam się, że coś nie tak z typem danych?<br /><br />funkcja lcd_puts:<br />&#91;code&#93;// Wyswietla tekst na aktualnej pozycji kursora<br /><br />void lcd_puts(char *str)<br />{<br />    unsigned char i =0;<br /><br />    while( str&#91;i&#93;)<br />        LCD_WRITE_DATA(str&#91;i++&#93;) ;<br />}[/syntax]<br /><br />Proszę o pomoc <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=2643">cwanish</a> — 10 lip 2014, o 16:26</p><hr />
]]></content>
</entry>
</feed>