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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2012-04-19T16:48:37+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=1009&amp;mode</id>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-04-19T16:48:37+01:00</updated>
<published>2012-04-19T16:48:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1009&amp;p=5579#p5579</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1009&amp;p=5579#p5579"/>
<title type="html"><![CDATA[Re: USART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1009&amp;p=5579#p5579"><![CDATA[
<div class="quotetitle">wasu napisał(a):</div><div class="quotecontent"><br />Odczytalem UBRR dla predkosci 9600, powininem zrobic USART_Init(9600)?<br /></div><br /><br />Zadałem przed chwilą pytanie i nie raczyłeś odpowiedzieć <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br />jeśli tak będziemy mieli toczyć dyskusję że ja swoje a ty swoje to chyba się nie dogadamy <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br />Jeszcze raz zapytam czy odpalałeś oryginalny kod z płyty DVD ? Tam masz CAŁKIEM inaczej zrobioną inicjalizację UART i może zastanów się jak i dlaczego ? zresztą to samo opisane jest także w książce .....<br /><br />no chyba że ty zadajesz pytania innej osobie niż ja ? bo tak coś czuję jakbym miał rozdwojenie jaźni ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ja swoje a ty swoje<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 19 kwi 2012, o 16:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wasu]]></name></author>
<updated>2012-04-19T14:23:26+01:00</updated>
<published>2012-04-19T14:23:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1009&amp;p=5573#p5573</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1009&amp;p=5573#p5573"/>
<title type="html"><![CDATA[Re: USART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1009&amp;p=5573#p5573"><![CDATA[
Odczytalem UBRR dla predkosci 9600, powininem zrobic USART_Init(9600)?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=260">wasu</a> — 19 kwi 2012, o 14:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-04-19T09:57:11+01:00</updated>
<published>2012-04-19T09:57:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1009&amp;p=5570#p5570</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1009&amp;p=5570#p5570"/>
<title type="html"><![CDATA[Re: USART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1009&amp;p=5570#p5570"><![CDATA[
No ale ja zapytam tak z ciekawości - dlaczego kolega nie odpali sobie przykładu z DVD ? Przecież on działa - a potem można go modyfikować powoli po swojemu przecież.<br /><br />Tymczasem kolega tak namieszał - skąd się wzięło np takie coś:<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">USART_Init(51);</div><br /><br />zachodzę w głowę i nie mogę się nadziwić <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=54">mirekk36</a> — 19 kwi 2012, o 09:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wasu]]></name></author>
<updated>2012-04-19T09:30:12+01:00</updated>
<published>2012-04-19T09:30:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1009&amp;p=5569#p5569</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1009&amp;p=5569#p5569"/>
<title type="html"><![CDATA[Re: USART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1009&amp;p=5569#p5569"><![CDATA[
No tak, zapewne zapomnialem obslugi przerwania. Z tym ze realizuje ksiazke Mirka strona po stronie i w cwiczeniu z kalibracja, nie ma o tym slowa ze nalezy taka obsluge przerwania napisac, dopiero w rozdziale kolejnym 5.8.2 jest poddrozdzial poswiecony przerwania<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=260">wasu</a> — 19 kwi 2012, o 09:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Malutki_27]]></name></author>
<updated>2012-04-18T14:40:11+01:00</updated>
<published>2012-04-18T14:40:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1009&amp;p=5455#p5455</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1009&amp;p=5455#p5455"/>
<title type="html"><![CDATA[Re: USART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1009&amp;p=5455#p5455"><![CDATA[
Szanowny kolego wasu znowu kopiuj &amp; wklej, tylko tym razem troche lepiej wyszło no i przecież kompilator się za mocno nie pluje przecie jeden warning to nie problem, tylko jestem ciekach jak ci się te liczby wyświetlą na terminalu ?<br /><br />Skoro używasz tego: UCSR0B |= (1&lt;&lt;UDRIE0);<br /><br />to miło by było gdyby TO wiedziało co ma zrobić . <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br />A tak fajnie kolega mirekk opisał wszystko w rozdziale 5.8.2<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=225">Malutki_27</a> — 18 kwi 2012, o 14:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wasu]]></name></author>
<updated>2012-04-18T14:06:56+01:00</updated>
<published>2012-04-18T14:06:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1009&amp;p=5453#p5453</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1009&amp;p=5453#p5453"/>
<title type="html"><![CDATA[Re: USART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1009&amp;p=5453#p5453"><![CDATA[
Przez przypadek wkleiłem kod z innego pliku niż zamierzałem, przez co były błędne definicje zmiennych i funkcji.<br />Wrzucam aktualny kod, kompiluje się ale nie wysyła<br />[syntax=c]#define UART_TX_BUF_SIZE 16 // definiujemy bufor o rozmiarze 16 bajtów<br />// definiujemy maskę dla naszego bufora<br />#define UART_TX_BUF_MASK ( UART_TX_BUF_SIZE - 1)<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />void USART_Init( unsigned int baud );<br />void USART_Transmit( unsigned char data );<br />void uart_putc( char data );<br />void uart_putstr(char *s);<br />void uart_putint(int value, int radix);<br /><br />// definiujemy w końcu nasz bufor UART_RxBuf<br />volatile char UART_TxBuf[UART_TX_BUF_SIZE];<br />// definiujemy indeksy określające ilość danych w buforze<br />volatile uint8_t UART_TxHead; // indeks oznaczający „głowę węża”<br />volatile uint8_t UART_TxTail; // indeks oznaczający „ogon węża”<br /><br /><br /><br />int main(void)<br />{<br />uint8_t oscyl=OSCCAL;<br />USART_Init(51);<br />while(1){<br />uart_putstr(&quot;Wartosc rejestru kalibracji: &quot;);<br />uart_putint(oscyl,10);<br />uart_putstr(&quot;\r\n&quot;);<br />_delay_ms(1000);<br />}<br />}<br /><br />void USART_Init( unsigned int baud )<br />{<br />/* Set baud rate */<br />UBRR0H = (unsigned char)(baud&gt;&gt;8);<br />UBRR0L = (unsigned char)baud;<br />/* Enable receiver and transmitter */<br />UCSR0B = (1&lt;&lt;RXEN0)|(1&lt;&lt;TXEN0);<br />/* Set frame format: 8data, 1stop bit */<br />UCSR0C = (3&lt;&lt;UCSZ00);<br />}<br /><br />void USART_Transmit( unsigned char data )<br />{<br />/* Wait for empty transmit buffer */<br />while ( !( UCSR0A &amp; (1&lt;&lt;UDRE0)) )<br />;<br />/* Put data into buffer, sends the data */<br />UDR0 = data;<br />}<br /><br />// definiujemy funkcję dodającą jeden bajtdoz bufora cyklicznego<br />void uart_putc( char data ) {<br />uint8_t tmp_head;<br /><br />    tmp_head  = (UART_TxHead + 1) &amp; UART_TX_BUF_MASK;<br /><br />          // pętla oczekuje jeżeli brak miejsca w buforze cyklicznym na kolejne znaki<br />    while ( tmp_head == UART_TxTail ){}<br /><br />    UART_TxBuf[tmp_head] = 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 /><br /><br />void uart_putstr(char *s)// wysyła łańcuch z pamięci RAM na UART<br />{<br />  register char c;<br />  while ((c = *s++)) uart_putc(c);// 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[17];// bufor na wynik funkcji itoa<br />itoa(value, string, radix);// konwersja value na ASCII<br />uart_putstr(string);// wyślij string na port szeregowy<br />}<br />[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=260">wasu</a> — 18 kwi 2012, o 14:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Malutki_27]]></name></author>
<updated>2012-04-18T12:34:15+01:00</updated>
<published>2012-04-18T12:34:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1009&amp;p=5449#p5449</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1009&amp;p=5449#p5449"/>
<title type="html"><![CDATA[Re: USART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1009&amp;p=5449#p5449"><![CDATA[
I przy kompilacji nie masz błędów ? Aż dziwne ............<br /><br />uint8 oscyl=OSCCAL; &lt;-- to raczej nie powinno być tak<br />I nie masz jednej funcji do której się odwołujesz oraz wcieło ci DUUUŻOOOO definicji zmiennych<br /> <br />I na razie dalej nie ma co wnikać ponieważ skopiowałeś funkcję które wydało ci się że są potrzebne bez zrozumienia o co w nich chodzi <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> ( i kompilator sie drze jak diabli )<br />Przypatrz się orginałowi jak działa postaraj się zrozumieć jak działają i dopiero wtedy kopiuj<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=225">Malutki_27</a> — 18 kwi 2012, o 12:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wasu]]></name></author>
<updated>2012-04-18T11:12:10+01:00</updated>
<published>2012-04-18T11:12:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1009&amp;p=5447#p5447</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1009&amp;p=5447#p5447"/>
<title type="html"><![CDATA[USART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1009&amp;p=5447#p5447"><![CDATA[
Witam mam problem z przesyłem danych za pomocą rs232 (plytka atb 1.03). Korzystając z  USART_Transmit() mogłem bez problemu wysyłać pojedyncze znaki. Gdy korzystam pozniej z funkcji wysylajacej cale stringi lub cyfry (uart_putint(), uart_puts() nie odbieram zadnych danych, a dioda Tx nie zapala sie, oto kod:<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/delay.h&gt;<br /><br />void USART_Init( unsigned int baud );<br />void USART_Transmit( unsigned char data );<br />void uart_puts(char *s);<br />void uart_putint(int value, int radix);<br />void uart_putc( char data );<br /><br /><br /><br />int main(void)<br />{<br /><br />USART_Init(51);<br />uint8 oscyl=OSCCAL;<br />while(1){<br />uart_putstr(&quot;Wartosc rejestru kalibracji: &quot;);<br />uart_putint(oscyl,10);<br />uart_putstr(&quot;\r\n&quot;)<br />_delay_ms(1000);<br />}<br />}<br /><br />void USART_Init( unsigned int baud )<br />{<br />/* Set baud rate */<br />UBRR0H = (unsigned char)(baud&gt;&gt;8);<br />UBRR0L = (unsigned char)baud;<br />/* Enable receiver and transmitter */<br />UCSR0B = (1&lt;&lt;RXEN0)|(1&lt;&lt;TXEN0);<br />/* Set frame format: 8data, 1stop bit */<br />UCSR0C = (3&lt;&lt;UCSZ00);<br />}<br /><br />void USART_Transmit( unsigned char data )<br />{<br />/* Wait for empty transmit buffer */<br />while ( !( UCSR0A &amp; (1&lt;&lt;UDRE0)) )<br />;<br />/* Put data into buffer, sends the data */<br />UDR0 = data;<br />}<br /><br /><br />// definiujemy funkcję dodającą jeden bajtdoz bufora cyklicznego<br />void uart_putc( char data ) {<br />uint8_t tmp_head;<br /><br />    tmp_head  = (UART_TxHead + 1) &amp; UART_TX_BUF_MASK;<br /><br />          // pętla oczekuje jeżeli brak miejsca w buforze cyklicznym na kolejne znaki<br />    while ( tmp_head == UART_TxTail ){}<br /><br />    UART_TxBuf[tmp_head] = 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 />    UCSRB |= (1&lt;&lt;UDRIE);<br />}<br /><br /><br />void uart_puts(char *s)// wysyła łańcuch z pamięci RAM na UART<br />{<br />  register char c;<br />  while ((c = *s++)) uart_putc(c);// 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[17];// 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 />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=260">wasu</a> — 18 kwi 2012, o 11:12</p><hr />
]]></content>
</entry>
</feed>