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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-04-27T22:12:30+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=24&amp;t=15225&amp;mode</id>
<entry>
<author><name><![CDATA[Jagla]]></name></author>
<updated>2016-04-27T22:12:30+01:00</updated>
<published>2016-04-27T22:12:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15225&amp;p=159504#p159504</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15225&amp;p=159504#p159504"/>
<title type="html"><![CDATA[Re: Transmisja RS232 z ATmegą 328P - Odbieranie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15225&amp;p=159504#p159504"><![CDATA[
Problem rozwiązany dzięki użytkownikowi <strong>anshar</strong>.<br /><br />Po prostu przy konfiguracji swojego procka usunąłem <div class="codetitle"><b>Code:</b></div><div class="codecontent">|(1&lt;&lt;RXCIE0)</div> z ustawienia rejestru<div class="codetitle"><b>Code:</b></div><div class="codecontent">UCSR0B</div><br /><br />Wszystko działa <img src="https://forum.atnel.pl/images/smilies/icon_exclaim.gif" alt=":!:" title="Wykrzyknik" /> <br /><br />Dziękuję  <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=3925">Jagla</a> — 27 kwi 2016, o 22:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jagla]]></name></author>
<updated>2016-04-27T12:13:18+01:00</updated>
<published>2016-04-27T12:13:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15225&amp;p=159457#p159457</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15225&amp;p=159457#p159457"/>
<title type="html"><![CDATA[Re: Transmisja RS232 z ATmegą 328P - Odbieranie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15225&amp;p=159457#p159457"><![CDATA[
Wiem tyle, że coś pokićkałem.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 30 minutach ]</span></strong><br /><br />Tak się zastanawiam , skoro użyte jest parsowanie, event,  callback, to czy mogę sobie użyć w pętli while uart_getc ()? Chyba nie za bardzo. Myślę , że wtedy musiałbym nie rejestrować  callback i funkcji do parsowania.  Hmm. Nie testowałem tego i jak wrócę do domu to spróbuje.<br /><br />Ale i tak jest ale. Użyłem gotowych plików Pana Mirka,  przystosowałem swój procek do obsługi UART'a i dalej nic <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=3925">Jagla</a> — 27 kwi 2016, o 12:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jagla]]></name></author>
<updated>2016-04-27T10:39:52+01:00</updated>
<published>2016-04-27T10:39:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15225&amp;p=159444#p159444</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15225&amp;p=159444#p159444"/>
<title type="html"><![CDATA[Re: Transmisja RS232 z ATmegą 328P - Odbieranie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15225&amp;p=159444#p159444"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />A zaglądał kolega do Greenbooka? Bo w podpisie widzę, że go masz - a tam opisałem dokładnie nie tylko budowę biblioteki (czyli do czego jest -1) ale jeszcze pokazałem sposoby odbierania i parsowania danych.<br /></div><br /><br />Teraz właśnie zaglądam. <br /><br />Wrócę tu za chwilę bo coś znalazłem w GB, ostatnio musiałem coś przeoczyć i za szybko się wziąłem za programowanie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3925">Jagla</a> — 27 kwi 2016, o 10:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2016-04-27T10:34:01+01:00</updated>
<published>2016-04-27T10:34:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15225&amp;p=159442#p159442</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15225&amp;p=159442#p159442"/>
<title type="html"><![CDATA[Re: Transmisja RS232 z ATmegą 328P - Odbieranie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15225&amp;p=159442#p159442"><![CDATA[
<div class="quotetitle">Jagla napisał(a):</div><div class="quotecontent"><br />Dlaczego jest &quot;-1&quot; ?<br /></div><br />A zaglądał kolega do Greenbooka? Bo w podpisie widzę, że go masz - a tam opisałem dokładnie nie tylko budowę biblioteki (czyli do czego jest -1) ale jeszcze pokazałem sposoby odbierania i parsowania danych.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 27 kwi 2016, o 10:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jagla]]></name></author>
<updated>2016-04-27T10:28:19+01:00</updated>
<published>2016-04-27T10:28:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15225&amp;p=159440#p159440</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15225&amp;p=159440#p159440"/>
<title type="html"><![CDATA[Re: Transmisja RS232 z ATmegą 328P - Odbieranie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15225&amp;p=159440#p159440"><![CDATA[
<div class="quotetitle">anshar napisał(a):</div><div class="quotecontent"><br />No ale już nie wyświetla ...<br /><br />Spróbuj np. tak:<br />[syntax=c]while(1)<br />    {<br />    int data;//int zamiast char a to dlatego, że funkcja uart_getc() zwraca int o wartości -1<br /><br />    data = uart_getc();<br /><br />    if( (-1) != data ) {//jeśli funkcja uart_getc() zwraca wartość inną niż -1 to wyświetl data<br />    uart_putc( data );<br />    }<br />    }[/syntax]<br /></div><br /><br />Nic nie pomogło, nic nie jest wyświetlane ponieważ w &quot;tle&quot; cały czas mam przesyłane &quot;-1&quot;.<br />Dlaczego jest &quot;-1&quot; ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3925">Jagla</a> — 27 kwi 2016, o 10:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[anshar]]></name></author>
<updated>2016-04-27T02:18:53+01:00</updated>
<published>2016-04-27T02:18:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15225&amp;p=159427#p159427</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15225&amp;p=159427#p159427"/>
<title type="html"><![CDATA[Re: Transmisja RS232 z ATmegą 328P - Odbieranie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15225&amp;p=159427#p159427"><![CDATA[
No ale już nie wyświetla ...<br /><br />Spróbuj np. tak:<br />[syntax=c]while(1)<br />    {<br />    int data;//int zamiast char a to dlatego, że funkcja uart_getc() zwraca int o wartości -1<br /><br />    data = uart_getc();<br /><br />    if( (-1) != data ) {//jeśli funkcja uart_getc() zwraca wartość inną niż -1 to wyświetl data<br />    uart_putc( data );<br />    }<br />    }[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7157">anshar</a> — 27 kwi 2016, o 02:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jagla]]></name></author>
<updated>2016-04-27T00:02:38+01:00</updated>
<published>2016-04-27T00:02:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15225&amp;p=159425#p159425</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15225&amp;p=159425#p159425"/>
<title type="html"><![CDATA[Re: Transmisja RS232 z ATmegą 328P - Odbieranie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15225&amp;p=159425#p159425"><![CDATA[
<div class="quotetitle">anshar napisał(a):</div><div class="quotecontent"><br />Masz taktowanie procka 16MHz i ustawiłeś prędkość 115200? W ds na stronie 190 zobacz jaki masz błąd transmisji, nie może on wynosić więcej niż 2%. <br />Wszystko jest pięknie opisane w BB.<br /></div><br /><br />Wiem wiem o tym procencie, ale przy każdej prędkości mam to samo.<br />Prędkość zmieniłem na 19200.<br /><br /><div class="quotetitle">anshar napisał(a):</div><div class="quotecontent"><br />Zapoznaj się z topic14999.html, szczególnie z tym:   <br />SunRiver napisał(a):<br />BEZWZGLĘDNY ZAKAZ UMIESZCZANIA NA FORUM BIBLIOTEK ZAWARTYCH w KSIĄŻKACH BB i GB<br /></div><br /><br />To też wiem, może za duży fragment kodu podałem za co przepraszam.<br /><br /><div class="quotetitle">anshar napisał(a):</div><div class="quotecontent"><br />Zakomentuj linię:<br />Składnia: [ Pobierz ] [ Ukryj ]<br />język c<br />data=uart_getc();<br />GeSHi<br /><br />zobacz co się stanie.<br /></div><br /><br />Jeśli to zakomentuje to to wyświetla mi się warning: 'data' is used uninitialized in this function [-Wuninitialized]main.c/<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3925">Jagla</a> — 27 kwi 2016, o 00:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[anshar]]></name></author>
<updated>2016-04-26T23:13:05+01:00</updated>
<published>2016-04-26T23:13:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15225&amp;p=159422#p159422</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15225&amp;p=159422#p159422"/>
<title type="html"><![CDATA[Re: Transmisja RS232 z ATmegą 328P - Odbieranie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15225&amp;p=159422#p159422"><![CDATA[
Masz taktowanie procka 16MHz i ustawiłeś prędkość 115200? W <a href="http://www.atmel.com/images/atmel-8271-8-bit-avr-microcontroller-atmega48a-48pa-88a-88pa-168a-168pa-328-328p_datasheet_complete.pdf"  class="postlink">ds</a> na stronie 190 zobacz jaki masz błąd transmisji, nie może on wynosić więcej niż 2%. <br />Wszystko jest pięknie opisane w BB.  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 6 minutach ]</span></strong><br /><br />Zapoznaj się z <!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic14999.html" >topic14999.html</a><!-- l -->, szczególnie z tym:  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br /><div class="quotetitle">SunRiver napisał(a):</div><div class="quotecontent"><br />BEZWZGLĘDNY ZAKAZ UMIESZCZANIA NA FORUM BIBLIOTEK ZAWARTYCH w KSIĄŻKACH BB i GB<br /></div><br /><br />Zakomentuj linię:<br />[syntax=c]data=uart_getc();[/syntax]<br />zobacz co się stanie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7157">anshar</a> — 26 kwi 2016, o 23:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jagla]]></name></author>
<updated>2016-04-26T22:55:50+01:00</updated>
<published>2016-04-26T22:55:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15225&amp;p=159421#p159421</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15225&amp;p=159421#p159421"/>
<title type="html"><![CDATA[Re: Transmisja RS232 z ATmegą 328P - Odbieranie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15225&amp;p=159421#p159421"><![CDATA[
Dziękuję bardzo.<br /><br />To jest pryszcz przy problemie który mam przy wykorzystaniu bibliotek Pana Mirka.<br /><br />[syntax=c]main.c<br /><br />// Procek 16 000 000<br />// prędkość 115200<br /><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;string.h&gt;<br /><br />#include &quot;MK_USART/mkuart.h&quot;<br />#include &quot;MK_TERMINAL/mk_term.h&quot;<br /><br />#define KEY1 (1&lt;&lt;PB0)<br /><br />uint16_t key_lock;<br /><br />uint8_t licznik;<br /><br /><br />char uart_buf&#91;100&#93;;<br /><br />void analizuj_dane_rs232( char * buf );<br /><br />//************ główna funkcja main() programu *****************************<br />int main(void)<br />{<br />LED_DIR |= LED;<br />PORTB |= KEY1;<br /><br />// inicjalizacja UART<br />USART_Init(__UBRR);<br /><br />// rejestracja własnej funkcji do analizowania danych odebranych przez UART<br />register_uart_str_rx_event_callback( analizuj_dane_rs232 );<br /><br />sei();// globalne odblokowanie przerwań<br /><br />tr_cls(0);<br />tr_attr( 0 , 0 , 1 );<br />uart_puts(&quot;*******start******&quot;);<br />_delay_ms(10);<br /><br />char data;<br /><br />// pętla główna programu<br />while(1)<br />{<br />UART_RX_STR_EVENT( uart_buf );<br /><br />data=uart_getc();<br /><br />uart_putc(data); //------- tutaj<br /><br />_delay_ms(500);<br /><br />}<br /><br />}<br />//************************* koniec main() **********************<br /><br />void analizuj_dane_rs232( char * buf )<br />{}[/syntax]<br /><br />[syntax=c]//fragment mkuart.c<br />//-------- <br />void USART_Init( uint16_t baud )<br />{<br />/* ustawienie prędkości */<br />UBRR0H = (unsigned char)(baud&gt;&gt;8);<br />UBRR0L = (unsigned char)baud;<br /><br />UCSR0A = (1&lt;&lt;U2X0);<br />/* załączanie odbiornika i nadajnika */<br />UCSR0B = (1&lt;&lt;RXEN0)|(1&lt;&lt;TXEN0);<br />/* ustawienie formatu ramki: 8 bitów danych, 1 bit stopu */<br />UCSR0C = (1&lt;&lt;UCSZ01)|(1&lt;&lt;UCSZ00);<br /><br />// jeśli korzystamy z interefejsu RS485<br />#ifdef UART_DE_PORT<br />// inicjalizujemy linię sterującą nadajnikiem<br />UART_DE_DIR |= UART_DE_BIT;<br />UART_DE_ODBIERANIE;<br />#endif<br /><br />// jeśli korzystamy z interefejsu RS485<br />#ifdef UART_DE_PORT<br />// jeśli korzystamy z interefejsu RS485 załączamy dodatkowe przerwanie TXCIE<br />UCSR0B |= (1&lt;&lt;RXEN0)|(1&lt;&lt;TXEN0)|(1&lt;&lt;RXCIE0)|(1&lt;&lt;TXCIE0);<br />#else<br />// jeśli nie  korzystamy z interefejsu RS485<br />UCSR0B |= (1&lt;&lt;RXEN0)|(1&lt;&lt;TXEN0);<br />#endif<br />}<br />//-------- <br /><br />//-------------------<br />void uart_putc( char data ) {<br />uint8_t tmp_head;<br /><br />tmp_head  = (UART_TxHead + 1) &amp; UART_TX_BUF_MASK;<br />          // pętla oczekuje jeżeli brak miejsca w buforze cyklicznym na kolejne znaki<br />    while ( tmp_head == UART_TxTail ){}<br /><br />    UART_TxBuf&#91;tmp_head&#93; = data;<br />    UART_TxHead = tmp_head;<br /><br />    // inicjalizujemy przerwanie występujące, gdy bufor jest pusty, dzięki<br />    // czemu w dalszej części wysyłaniem danych zajmie się już procedura<br />    // obsługi przerwania<br />    UCSR0B |= (1&lt;&lt;UDRIE0);<br />}<br />int uart_getc(void) {<br />int data = -1;<br />    // sprawdzamy czy indeksy są równe<br />    if ( UART_RxHead == UART_RxTail ) return data;<br /><br />    // obliczamy i zapamiętujemy nowy indeks „ogona węża” (może się zrównać z głową)<br />    UART_RxTail = (UART_RxTail + 1) &amp; UART_RX_BUF_MASK;<br />    // zwracamy bajt pobrany z bufora  jako rezultat funkcji<br />    data = UART_RxBuf&#91;UART_RxTail&#93;;<br /><br />    return data;<br />}<br /><br />char * uart_get_str(char * buf) {<br />int c;<br />char * wsk = buf;<br />if( ascii_line ) {<br />while( (c = uart_getc()) ) {<br />if( 13 == c || c &lt; 0) break;<br />*buf++ = c;<br />}<br />*buf=0;<br />ascii_line--;<br />}<br />return wsk;<br />}<br />//-------------------[/syntax]<br /><br />Wyświetla mi co pół sekundy <div class="codetitle"><b>Code:</b></div><div class="codecontent">˙˙</div><br />Dioda na przejściówce RS232 miga tylko ta co wyświetla <div class="codetitle"><b>Code:</b></div><div class="codecontent">uart_putc(data);</div>.<br />W terminalu nic nie piszę, a pętla cały czas wyświetla mi te dwa znaczki co chwile.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 11 minutach ]</span></strong><br /><br />Użyłem funkcji:<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">uart_putint(data,10);</div><br />I w terminalu wyświetla mi się &quot;255&quot;<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3925">Jagla</a> — 26 kwi 2016, o 22:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[anshar]]></name></author>
<updated>2016-04-26T22:06:03+01:00</updated>
<published>2016-04-26T22:06:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15225&amp;p=159413#p159413</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15225&amp;p=159413#p159413"/>
<title type="html"><![CDATA[Re: Transmisja RS232 z ATmegą 328P - Odbieranie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15225&amp;p=159413#p159413"><![CDATA[
masz:<br />[syntax=c]while(!(UCSR0A &amp; (1&lt;RXC0)));[/syntax]<br />powinno być:<br />[syntax=c]while(!(UCSR0A &amp; (1&lt;&lt;RXC0)));[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7157">anshar</a> — 26 kwi 2016, o 22:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jagla]]></name></author>
<updated>2016-04-26T20:43:59+01:00</updated>
<published>2016-04-26T20:43:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15225&amp;p=159396#p159396</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15225&amp;p=159396#p159396"/>
<title type="html"><![CDATA[Transmisja RS232 z ATmegą 328P - Odbieranie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15225&amp;p=159396#p159396"><![CDATA[
Witam.<br />Mam problem z odbieraniem danych przez ATmegę 328P po RS232 z Terminala PuTTY.<br /><br />Męczę się z tym problemem 3 dzień i nie wiem już jaki leży problem.<br />Skorzystałem już nawet  z podstawowych funkcji do odbierania i nadawania, i zawsze gdy w pętli <strong>while</strong> dochodzi do funkcji [syntax=c]uart_getc()[/syntax] wszystko się zawiesza.<br /><br />Zmieniałem już wiele w kodzie i coś jest nie tak. Może coś z zasilaniem ale to wszystko wydaje się ok.<br /><br />Kod:<br />[syntax=c]//------ATmega 328P<br />//------CPU 16 000 000<br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;stdlib.h&gt;<br /><br /><br />#define UART_BAUD 19200// tu definiujemy interesującą nas prędkość<br />#define __UBRR ((F_CPU+UART_BAUD*8UL) / (16UL*UART_BAUD)-1) // obliczamy UBRR dla U2X=0<br />// #define __UBRR ((F_CPU+UART_BAUD*4UL) / (8UL*UART_BAUD)-1) // obliczamy UBRR dla U2X=1<br /><br />void USART_Init( uint16_t ubrr);<br /><br /><br />void uart_putc( char data );<br /><br />void uart_puts(char *s);<br />void uart_putint(int value, int radix);<br />void uart_puts_P(const char *s);<br />void uart_putlong(uint32_t liczba, uint8_t radix);<br /><br />unsigned char uart_getc(void);<br /><br /><br />int main( void )<br />{<br /><br />DDRB |= (1&lt;&lt;PB1);<br /><br />USART_Init(__UBRR);<br /><br />DDRB |= (1&lt;&lt;PB1);<br />PORTB |= (1&lt;&lt;PB1);<br />_delay_ms(500);<br />PORTB ^= (1&lt;&lt;PB1);<br /><br /><br />while(1)<br />{<br />uart_puts(&quot;tekst&quot;);<br />if(uart_getc()=='q')<br />{<br />uart_puts(&quot;wcisnąłeś q&quot;);<br />}<br />else uart_putc('!');<br />_delay_ms(500);<br />}<br /><br />}<br />//--------------------------------------------------<br />void USART_Init( uint16_t baud )<br />{<br />/* ustawienie prędkości */<br />UBRR0H = (unsigned char)(baud&gt;&gt;8);<br />UBRR0L = (unsigned char)baud;<br /><br />/* załączanie odbiornika i nadajnika */<br />UCSR0B = (1&lt;&lt;RXEN0)|(1&lt;&lt;TXEN0);<br />/* ustawienie formatu ramki: 8 bitów danych, 1 bit stopu */<br />UCSR0C = (1&lt;&lt;UCSZ01)|(1&lt;&lt;UCSZ00);<br />}<br /><br />void uart_putc( char data ) {<br /><br />while( !( UCSR0A &amp; (1&lt;&lt;UDRE0)) );<br /><br />UDR0=data;<br />}<br /><br />unsigned char uart_getc(void)<br />{<br /><br />while(!(UCSR0A &amp; (1&lt;RXC0)));<br /><br />return UDR0;<br /><br />}<br /><br />void uart_puts(char *s)// wysyła łańcuch z pamięci RAM na UART<br />{<br />  while (*s) uart_putc(*s++);// dopóki nie napotkasz 0 wysyłaj znak<br />}<br /><br />void uart_putint(int value, int radix)// wysyła na port szeregowy tekst<br />{<br />char string&#91;17&#93;;// bufor na wynik funkcji itoa<br />itoa(value, string, radix);// konwersja value na ASCII<br />uart_puts(string);// wyślij string na port szeregowy<br />}<br />//--------------------------------------------------<br /><br />void uart_puts_P(const char *s)<br />{<br />register char c;<br />while ((c=pgm_read_byte(s++))) uart_putc(c);<br />}<br /><br />void uart_putlong(uint32_t liczba, uint8_t radix)<br />{<br />char buf&#91;17&#93;;// bufor na wynik funkcji itoa<br />itoa(liczba, buf, radix);// konwersja value na ASCII<br />uart_puts(buf);<br />}<br /><br /><br />//--------------------------------------------------[/syntax]<br /><br />Próbowałem się przespać z problemem i muszę chyba jeszcze z nim pospać  <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> <br /><br />Liczę na jakieś pomysły.<br /><br /><br />P.S.<br />Rok temu wszystko mi działało ale niestety nie zachowałem tych projektów.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3925">Jagla</a> — 26 kwi 2016, o 20:43</p><hr />
]]></content>
</entry>
</feed>