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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-11-06T14:15:18+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=5284&amp;mode</id>
<entry>
<author><name><![CDATA[daniellol1980]]></name></author>
<updated>2013-12-28T01:12:38+01:00</updated>
<published>2013-12-28T01:12:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5284&amp;p=62532#p62532</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5284&amp;p=62532#p62532"/>
<title type="html"><![CDATA[Re: Kłopoty z UART Atmega 168]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5284&amp;p=62532#p62532"><![CDATA[
Witam. Żeby nie być gołosłownym to zmobilizowałem się i przeanalizowałem dokładnie rozdział USART z BB <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />. Trochę mi wstyd teraz po moim pytaniu o to dlaczego giną mi znaki. Bufor cykliczny - genialne w swej prostocie ale wpaść na to samemu... Dziękuje bardzo za pomoc, temat do zamknięcia.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2292">daniellol1980</a> — 28 gru 2013, o 01:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[daniellol1980]]></name></author>
<updated>2013-12-27T12:54:11+01:00</updated>
<published>2013-12-27T12:54:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5284&amp;p=62447#p62447</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5284&amp;p=62447#p62447"/>
<title type="html"><![CDATA[Re: Kłopoty z UART Atmega 168]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5284&amp;p=62447#p62447"><![CDATA[
Dziękuje bardzo. Książkę oczywiście mam. Mam BB i GB. Powalczę jeszcze wieczorem jak pierworodny pójdzie spać:). Jak ogarnę sprawę to efekt opublikuję. Może ktoś o podobnym stopniu zaawansowania jak ja skorzysta <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />  Dziękuje i pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2292">daniellol1980</a> — 27 gru 2013, o 12:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2013-12-27T12:09:37+01:00</updated>
<published>2013-12-27T12:09:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5284&amp;p=62443#p62443</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5284&amp;p=62443#p62443"/>
<title type="html"><![CDATA[Re: Kłopoty z UART Atmega 168]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5284&amp;p=62443#p62443"><![CDATA[
<div class="quotetitle">daniellol1980 napisał(a):</div><div class="quotecontent"><br />Zmieniłem przerwania na ISR, dodałem nawiasy, wywaliłem bibliotekę signal.h, zresztą nawet kompilator się o nią pluł, ale Daniel niestety dalej jest w lesie. Po usunięciu opóźnienia mam na terminalu Da. Przepraszam za może idiotyczne pytanie ale co oznacza skrót BB z pierwszego postu <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />  Dziękuje za pomoc i pozdrawiam.<br /></div><br />BB to oczywiście Blue Book<br />Czyli Niebieska Książka <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /> Tytuł oryginału &quot;Mikrokontrolery AVR. Język C - podstawy programowania&quot; obiecnie wydanie II poprawione i uzupełnione w twardej oprawie.<br />Chciałem dać linka do sklepu, ale niestety net działa koszmarnie <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":-(" title="Smutny" /> w każdym razie powinno zadziałać <a href="http://www.sklep.atnel.pl/"  class="postlink">http://www.sklep.atnel.pl/</a> a tam resztę już znajdziesz<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 27 gru 2013, o 12:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-12-27T12:06:15+01:00</updated>
<published>2013-12-27T12:06:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5284&amp;p=62442#p62442</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5284&amp;p=62442#p62442"/>
<title type="html"><![CDATA[Re: Kłopoty z UART Atmega 168]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5284&amp;p=62442#p62442"><![CDATA[
<div class="quotetitle">daniellol1980 napisał(a):</div><div class="quotecontent"><br />Zmieniłem przerwania na ISR, dodałem nawiasy, wywaliłem bibliotekę signal.h, zresztą nawet kompilator się o nią pluł, ale Daniel niestety dalej jest w lesie. Po usunięciu opóźnienia mam na terminalu Da. Przepraszam za może idiotyczne pytanie ale co oznacza skrót BB z pierwszego postu <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />  Dziękuje za pomoc i pozdrawiam.<br /></div><br /><br />zajrzyj sobie chociażby tutaj odnośnie tego jak w ogóle inicjalizować uart:<br /><br /><!-- m --><a class="postlink" href="http://mirekk36.blogspot.com/2013/01/rs232-ubrr-jak-prawidowo-obliczac-trick.html" >http://mirekk36.blogspot.com/2013/01/rs ... trick.html</a><!-- m --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 27 gru 2013, o 12:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xor]]></name></author>
<updated>2015-11-06T14:15:18+01:00</updated>
<published>2013-12-27T11:53:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5284&amp;p=62441#p62441</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5284&amp;p=62441#p62441"/>
<title type="html"><![CDATA[Re: Kłopoty z UART Atmega 168]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5284&amp;p=62441#p62441"><![CDATA[
<span style="color: #BFFFBF">.</span><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1774">xor</a> — 27 gru 2013, o 11:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[daniellol1980]]></name></author>
<updated>2013-12-27T11:40:38+01:00</updated>
<published>2013-12-27T11:40:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5284&amp;p=62440#p62440</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5284&amp;p=62440#p62440"/>
<title type="html"><![CDATA[Re: Kłopoty z UART Atmega 168]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5284&amp;p=62440#p62440"><![CDATA[
Zmieniłem przerwania na ISR, dodałem nawiasy, wywaliłem bibliotekę signal.h, zresztą nawet kompilator się o nią pluł, ale Daniel niestety dalej jest w lesie. Po usunięciu opóźnienia mam na terminalu Da. Przepraszam za może idiotyczne pytanie ale co oznacza skrót BB z pierwszego postu <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />  Dziękuje za pomoc i pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2292">daniellol1980</a> — 27 gru 2013, o 11:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-12-27T09:33:23+01:00</updated>
<published>2013-12-27T09:33:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5284&amp;p=62426#p62426</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5284&amp;p=62426#p62426"/>
<title type="html"><![CDATA[Re: Kłopoty z UART Atmega 168]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5284&amp;p=62426#p62426"><![CDATA[
<div class="quotetitle">Zaba napisał(a):</div><div class="quotecontent"><br />Chodzi mi o priorytety operacji ale pewności nie mam<br />Jednak dla pewności zapisałbym to tak<br /><br />[syntax=c]UCSR0C = (1&lt;&lt;UCSZ01) | (1&lt;&lt;UCSZ00) ;[/syntax]<br /></div><br /><br />W tym przypadku akurat, priorytety zadziałałyby poprawnie, za to czytelność takiego kodu jest 100x lepsza<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 27 gru 2013, o 09:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Zaba]]></name></author>
<updated>2013-12-27T09:31:27+01:00</updated>
<published>2013-12-27T09:31:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5284&amp;p=62425#p62425</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5284&amp;p=62425#p62425"/>
<title type="html"><![CDATA[Re: Kłopoty z UART Atmega 168]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5284&amp;p=62425#p62425"><![CDATA[
Witam<br /><br />w linii 64<br />[syntax=c]UCSR0C = 1&lt;&lt;UCSZ01 | 1&lt;&lt;UCSZ00 ;[/syntax]<br />Nie dałeś nawiasów i może ona nie robić dokładnie <br />tego co sobie zaplanowałeś.<br />Chodzi mi o priorytety operacji ale pewności nie mam<br />Jednak dla pewności zapisałbym to tak<br />[syntax=c]UCSR0C = (1&lt;&lt;UCSZ01) | (1&lt;&lt;UCSZ00) ;[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1044">Zaba</a> — 27 gru 2013, o 09:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2013-12-27T08:50:43+01:00</updated>
<published>2013-12-27T08:50:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5284&amp;p=62424#p62424</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5284&amp;p=62424#p62424"/>
<title type="html"><![CDATA[Re: Kłopoty z UART Atmega 168]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5284&amp;p=62424#p62424"><![CDATA[
A może byś tak się zdecydował na jeden rodzaj definiowania przerwań?<br />Albo signal - niezalecane.<br />albo ISR<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 3 minutach ]</span></strong><br /><br />Ponadto w BB konfiguracja RS też jest fajniej zrobiona niż w Twoim przypadku.<br />A jak się nie mylę to na blogu Mirka też jest to opisane <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=189">MirkoT</a> — 27 gru 2013, o 08:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[daniellol1980]]></name></author>
<updated>2013-12-27T03:45:43+01:00</updated>
<published>2013-12-27T03:45:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5284&amp;p=62418#p62418</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5284&amp;p=62418#p62418"/>
<title type="html"><![CDATA[Kłopoty z UART Atmega 168]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5284&amp;p=62418#p62418"><![CDATA[
Witam. Od paru dni trenuje sobie programowanie w c avr-ków. Walczę mianowicie z wysyłaniem ciągu znaków do konsoli w przerwaniu. Napisałem sobie kod. Wszystko działa ładnie pięknie, ale do momentu aż usunę z funkcji uart_putc opóźnienie _delay_ms(10). Bez tego opóźnienia funkcja wysyła tylko jeden pierwszy znak z ciągu. Domyślam się, że przerwanie zgłaszane jest częściej niż opróżniany jest bufor UDR0. Przepraszam, za może banalny problem ale nie mam już siły <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />. Obejrzałem poradnik wykorzystanie VT100 jako wyświetlacz i starałem się przeanalizować funkcje z książki, ale niestety nie dałem rady. Poniżej kod. Atmega 168 wewnętrzny oscylator 8MHz. Prędkość 2400bit/s. Dziękuje za pomoc i pozdrawiam. <br />[syntax=c]#include &lt;avr\io.h&gt;<br />#include &lt;util\delay.h&gt;<br />#include &lt;inttypes.h&gt;<br />#include &lt;math.h&gt;<br />#include &lt;avr\pgmspace.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;stdlib.h&gt;<br />#include &lt;avr\signal.h&gt;<br />#include &lt;avr/eeprom.h&gt;<br /><br /><br />void uart_puts(char *s);<br />void uart_putc(char data );<br /><br /><br />#define OUTDIR DDRB<br />#define OUTPORT PORTB<br />#define OUTPIN !(OUTPORT&amp;OUT)<br />#define OUT  (1&lt;&lt;0)<br /><br />//---------------------deklaracja stałych<br />uint8_t znak=0;<br />//----------------------<br /><br />//----------------------funkcja główna<br />int main(void)<br />{<br />//----------------------konfiguracja stanu portów<br />DDRD |= (1&lt;&lt;3);<br />DDRD |= (1&lt;&lt;6);<br />OUTDIR |= OUT;<br />OUTPORT &amp;= ~OUT;<br />//------------------------------------------------<br /><br />//----------------------------konfiguracja ADC<br />ADCSRA |= (1&lt;&lt;ADEN) | (1&lt;&lt;ADPS2) | (1&lt;&lt;ADPS1);<br />ADMUX |= (1&lt;&lt;REFS0);<br />DIDR0 |= (1&lt;&lt;ADC4D);<br />ADMUX |=  (1&lt;&lt;MUX2);<br />//ADCSRA |= (1&lt;&lt;ADSC);<br />//while(ADCSRA &amp; (1&lt;&lt;ADSC));<br />//buforadc = ADCW;<br /><br />//----------------------------konfiguracja timera0, jako pwm<br />TCCR0A |= (1&lt;&lt;COM0A1) | (1&lt;&lt;WGM01) | (1&lt;&lt;WGM00);<br />TCCR0B |= (1&lt;&lt;CS00);<br />OCR0A = 0;<br /><br /><br />//--------------------------------------------------------<br />//----------------------------konfiguracja timera, przerwanie co sekunde timer 1<br />TCCR1B |=(1&lt;&lt;CS12 | 1&lt;&lt;CS10);<br />TIMSK1 |=(1&lt;&lt;TOIE1);<br />TCNT1 = 57715;<br />//------------------------------<br />//----------------------------konfiguracja timera 2 jako pwm do sterowania źródłem I<br />TCCR2A |= (1&lt;&lt;COM2B1) | (1&lt;&lt;WGM21) | (1&lt;&lt;WGM20);<br />TCCR2B |= (1&lt;&lt;CS21)| (1&lt;&lt;CS20);<br />OCR2B = 3;<br />//------------------------------<br /><br />//------------------------------konfiguracja rs232 przy rezonatorze 8MHz 2400bit/s<br />UCSR0B = (1&lt;&lt;RXCIE0)|(1&lt;&lt;RXEN0)|(1&lt;&lt;TXEN0);<br />UCSR0C = 1&lt;&lt;UCSZ01 | 1&lt;&lt;UCSZ00 ;<br />UBRR0H = 0x00;<br />UBRR0L = 0xCF;<br />//---------------------------------------------------<br /><br /><br /><br />sei();//----------------- zezwolenie na przerwanie<br /><br /><br />uart_puts(&quot;Daniel idzie  \n \r&quot;);<br />uart_puts(&quot;do domu ale jest w lesie &quot;);<br /><br />//-----------------------pętla główna programu<br />while(1)<br />{<br /><br /><br /><br />}<br />}<br /><br /><br /><br />//---------------------------------------koniec pętli głównej<br /><br /><br />//-----------------------------------funkcja przekazująca kolejne znaki Ascii aż do wykrycia 0<br />void uart_puts(char *s)<br />{<br />  register char c;<br />  while ((c = *s++)) uart_putc(c);<br />}<br />//-----------------------------------------<br /><br />//-------------------------------------funkcja przekazujaca kod ascii do wysłania przez UART<br />void uart_putc( char data )<br />{<br />znak = data;<br />_delay_ms(10);<br />UCSR0B |= (1&lt;&lt;UDRIE0);<br />}<br />//-----------------------------------------<br /><br />//-----------------------------przerwanie<br />SIGNAL(USART_UDRE_vect)<br />{<br />UDR0 = znak;<br />UCSR0B &amp;= ~(1&lt;&lt;UDRIE0);<br />}<br />//---------------------------------<br /><br />//-------------------------------przerwanie kiedy odebrano bajt<br />SIGNAL(USART_RX_vect)<br />{<br /><br />}<br />//----------------------------------------------------------------<br /><br />//------------------------przerwanie od timera.<br />ISR(TIMER1_OVF_vect)<br />{<br />TCNT1 = 57715;<br />OUTPORT ^= OUT;<br />}<br />//-------------------------------------[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2292">daniellol1980</a> — 27 gru 2013, o 03:45</p><hr />
]]></content>
</entry>
</feed>