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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-03-27T11:52:40+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=2677&amp;mode</id>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-03-27T11:52:40+01:00</updated>
<published>2013-03-27T11:52:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2677&amp;p=32040#p32040</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2677&amp;p=32040#p32040"/>
<title type="html"><![CDATA[Re: interaktywny terminal]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2677&amp;p=32040#p32040"><![CDATA[
ja bym tylko napisał to tak dla lepszej przejrzystości jeśli już wszystko chcesz w jednej linijce upakować:<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">*(recv_buf_ptr++) = recv_char;</div><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 27 mar 2013, o 11:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ukasz]]></name></author>
<updated>2013-03-27T11:50:14+01:00</updated>
<published>2013-03-27T11:50:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2677&amp;p=32037#p32037</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2677&amp;p=32037#p32037"/>
<title type="html"><![CDATA[Re: interaktywny terminal]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2677&amp;p=32037#p32037"><![CDATA[
faktycznie. dzieki za pomoc. dziala.<br />docelowo chce zrobic takiego interaktywnego shella zeby mozna bylo ustawic czas na rtc.<br /><br />wracajac do<br /><br />[syntax=c]//zapisz znak do n elementu tablicy. jezeli tuj po wcisnietym enter to do 1 elementu<br />*recv_buf_ptr = recv_char;<br />//zwieksz wskaznik o 1 tak aby wskazywal na kolejny element w tablicy<br />recv_buf_ptr++;[/syntax]<br />zapis ten jest rownoznaczny z <br />[syntax=c]*recv_buf_ptr++ = recv_char;[/syntax]<br />tak ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=873">ukasz</a> — 27 mar 2013, o 11:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-03-27T09:06:48+01:00</updated>
<published>2013-03-27T09:06:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2677&amp;p=32027#p32027</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2677&amp;p=32027#p32027"/>
<title type="html"><![CDATA[Re: interaktywny terminal]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2677&amp;p=32027#p32027"><![CDATA[
prawie wszystko dobrze <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />ale zapomniałeś przypisać przy starcie programu bufor do wskaźnika ... robisz to po odebraniu znaku ENTER ale na starcie nie ma - więc odbierane znaki lecą w kosmos - gdzieś w RAM i pewnie powodują reset procka ciągły, więc to co masz tu:<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">recv_buf_ptr = recv_buf;</div><br /><br />zrób także na samym starcie<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">char *recv_buf_ptr = recv_buf;</div><br /><br />tak mi się na szybko patrząc - wydaje<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 27 mar 2013, o 09:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ukasz]]></name></author>
<updated>2013-03-27T01:17:07+01:00</updated>
<published>2013-03-27T01:17:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2677&amp;p=32023#p32023</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2677&amp;p=32023#p32023"/>
<title type="html"><![CDATA[interaktywny terminal]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2677&amp;p=32023#p32023"><![CDATA[
czesc<br /><br />chce aby to co zostalo wpisane do terminala zostalo odeslane spowrotem. narazie taki banalny. po wcisnietym enterem informacja o tym i odeslanie spowrotem stringa wpisanego wczesniej<br /><br />[syntax=c]<br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;stdio.h&gt;<br />#include &lt;stdlib.h&gt;<br />#include &lt;string.h&gt;<br />#include &quot;uart/uart.h&quot;<br /><br />//bufor do przechowywania stringa odebranego z terminala<br />char recv_buf[UART_RX_BUF_SIZE];<br />//znak odebrany z terminala<br />char recv_char;<br />//wskaznik na element w tablicy recv_buf<br />char *recv_buf_ptr;<br /><br /><br />int main(void)<br />{<br />// inicjalizacja UART<br />USART_Init( __UBRR );<br />//zezwolenie na globalne przerwania<br />sei();<br />uart_puts(&quot;starting...&quot;);<br /><br />while(1) {<br />//zawsze pobieraj znak<br />recv_char = uart_getc();<br />//jezeli wcisnieto ENTER<br />if ( recv_char == '\r') {<br />uart_puts(&quot;\r\nwcisnieto ENTER&quot;);<br />//jezeli 1 znak z tablicu nie jest NULL<br />if (recv_buf[0]) {<br />//pokaz caly C string<br />uart_puts(recv_buf);<br />//ustaw wskaznik na poczatek tablicy<br />recv_buf_ptr = recv_buf;<br />//wpisz znak NULL do pierwszego elementu tablicy<br />*recv_buf_ptr = '\0';<br />}<br />//jezeli jakikolwiek inny znak<br />} else if (recv_char) {<br />//wyslij znak do terminala<br />uart_putc(recv_char);<br />//zapisz znak do n elementu tablicy. jezeli tuj po wcisnietym enter to do 1 elementu<br />*recv_buf_ptr = recv_char;<br />//zwieksz wskaznik o 1 tak aby wskazywal na kolejny element w tablicy<br />recv_buf_ptr++;<br />}<br />}<br />}<br /><br />[/syntax]<br />nie wiem gdzie blad popelnilem. dokonalem malej modyfikacji do funkcji uart_puts ktora dodaje na koncu string jeszcze '\r\n'.<br />jeszce btw. nie wiem jak to rozumiec. w niebieskiej ksiazce napisane jest: <br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />wartosc wskaznika (adresu) mozna dowolnie zmienia .... natomiast zawartosci adresu, ktorym jest nazwa tablicy, nie mozna zmieniac ani dokonywac zadnych operacji arytmetycznych<br /></div><br />hmm. mozna przyklad. nie wiem dokladnie o co chodzi. <br /><br />szczeze mowiac zaczalem sie zastanawiac czy nie chodzi o to co zapisane jest w funkcji uart_puts() *s++<br />[syntax=c]<br />void uart_puts(char *s)<br />{<br />  register char c;<br />  while ((c = *s++)) uart_putc(c);// dop�ki nie napotkasz 0 wysy�aj znak<br />}<br />[/syntax]<br />no ale przeciez to dziala. zagubilem sie w tych wskaznikach.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=873">ukasz</a> — 27 mar 2013, o 01:17</p><hr />
]]></content>
</entry>
</feed>