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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-11-19T17:02:35+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=968&amp;mode</id>
<entry>
<author><name><![CDATA[iwi]]></name></author>
<updated>2015-11-19T17:02:35+01:00</updated>
<published>2015-11-19T17:02:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=968&amp;p=145853#p145853</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=145853#p145853"/>
<title type="html"><![CDATA[Re: Odbieranie stringów UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=145853#p145853"><![CDATA[
OK - będę szukał innego rozwiązania, ale na tą chwilę wiem, że działa odbieranie danych bo<br />dopisałęm 2 linijki  do wektora przerwań zaraz za data = UDR;<br />[syntax=c]data = UDR; //pobieramy natychmiast bajt danych z bufora sprzętowego<br />    if (!data) LED_ON;<br />    uart_putc(data);[/syntax]<br /><br />i teraz co sekundę jak przychodzą dane z GPSu to miga dioda i uart_putc wysyła na TXD sygnał do komputera <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />co prawda nie wiem dlaczego zaraz po zaprogramowaniu i po długim resecie to nie działą - tak jakby ATB się zwiesił, ale po krótkim resecie działa.<br />Czyli GPS nadaje do ATB a ATB do komputera.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1988">iwi</a> — 19 lis 2015, o 17:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2015-11-19T15:42:09+01:00</updated>
<published>2015-11-19T15:42:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=968&amp;p=145845#p145845</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=145845#p145845"/>
<title type="html"><![CDATA[Re: Odbieranie stringów UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=145845#p145845"><![CDATA[
Z tego co pamiętam to zdarzenie<br />[syntax=c]UART_RX_STR_EVENT(bufor);       // zdarzenie odbiorcze UART[/syntax]<br />Bazuje na callback'u<br />a u Ciebie tej funkcji nie ma lub jej nie zarejestrowałeś.<br />To z kolei oznacza, że zdarzenie od UART'a nie będzie się wykonywać.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 19 lis 2015, o 15:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[iwi]]></name></author>
<updated>2015-11-19T14:47:20+01:00</updated>
<published>2015-11-19T14:47:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=968&amp;p=145839#p145839</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=145839#p145839"/>
<title type="html"><![CDATA[Re: Odbieranie stringów UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=145839#p145839"><![CDATA[
Witajcie.<br />Siedzę nad odbieraniem sygnału z GPSa po RS232 i niestety nic mi nie wychodzi.<br />Znalazłem ciekawy przykład w Bluebooku na temat odbierania danych z UDP i wskażnika z dwoma buforami (buf i reszta) i próbuje to zaimplementować do odebrania ramki.<br />Pasowałoby to idealnie, ale zanim do tego przejdę jak sprawdzić czy sprzętowo to będzie działało - bo tutaj może być problem.<br /><br />Podłączyłem do GPSa zasilanie i odbiera sygnał z satelity.<br />Prędkość 9600<br />Podłączyłem bezpośrednio pod terminal komputerowy i pokazuje dane<br />Podłączyłem sygnał z GPS-TX do PD0 (RXD)  i BTM222 do PD1<br />Tak na szybko chciałbym żeby wszystko co wleci na RXD było przekazywane na TXD - wtedy będę wiedział że wszystko hula<br /><br />Pobrałem bibliotekę MKUART i main.c wygląda tak<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#include &quot;MKUART/mkuart.h&quot;<br /><br />char bufor&#91;100&#93;; // bufor na potrzeby odebranych danych z UART<br />// separator tokenów we własnych ramkach przesyłanych przez UDP<br />// char sep&#91;&#93; = &quot;,&quot;;<br /><br />// deklaracje funkcji<br /><br />int main(void) {<br /><br />USART_Init( __UBRR );// inicjalizacja UART zmieniona prędkość na 9600<br />sei();// globalne odblokowanie przerwań<br /><br />uart_puts(&quot;******* restart ***********\r\n&quot;);<br />// pętla nieskończona<br />while(1) {<br /><br />UART_RX_STR_EVENT(bufor);// zdarzenie odbiorcze UART<br />uart_puts(bufor);<br /><br />}<br /><br />}[/syntax]<br />i powinno cokolwiek wyświetlać z bufora i niestety nic nie wyświetla. Zastanawiam się czy w ogóle można tak podłączyć - stąd pytanie<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1988">iwi</a> — 19 lis 2015, o 14:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-05-06T19:37:00+01:00</updated>
<published>2013-05-06T19:37:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=968&amp;p=36298#p36298</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=36298#p36298"/>
<title type="html"><![CDATA[Re: Odbieranie stringów UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=36298#p36298"><![CDATA[
<div class="quotetitle">#ciamciak# napisał(a):</div><div class="quotecontent"><br />Edit:<br />Heh, restart komputer pomógł.<br />Jednak putty nie jest takie super <img src="https://forum.atnel.pl/images/smilies/icon_cool.gif" alt="8-)" title="Cool" /><br /></div><br /><br />tak tak - oczywiście <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> putty jest do niczego, dlatego tak często go używam, i pewnie restratuję co chwilę kompa żeby przesłać jakieś znaki z procka do terminala i odwrotnie ... jasna sprawa - putty tak ma, to najgorszy program na świcie <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> hyhyhy wspaniałe wnioski <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> - zobacz np tutaj jak ja się z nim &quot;męczę&quot; <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br /><!-- m --><a class="postlink" href="http://mirekk36.blogspot.com/2013/05/terminal-jako-kolorowy-wyswietlacz-lcd.html" >http://mirekk36.blogspot.com/2013/05/te ... z-lcd.html</a><!-- m --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 6 maja 2013, o 19:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ciamciak]]></name></author>
<updated>2013-05-06T17:36:15+01:00</updated>
<published>2013-05-06T17:36:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=968&amp;p=36282#p36282</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=36282#p36282"/>
<title type="html"><![CDATA[Re: Odbieranie stringów UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=36282#p36282"><![CDATA[
Witam<br /><br />Dziś zabrałem się za uarta i już mniej więcej ogarniam temat, ale mam kłopot z Putty, otóż z jakiegoś powodu nie chce wysyłać znaków do uC (odbiera poprawnie). Sprzętowo jest wszystko ok i poniższy program działa w obie strony np. z programem Terminal 1.9b. Pewnie to jakaś opcja w samym putty, ale już za bardzo nie mam pomysłu.<br />Usunięcie ustawień z rejestru nie pomaga, a np. telnet działa poprawnie w obie strony.<br /><br />[syntax=c]#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 /><br />#include &quot;mkuart.h&quot;<br />#include &quot;lcd44780.h&quot;<br /><br />uint8_t licznik;<br /><br />int main( void ) {<br /><br />char c;<br /><br />USART_Init( __UBRR );<br />lcd_init();<br />sei();<br /><br />lcd_locate(1,1);<br />lcd_int(licznik);<br />uart_putint(licznik, 10);<br /><br />while(1) {<br /><br />c = uart_getc();<br />if(c!=0)uart_putc(c); <br /><br />if( c=='1'){<br />lcd_locate(1,1);<br />lcd_int(++licznik);<br />}<br /><br />if( c=='2'){ <br />lcd_locate(1,1);<br />lcd_int(--licznik);<br />}<br /><br />}<br />}[/syntax]<br /><br />Edit:<br />Zauważyłem że putty wysyła wpisane znaki dopiero w momencie zamknięcia terminala.<br />Jakieś pomysły?<br /><br />Edit:<br />Heh, restart komputer pomógł.<br />Jednak putty nie jest takie super <img src="https://forum.atnel.pl/images/smilies/icon_cool.gif" alt="8-)" title="Cool" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1254">ciamciak</a> — 6 maja 2013, o 17:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[blooddiamond]]></name></author>
<updated>2013-04-30T14:57:14+01:00</updated>
<published>2013-04-30T14:57:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35672#p35672</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35672#p35672"/>
<title type="html"><![CDATA[Re: Odbieranie stringów UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35672#p35672"><![CDATA[
małymi krokami dojdę do wszystkiego <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br />dziękuję za rady <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=1266">blooddiamond</a> — 30 kwi 2013, o 14:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MichalXY]]></name></author>
<updated>2013-04-30T14:45:00+01:00</updated>
<published>2013-04-30T14:45:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35671#p35671</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35671#p35671"/>
<title type="html"><![CDATA[Re: Odbieranie stringów UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35671#p35671"><![CDATA[
Tak zadziała to tylko zachęcam cię abyś w przyszłości wykorzystał komendy AT bo też są fajne <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=226">MichalXY</a> — 30 kwi 2013, o 14:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[blooddiamond]]></name></author>
<updated>2013-04-30T14:33:48+01:00</updated>
<published>2013-04-30T14:33:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35670#p35670</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35670#p35670"/>
<title type="html"><![CDATA[Re: Odbieranie stringów UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35670#p35670"><![CDATA[
A czy zadziała coś takiego? :<br />- odczyt temperatury z czujnika 1 , gdy odczyt OK, ustaw flagę na 1, wyślij znak 1 i dane przez USART<br />- odczyt temperatury z czujnika 2 , gdy odczyt OK, ustaw flagę na 2, wyślij znak 2 i dane przez USART<br />drugi uP:<br /><br />jeśli odebrano znak 1 -&gt;  ustaw flagę na 1, odbieraj dane i wyświetlaj jako Temperatura1, zeruj flagę<br />jeśli odebrano znak 2 -&gt;  ustaw flagę na 2,  odbieraj dane i wyświetlaj jako Temperatura2, zeruj flagę<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1266">blooddiamond</a> — 30 kwi 2013, o 14:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MichalXY]]></name></author>
<updated>2013-04-30T14:24:42+01:00</updated>
<published>2013-04-30T14:24:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35669#p35669</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35669#p35669"/>
<title type="html"><![CDATA[Re: Odbieranie stringów UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35669#p35669"><![CDATA[
No to zrób sobie ramkę danych: <br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">numer_seryjny_czujnik1, temperatura_czujnik_1, numer_seryjny_czujnik2,temepratura_czujnik_2</div><br /><br />albo załatw to komendami AT, czyli układ odbiornika ten który ma zebrac te dane pyta o temperatury z czujnika np. zapytanie o temperaturę którą mierzy pierwszy czujnik AT+TMP_1? no a wtedy nadajnik odpowiada AT+TMP_1=36 z tym że w obu tych przypadkach musisz ogarnąć odbieranie łańcuchów i ich analizowanie, przez odpowiednie funkcję którę są w jezyku C.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=226">MichalXY</a> — 30 kwi 2013, o 14:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[blooddiamond]]></name></author>
<updated>2013-04-30T14:17:04+01:00</updated>
<published>2013-04-30T14:17:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35668#p35668</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35668#p35668"/>
<title type="html"><![CDATA[Re: Odbieranie stringów UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35668#p35668"><![CDATA[
Mam już komunikację po bluetooth (w sznurku)  między dwoma układami tj: płytkami elektronicznymi, z czego mózgami są Atmegi8. I teraz podłączam do jednej płytki dwa czujniki temperatury. Chcę przesyłać te dane z jednej płytki na drugą. W późniejszym etapie możliwe że dojdzie czujnik wilgotności i zastanawiam się jak tyle różnych danych wysyłać z jednego uP do drugiego.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 3 minutach ]</span></strong><br /><br /><div class="quotetitle">MichalXY napisał(a):</div><div class="quotecontent"><br /><strong>blooddiamond</strong> jeśli będziesz miał dwa AVR-ki z czego jeden będzie obsługiwał czujniki a drugi będzie przetwarzać te nadlatujące dane to jak najbardziej że będziesz mógł rozpoznać z którego czujnika nadlatuje temperatura z tym że musisz odpowiednio uformować ramkę danych tj. uzupełnić ją o numer seryjny czujnika albo i/lub jakąś flagę np. s01 - dla pierwszego czujnika a s02 dla drugiego.<br /></div><br /><br />dokładnie tak <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />nie mam tylko pomysłu jak tą ramkę uformować i odbierać...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1266">blooddiamond</a> — 30 kwi 2013, o 14:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MichalXY]]></name></author>
<updated>2013-04-30T14:13:04+01:00</updated>
<published>2013-04-30T14:13:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35667#p35667</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35667#p35667"/>
<title type="html"><![CDATA[Re: Odbieranie stringów UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35667#p35667"><![CDATA[
<strong>blooddiamond</strong> jeśli będziesz miał dwa AVR-ki z czego jeden będzie obsługiwał czujniki a drugi będzie przetwarzać te nadlatujące dane to jak najbardziej że będziesz mógł rozpoznać z którego czujnika nadlatuje temperatura z tym że musisz odpowiednio uformować ramkę danych tj. uzupełnić ją o numer seryjny czujnika albo i/lub jakąś flagę np. s01 - dla pierwszego czujnika a s02 dla drugiego. Jednak jeśli chcesz mieć kilka urządzeń z komunikowanych o RS232 to nie będzie działać. Wtedy na ratunek przyjdzie RS485, tam możesz sobie ładnie podłączyć kilka urządzeń i mogą sobie rozmawiać i w tym wypadku również możesz zrobić rozpoznawanie skąd nadlatuje temepratura po numerze seryjnym lub jakiejś fladze. <br /><br />Pozdrawiam!<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=226">MichalXY</a> — 30 kwi 2013, o 14:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-04-30T13:54:14+01:00</updated>
<published>2013-04-30T13:54:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35664#p35664</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35664#p35664"/>
<title type="html"><![CDATA[Re: Odbieranie stringów UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35664#p35664"><![CDATA[
Ale teraz to może coś namieszałeś sobie .... bo jak to dane z wielu czujników przez USART, panie kolego USART czyli RS232 to połączenie 1:1 a nie 1:wielu .....to podstawa<br /><br />nie jesteś w stanie podłączyć wielu czujników do procka przez jeden USART a nawet jak podłączysz to będziesz miał mega konflikty gdy kilka zacznie nadawać w tym samym czasie. <br /><br />Zatem nawet nie da się odpowiedzieć na twoje pytanie - jak rozpoznawać dane z konkretnego czujnika<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: kilkunastu sekundach ]</span></strong><br /><br />chyba że ja coś źle zrozumiałem?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 30 kwi 2013, o 13:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[blooddiamond]]></name></author>
<updated>2013-04-30T13:26:22+01:00</updated>
<published>2013-04-30T13:26:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35663#p35663</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35663#p35663"/>
<title type="html"><![CDATA[Re: Odbieranie stringów UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35663#p35663"><![CDATA[
Dobrze, rozumiem <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />  Wysyłając np dane z wielu czujników poprzez  USART, jak mogę rozróżnić podczas odbioru, które dane są z którego czujnika, gdy dane wlatują do bufora odbiorczego co sekundę ? na podstawie wartości zmiennej ascii_line, czy muszę jakoś porównywać stringi ?? <br />Moje pytania pewnie wydają się śmieszne, ale  właśnie dlatego piszę na tym forum, by nie zostać wyśmianym, a naprowadzonym na dobry tor myślenia..<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1266">blooddiamond</a> — 30 kwi 2013, o 13:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-04-29T21:17:37+01:00</updated>
<published>2013-04-29T21:17:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35621#p35621</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35621#p35621"/>
<title type="html"><![CDATA[Re: Odbieranie stringów UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35621#p35621"><![CDATA[
A dlaczego niby masz nie wysyłać znaku CR ?<br /><br />Może nie zrozumiałeś na czym polega transmisja ASCII i jej prostota ?<br /><br />No właśnie na tym, że wyraźnym separatorem ramek jest właśnie znak CR albo znaki CRLF<br /><br />więc jeśli robisz komunikację między dwoma prockami to z jakiej paki chcesz je pomijać ??? tzn jak chcesz to pomijaj <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> nikt ci nie broni i wymyślaj koło od nowa <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />tylko po co? skoro wszędzie można ten sam standard wykorzystywać. Zobacz sobie jak gadają np modemy GSM/GPRS albo moduły GPS - no wszystko posługuje się na końcu znakiem CR .... a ty chcesz sobie to zmieniać ? <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> no jak mówię - możesz - zrób sobie np separator w postaci znaku np # tylko jeszcze raz zapytam PO CO ? Lubisz sobie komplikować na siłę życie ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> skoro już masz gotowe i działające biblioteki ? ..... tak tylko pytam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 29 kwi 2013, o 21:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[blooddiamond]]></name></author>
<updated>2013-04-29T21:12:58+01:00</updated>
<published>2013-04-29T21:12:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35620#p35620</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35620#p35620"/>
<title type="html"><![CDATA[Re: Odbieranie stringów UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35620#p35620"><![CDATA[
Poproszę o radę, jak zrealizować wysyłanie temperatury z czujnika DS18B20 z jednego uP na drugi,  posługując się interfejsem UART.<br />Czy wysyłam po kolei 3 stringi (znak temp, część jednostek, część dziesiętna),  odbieram po kolei każdy string i wtedy wyświetlam całość na wyświetlaczu ? <br />Czy powinienem zmodyfikować przerwanie odbiorcze, skoro nie wysyłam znaku CR, tak jak z terminala ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1266">blooddiamond</a> — 29 kwi 2013, o 21:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-04-28T18:33:10+01:00</updated>
<published>2013-04-28T18:33:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35527#p35527</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35527#p35527"/>
<title type="html"><![CDATA[Re: Odbieranie stringów UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35527#p35527"><![CDATA[
Żaden problem <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> to się bardzo cieszę .... a najbardziej z tego że zabierasz się za to z EVENT'ami bo to jest najbardziej mniamniuśna i wygodna obsługa RS232 <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />A jak coś będzie niejasne to śmiało pytaj - po to jest to forum ... zresztą sam widzisz - czasem wystarczy przejść drobny moment gdzie się zatniemy a potem idzie z górki.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 28 kwi 2013, o 18:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[blooddiamond]]></name></author>
<updated>2013-04-28T17:21:26+01:00</updated>
<published>2013-04-28T17:21:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35522#p35522</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35522#p35522"/>
<title type="html"><![CDATA[Re: Odbieranie stringów UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35522#p35522"><![CDATA[
Działam na ATmega16A, na prostej płytce testowej zasilanej napięciem 5V, z wyprowadzeniami wszystkich pinów, programator USBasp oraz przejściówka USB-&gt;RS232 TTL. Do tego podpięty wyświetlacz lcd. Wcześniej robiłem ćwiczenia z niebieskiej książki i nie było problemów. <br />Funkcje nadawania stringów oraz liczb działają bez problemu:<br /><br />[syntax=c]void uart_putc(unsigned char data)<br />{<br />    unsigned char tmphead;<br /><br />    <br />    tmphead  = (UART_TxHead + 1) &amp; UART_TX_BUFFER_MASK;<br />    <br />    while ( tmphead == UART_TxTail )<br />{ }<br />    <br />    UART_TxBuf&#91;tmphead&#93; = data;<br />    UART_TxHead = tmphead;<br /><br />    UART0_CONTROL    |= _BV(UART0_UDRIE);  //pozwolenie na przerwanie<br /><br />}<br /><br />//funkcja wysylajaca string<br />void uart_puts(const char *s )<br />{<br />    while (*s) <br />      uart_putc(*s++);<br /><br />}<br /><br /><br /><br />void uart_put_int(int val)<br />{<br />char bufor&#91;17&#93;;<br />uart_puts(itoa(val, bufor, 10));<br />}[/syntax]<br /><br />main<br />[syntax=c]int main(void)<br />{<br />    unsigned int c;<br />   char bufor&#91;100&#93;;<br />    unsigned8_t x = 99;<br /><br />    <br />    /*<br />     *  Initialize UART library, pass baudrate and AVR cpu clock<br />     *  with the macro <br />     *  UART_BAUD_SELECT() (normal speed mode )<br />     */<br />    uart_init( UART_BAUD_SELECT(UART_BAUD_RATE,F_CPU) ); <br />    <br />    sei();<br />   <br />    uart_puts(&quot;String wyslany do pamieci RAM \n&quot;);  <br />   <br />    <br />    uart_puts_P(&quot; String wyslany do FLASH\n&quot;);     <br />    <br />    while(1)<br />    {<br />        <br /><br />uart_puts(&quot;\r\n&quot;);<br />            uart_puts(&quot; Jakis string&quot; );<br />uart_puts(&quot;\r\n&quot;);<br />            uart_put_int(x);<br /><br />_delay_ms(1000);<br />      }<br />}[/syntax]<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 39 minutach ]</span></strong><br /><br />Poczytałem jeszcze trochę w książkach, posiedziałem i już mi wszystko działa <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> teraz zabieram się za obsługę odbioru poprzez zdarzenie EVENT.<br /><br /><br /> Przepraszam za problem <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=1266">blooddiamond</a> — 28 kwi 2013, o 17:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-04-28T16:54:40+01:00</updated>
<published>2013-04-28T16:54:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35521#p35521</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35521#p35521"/>
<title type="html"><![CDATA[Re: Odbieranie stringów UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35521#p35521"><![CDATA[
Na żadnego głupca nie wychodzisz - skąd takie jakieś myśli dziwne ...<br /><br />po prostu próbuj po kolei , najpierw spróbuj z samym nadawaniem. Bo nie wiem od czego mógł ci się terminala zawieszać od get_str<br /><br />zresztą - może inaczej - po kolei, i zdecyduj się co po kolei chcesz robić. Najpierw pokaż mi tu kawałek swojego kodu na nadawanie do terminala - np wysyłanie jakiegoś tekstu co sekundę (wtedy możesz użyć _delay_ms() ) .... i powiedz czy ci to działa<br /><br />bo tak? to nawet nie wiadomo co i jak ty konfigurujesz i robisz. Jaki masz sprzęt - pokaż jakiś schemat na czym to testujesz itp<br /><br />wtedy będzie można pomóc - a nie na zasadzie, że robię wszystko wg książki i nie działa bo to jest bez sensu. Przecież programujesz procesor a nie na komputerze. Tu możesz 100 baboli już w samej elektronice popełnić po drodze ... <br /><br />więc jak będziesz miał gotowy krótki programik do wysyłania do terminala obojętnie czy na bibliotekach z zielonej czy niebieskiej to go tu wklej (ale bez bibliotek) tylko main.c który sam napiszesz ok? to coś pewnie uda się pomóc<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 28 kwi 2013, o 16:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[blooddiamond]]></name></author>
<updated>2013-04-28T16:28:11+01:00</updated>
<published>2013-04-28T16:28:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35516#p35516</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35516#p35516"/>
<title type="html"><![CDATA[Re: Odbieranie stringów UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35516#p35516"><![CDATA[
Owszem jest. Chodzi o to, że tworząc bibliotekę na podstawie książki (słowo w słowo), terminal zasypywał mi się samymi znakami &quot; &lt;0&gt; &quot; , gdy wywoływałem funkcję uart_get_str. Od razu wieszał mi się terminal, co stwarzało kłopoty więc stąd ten delay, abym mógł przerwać połączenie, zanim wszystko się zatnie.  Próbowałem więc modyfikować kod, jak widać nie udanie, przez co wychodzę teraz na głupca... <br /><br />A jeśli jest możliwość dokupienia płyt, to na pewno się zgłoszę.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1266">blooddiamond</a> — 28 kwi 2013, o 16:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-04-28T08:11:02+01:00</updated>
<published>2013-04-28T08:11:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35468#p35468</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35468#p35468"/>
<title type="html"><![CDATA[Re: Odbieranie stringów UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35468#p35468"><![CDATA[
<div class="quotetitle">blooddiamond napisał(a):</div><div class="quotecontent"><br />1. Zmienną wprowadziłem jako pomoc dla siebie, gdyż łapałem się już wielu sposobów na pozbycie się ciągłego nadawania zer przez moduł UART, ale wiem, że w tym celu została wprowadzona zmienna &quot;ascii_line&quot;<br /></div><br /><br />Ale posłuchaj - czy ja mam dla ciebie przeglądać książkę i podawać ci na której stronie co jest opisane ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> Nie no rozbroiłeś mnie tym zdaniem - dlatego wyjątkowo podam ci stronę(-y) <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />- str. 401 - kod z komentarzem<br />- str. 401 i 402 - opis kodu a w nim tego co robi ascii_line<br /><br />na prawdę nie mogę się domyśleć co to znaczy że &quot;łapałeś się już wielu sposobów&quot; skoro masz to jak byk opisane w książce. A gdybyś chciał zrobić odbiór tak jak teraz zmieniłeś kod (ale bez tych _delayów) ... to i w pierwszej książce masz przykłady - zajrzyj do rozdziału o projekcie wielozadaniowym.<br /><br /><br /><div class="quotetitle">blooddiamond napisał(a):</div><div class="quotecontent"><br />2. Co do płyt.. kupiłem książki używane od starszego kolegi ze studiów, który niestety płyt mi nie dał..<br /></div><br />No to jeszcze raz powtórzę, takie płytki DVD można dokupić w Atnelu, wystarczy się skontaktować na maila czy telefonicznie - koszt jednej to 12zł z tego co pamiętam.<br /><br /><div class="quotetitle">blooddiamond napisał(a):</div><div class="quotecontent"><br />Głupio się czuję, ale czytam książki, siedzę nad tym już któryś dzień i jestem podłamany <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /></div><br /><br />no a co powiesz na te numery stron które wyżej podałem ? nie ma tego tam opisanego ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 28 kwi 2013, o 08:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[blooddiamond]]></name></author>
<updated>2013-04-28T07:26:45+01:00</updated>
<published>2013-04-28T07:26:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35467#p35467</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35467#p35467"/>
<title type="html"><![CDATA[Re: Odbieranie stringów UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35467#p35467"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />przy okazji ja od razu podpowiem, że niepotrzebnie dorzucasz na pewno tę linię:<br /><br />if(data== 0x0d) flaga++;<br /><br />przeczytaj jednak dokładnie książkę - w tym przerwaniu inna linia zmienna i linia pełni tę rolę - aż się dziwię, że tego nie widzisz i zajrzysz do książki bo nawet w książce jest komentarz w kodzie, a nie wspomnę o tym że i w tekście książki do opisu tego kodu jest to wyjaśnione. Zatem troszkę dziwnie to wygląda co piszesz ....<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 1 minucie ]</span></strong><br /><br /><div class="quotetitle">blooddiamond napisał(a):</div><div class="quotecontent">Przepraszam, już modernizuję swój post, jednak nie wiem, jak w takim razie mam przedstawić swój problem..<br /></div><br /><br />Zawsze możesz także jak masz szczególny problem z samą biblioteką napisać do mnie ale ....<br /><br />ale jak widać z postu i tego co napisałem, nawet z książki nie przepisałeś dokładnie .... Piszesz, że nie masz płyt do książek ... ? Ale przecież w Atnelu można je nabyć po przesłaniu skanu jakiegokolwiek dowodu zakupu.<br /><br />ale ok skup się na tym co ci podpowiedziałem ... bo to może być podstawowy błąd a kolejny to raczej tylko taki, że coś mocno źle korzystasz z tak napisanej biblioteki <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /></div><br /><br />1. Zmienną wprowadziłem jako pomoc dla siebie, gdyż łapałem się już wielu sposobów na pozbycie się ciągłego nadawania zer przez moduł UART, ale wiem, że w tym celu została wprowadzona zmienna &quot;ascii_line&quot;<br />2. Co do płyt.. kupiłem książki używane od starszego kolegi ze studiów, który niestety płyt mi nie dał.. <br /><br />Głupio się czuję, ale czytam książki, siedzę nad tym już któryś dzień i jestem podłamany <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1266">blooddiamond</a> — 28 kwi 2013, o 07:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-04-28T07:16:54+01:00</updated>
<published>2013-04-28T07:16:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35466#p35466</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35466#p35466"/>
<title type="html"><![CDATA[Re: Odbieranie stringów UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35466#p35466"><![CDATA[
przy okazji ja od razu podpowiem, że niepotrzebnie dorzucasz na pewno tę linię:<br /><br />if(data== 0x0d) flaga++;<br /><br />przeczytaj jednak dokładnie książkę - w tym przerwaniu inna linia zmienna i linia pełni tę rolę - aż się dziwię, że tego nie widzisz i zajrzysz do książki bo nawet w książce jest komentarz w kodzie, a nie wspomnę o tym że i w tekście książki do opisu tego kodu jest to wyjaśnione. Zatem troszkę dziwnie to wygląda co piszesz ....<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 1 minucie ]</span></strong><br /><br /><div class="quotetitle">blooddiamond napisał(a):</div><div class="quotecontent"><br />Przepraszam, już modernizuję swój post, jednak nie wiem, jak w takim razie mam przedstawić swój problem..<br /></div><br /><br />Zawsze możesz także jak masz szczególny problem z samą biblioteką napisać do mnie ale ....<br /><br />ale jak widać z postu i tego co napisałem, nawet z książki nie przepisałeś dokładnie .... Piszesz, że nie masz płyt do książek ... ? Ale przecież w Atnelu można je nabyć po przesłaniu skanu jakiegokolwiek dowodu zakupu.<br /><br />ale ok skup się na tym co ci podpowiedziałem ... bo to może być podstawowy błąd a kolejny to raczej tylko taki, że coś mocno źle korzystasz z tak napisanej biblioteki <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 7 minutach ]</span></strong><br /><br />O! a teraz zmieniłeś kod ... ale w plikach main w ogóle nie korzystasz z tego co było opisane w zielonej książce tylko jakby z tego co w niebieskiej - to nie będzie działać tak na krzyż za bardzo bez poważnych zmian. To jedno. A drugie .... no jeśli masz niebieską książkę to tam jest WYRAŹNIE napisane żeby nie używać _delay_ms() i to SZCZEGÓLNIE gdy się odbiera dane ...a ty co masz?<br /><br />_delay_ms(1000);<br /><br /><img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br />na prawdę coś czuję, że albo musisz najpierw więcej na temat podstaw C poczytać i to wystarczy w tych książkach, porobić wcześniejsze ćwiczenia - bo na razie to wygląda tak jakbyś na gwałt próbował coś szybko w kodzie sklecić nie rozumiejąc do końca jak to działa <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> ... pewnie dlatego na razie ci to nie wychodzi. A jak mówię w książkach masz dokładnie całe kody opisane i to krok po kroku. Więc staraj się to zrozumieć - a jak się zatniesz to wtedy ŚMIAŁO pisz i pytaj na forum ... czy na maila jak musisz pokazywać większą część kodu bibliotek.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 28 kwi 2013, o 07:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[blooddiamond]]></name></author>
<updated>2013-04-28T07:18:48+01:00</updated>
<published>2013-04-28T07:13:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35465#p35465</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35465#p35465"/>
<title type="html"><![CDATA[Re: Odbieranie stringów UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35465#p35465"><![CDATA[
Przepraszam, już modernizuję swój post, jednak nie wiem, jak w takim razie mam przedstawić swój problem.. Tym bardziej, że pisałem bibliotekę na podstawie książki, ale bez biblioteki z płyty, nie mogę więc mieć pewności, że nie wkradły mi się błędy.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1266">blooddiamond</a> — 28 kwi 2013, o 07:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-04-28T07:11:47+01:00</updated>
<published>2013-04-28T07:11:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35464#p35464</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35464#p35464"/>
<title type="html"><![CDATA[Re: Odbieranie stringów UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35464#p35464"><![CDATA[
Witamy na forum, ale panie kolego, biblioteki z książek nie są po to aby umieszczać je na forach:<br /><br /><div class="quotetitle">blooddiamond napisał(a):</div><div class="quotecontent"><br />Nie chcę pokazywać całego kodu bibliotek, bo zajęłoby to sporo miejsca, pokażę zatem kod przerwań i funkcji odbioru.<br /></div><br /><br />Więc taka moja gorąca prośba - poza samymi plikami main.c które są czy w książkach czy na dołączonych do nich płytach DVD proszę nawet nie myśleć o udostępnianiu na jakichkolwiek forach tych treści inaczej to po co ja mam pisać książki, a kilka osób udostępni wszystko na forach ? Pomyślał kolega o tym ?<br /><br />Biblioteki z książek działają, czasem są do nich aktualizacje ale akurat ta z zielonej do obsługi UART działa ślicznie. A jeśli koledze nie działa, to proszę się skupić na tym czego kolega nie rozumie i pokazując najwyżej fragment 2-3 linie z biblioteki dopytać o co chodzi .... Tu na tym forum praktycznie każdy posiada wspomniane książki, ja także więc każdy może zajrzeć i coś podpowiedzieć. <br /><br />Mogę liczyć na takie podejście?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 28 kwi 2013, o 07:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[blooddiamond]]></name></author>
<updated>2013-04-28T07:14:47+01:00</updated>
<published>2013-04-28T07:00:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35463#p35463</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35463#p35463"/>
<title type="html"><![CDATA[Re: Odbieranie stringów UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=968&amp;p=35463#p35463"><![CDATA[
Witam. Z góry przepraszam za ogromną ilość treści... Jestem tutaj nowy, a nie chciałem zaśmiecać forum nowym tematem. Na wstępie pragnę wszystkich powitać. Swoją przygodę z mikrokontrolerami zacząłem na studiach niecałe pół roku temu. Było to programowanie 8051, jednakże na gotowych bibliotekach, co nie nauczyło mnie zbyt wiele. Około miesiąc temu zacząłem ostro naukę na AVRach. <br />W ramach projektu na zaliczenie mam za zadanie stworzyć dwie płytki elektroniczne do komunikacji po bluetooth. Jedna z czujnikami( wstępnie DS18B20) i druga z wyświetlaczem LCD. Projekt prosty, jednak dopiero się uczę więc jak łatwo zgadnąć napotykam problemy. Posiadam obydwie książki Pana Mirka, jednak nie mam do nich płyt. Jestem więc skazany na pisanie własnych bibliotek na podstawie książek.  <br />Chciałbym prosić o pomoc w rozwiązaniu problemu z biblioteką USART, nad którą siedzę już kilka dni i która nie daje mi spać po nocach, gdyż chciałbym już uzyskać komunikację po bluetooth.<br /><br />Problem polega na tym, że działa wysyłanie stringów, oraz znaków, jednak nie działa nawet najprostszy odbiór znaku. Czy warunek zapełnienia bufora jest spełniony, czy tez nie, następuje ciągłe wypisywanie zer w terminalu. Gdy w międzyczasie wysłać znak, zostanie on wypisany, lecz ciągle w otoczeniu zer.<br /><br />Po nieudanych próbach i wyrywanych włosach na głowie, skorzystałem z gotowej biblioteki UART Pana Petera Fleury, która jest ogólnie dostępna i przerobiłem ją pod własny użytek. Wtedy zaczął działać zarówno odbiór jak i wysyłanie pełnych stringów. Porównuję obie biblioteki i niestety ale już nie mam pomysłu, co może być źle w bibliotece napisanej na podstawie książki <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> <br />Nie chcę pokazywać całego kodu bibliotek, bo zajęłoby to sporo miejsca, pokażę zatem kod przerwań i funkcji odbioru.<br />Proszę o pomoc w rozwiązaniu problemu oraz zrozumienie, gdyż dopiero zaczynam swoją zabawę z mikrokontrolerami AVR.<br /><br /><br />main  1<br />[syntax=c]int main(void)<br />{<br />char bufor&#91;100&#93;;<br />char c;<br /><br />    uart_init( __UBBR ); <br />    <br />    sei();<br /><br /><br />    while(1)<br />    {<br />  c = uart_getc();<br />  if (c &amp; UART_NO_DATA)<br />  {<br />   <br />  // no data available from UART<br />  <br />  }<br />  else<br />  {<br />  uart_putc(c);<br />  _delay_ms(1000);<br />  }<br /><br />} <br /> <br />}[/syntax]<br /><br /><br /><br />main<br />[syntax=c]int main(void)<br />{<br />    unsigned int c;<br />   <br />char bufor&#91;100&#93;;<br />    <br /><br />    <br />    /*<br />     *  Initialize UART library, pass baudrate and AVR cpu clock<br />     *  with the macro <br />     *  UART_BAUD_SELECT() (normal speed mode )<br />     */<br />    uart_init( UART_BAUD_SELECT(UART_BAUD_RATE,F_CPU) ); <br />    <br />    /*<br />     * now enable interrupt, since UART library is interrupt controlled<br />     */<br />    sei();<br />   <br />    uart_puts(&quot;String stored in SRAM \n&quot;);  <br />    /*<br />     * Transmit string from program memory to UART<br />     */<br />    uart_puts_P(&quot; String stored in FLASH\n&quot;);     <br />    uart_putc('\r');<br />    <br />    while(1)<br />    {<br />       /* if (flaga)<br />        {<br />uart_puts(&quot;flaga: &quot;);<br />uart_put_int(flaga);<br />uart_puts(&quot;\r\n&quot;);<br />            uart_puts(uart_get_str(bufor));<br />uart_puts(&quot;\r\n&quot;);<br />            _delay_ms(200);<br />flaga--;<br />        }<br />        else<br />        {<br /><br />        }<br />*/<br />   <br /> c = uart_getc();<br />        if ( c &amp; UART_NO_DATA )<br />        {<br />             // no data available from UART  <br />        }<br />        else<br />        {<br />            uart_putc( (unsigned char)c );<br />        }<br /><br /><br />    }<br />    <br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1266">blooddiamond</a> — 28 kwi 2013, o 07:00</p><hr />
]]></content>
</entry>
</feed>