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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-11-01T23:42:36+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=9031&amp;mode</id>
<entry>
<author><name><![CDATA[cyru]]></name></author>
<updated>2014-11-01T23:42:36+01:00</updated>
<published>2014-11-01T23:42:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101906#p101906</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101906#p101906"/>
<title type="html"><![CDATA[Re: Problem z odbieraniem stringów UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101906#p101906"><![CDATA[
Definicje: <br /><br />[syntax=c]volatile char UART_RxBuf&#91;UART_RX_BUF_SIZE&#93;;<br />// definiujemy indeksy określające ilość danych w buforze<br />volatile uint8_t UART_RxHead=0; // indeks oznaczający „głowę węża”<br />volatile uint8_t UART_RxTail=0; // indeks oznaczający „ogon węża”<br /><br />volatile char UART_TxBuf&#91;UART_TX_BUF_SIZE&#93;;<br />// definiujemy indeksy określające ilość danych w buforze<br />volatile uint8_t UART_TxHead=0; // indeks oznaczający „głowę węża”<br />volatile uint8_t UART_TxTail=0; // indeks oznaczający „ogon węża”[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3837">cyru</a> — 1 lis 2014, o 23:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[borcio992]]></name></author>
<updated>2014-11-01T21:56:59+01:00</updated>
<published>2014-11-01T21:56:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101883#p101883</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101883#p101883"/>
<title type="html"><![CDATA[Re: Problem z odbieraniem stringów UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101883#p101883"><![CDATA[
Daj mi jeszcze definicje bufora uarta i obliczenie maski <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=6320">borcio992</a> — 1 lis 2014, o 21:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[cyru]]></name></author>
<updated>2014-11-01T19:47:22+01:00</updated>
<published>2014-11-01T19:47:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101853#p101853</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101853#p101853"/>
<title type="html"><![CDATA[Re: Problem z odbieraniem stringów UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101853#p101853"><![CDATA[
<div class="quotetitle">borcio992 napisał(a):</div><div class="quotecontent"><br />Spójrz na tą linijkę: <br />while( (c=uart_getc()) != 0x0d) uart_putc(c);<br /><br />Jeśli twój UART nie zdąży (a to jest pewne na bank) odebrać żadnego znaku (nic się nie doda do bufora) to powinien ciebie program spamować samymi '0' (ta linijka: if ( UART_RxHead == UART_RxTail ) return 0;). <br />Ale z jakiejś przyczyny wysyła śmieci, czyli wysyła to co jest w buforze. <br />Przy inicjacji zmiennych Tail i Head masz zera ?? <br />Albo czasami zdefiniowany bufor nie jest za mały na maksymalną &quot;długość ogona i głowy&quot; ?? i czytasz z pamięci która do ciebie nie należy ??<br /></div><br /><br />Przy inicjacji zmiennych mam zera, znaczy nie było ich ale już mam i nic to nie zmieniło.. odnośnie czytania z pamięci tej co do mnie nie należy to możliwe że tak jest, mógł by to być dobry trop, ale nie wiem jak temu zapobiec. Zaraz będę próbował innego sposobu odebrania konkretnej długości stringa, może to się uda.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 15 minutach ]</span></strong><br /><br /><div class="quotetitle">Antystatyczny napisał(a):</div><div class="quotecontent"><br />Ja to robię w tern sposób:<br /><br />[syntax=c]void uart_get_string(uint8_t usart_nr, char *buffer)<br />{<br />        switch(usart_nr)<br />        {<br />#if(USART_NUMBER==0)||(USART_NUMBER==2)<br />        case 0:<br />                do *buffer = uart_get_char(0);<br />                while(*buffer++);<br />                break;<br />#endif//USART_NUMBER<br /> <br />#if(USART_NUMBER==1)||(USART_NUMBER==2)<br />        case 1:<br />                do *buffer = uart_get_char(1);<br />                while(*buffer++);<br />                break;<br />#endif//USART_NUMBER<br />        }<br />}<br />#endif//USE_GET_STRING[/syntax]<br /></div><br /><br /><br />Mam pytanie odnośnie tego sposobu, za co w tej funkcji jest odpowiedzialna zmienna usart_nr?<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 49 minutach ]</span></strong><br /><br />Na szybko zrobiłem trochę innym sposobem, ale efekt podobny.. Zrobiłem żeby odebrać łańcuch na 10 znaków, nadal tylko pierwszy jest poprawnie<br />[syntax=c]hile(1) {<br /><br /><br />        if(flag)<br />           {<br />  for(int i =0;i&lt;10;i++)<br />  {<br />  tab&#91;i&#93;=uart_getc();<br />  }<br /><br />  for(int i =0;i&lt;10;i++)<br />   {<br /> uart_putc(tab&#91;i&#93;);<br />   }<br /><br />  uart_puts(&quot;\r\n&quot;);<br />   flag--;<br />                       }[/syntax] <br /><br />Efekt:<br /><a href="http://forum.atnel.pl/_obrazki/o/3837/3e5099456db51f43cccd35a98dd20e72.PNG"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/3837/3e5099456db51f43cccd35a98dd20e72.PNG" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3837">cyru</a> — 1 lis 2014, o 19:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[TomekTomek55]]></name></author>
<updated>2014-10-31T21:36:03+01:00</updated>
<published>2014-10-31T21:36:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101767#p101767</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101767#p101767"/>
<title type="html"><![CDATA[Re: Problem z odbieraniem stringów UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101767#p101767"><![CDATA[
to teraz zrób próbę komunikacji Komp ---&gt; AVR<br />Czyli wysyłasz z kompa literkę X to zapala Ci diodę a jak wyślesz Y to ją zgasisz.<br />Musisz jeszcze zadeklarować pin do diody itp.<br />[syntax=c]uint8_t znak;<br /><br /><br />while(1)<br />{<br />    znak = uart_getc();<br />if (znak &gt;= 32)<br />{//mam cos w buforze<br />if (znak == 88) {Led_dana_ON;}     //wykrylem X<br />if (znak == 89) {Led_dana_OFF;}    //wykrylem Y<br />}//mam cos w buforze<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4629">TomekTomek55</a> — 31 paź 2014, o 21:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[borcio992]]></name></author>
<updated>2014-10-31T15:20:37+01:00</updated>
<published>2014-10-31T15:20:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101719#p101719</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101719#p101719"/>
<title type="html"><![CDATA[Re: Problem z odbieraniem stringów UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101719#p101719"><![CDATA[
<div class="quotetitle">cyru napisał(a):</div><div class="quotecontent"><br />Tak, na to wygląda że z bufora<br />[syntax=c]char uart_getc(void) {<br />    // sprawdzamy czy indeksy są równe<br />    if ( UART_RxHead == UART_RxTail ) return 0;<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 />    return UART_RxBuf&#91;UART_RxTail&#93;;<br />}[/syntax]<br /><br />a odnośnie 'data' w przerwaniu to potem jest wpisany do bufora <br />[syntax=c]ISR( USART_RXC_vect ) {<br />    uint8_t tmp_head;<br />    char data;<br /><br />    data = UDR; //pobieramy natychmiast bajt danych z bufora sprzętowego<br /><br />    if(data == 0x0d){<br />            flag++;}<br /><br />    // obliczamy nowy indeks „głowy węża”<br />    tmp_head = ( UART_RxHead + 1) &amp; UART_RX_BUF_MASK;<br /><br />    // sprawdzamy, czy wąż nie zacznie zjadać własnego ogona<br />    if ( tmp_head == UART_RxTail ) {<br />        } else {<br />UART_RxHead = tmp_head; // zapamiętujemy nowy indeks<br />UART_RxBuf&#91;tmp_head&#93; = data; // wpisujemy odebrany bajt do bufora<br />    }<br />}[/syntax]<br /></div><br /><br />Spójrz na tą linijkę: <br />while( (c=uart_getc()) != 0x0d) uart_putc(c);<br /><br />Jeśli twój UART nie zdąży (a to jest pewne na bank) odebrać żadnego znaku (nic się nie doda do bufora) to powinien ciebie program spamować samymi '0' (ta linijka: if ( UART_RxHead == UART_RxTail ) return 0;). <br />Ale z jakiejś przyczyny wysyła śmieci, czyli wysyła to co jest w buforze. <br />Przy inicjacji zmiennych Tail i Head masz zera ?? <br />Albo czasami zdefiniowany bufor nie jest za mały na maksymalną &quot;długość ogona i głowy&quot; ?? i czytasz z pamięci która do ciebie nie należy ??<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6320">borcio992</a> — 31 paź 2014, o 15:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-10-31T14:21:07+01:00</updated>
<published>2014-10-31T14:21:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101708#p101708</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101708#p101708"/>
<title type="html"><![CDATA[Re: Problem z odbieraniem stringów UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101708#p101708"><![CDATA[
<div class="quotetitle">cyru napisał(a):</div><div class="quotecontent"><br /><div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent">Polecam zajrzeć do ostatniego rozdziału Greenbooka ... sporo się wyjaśni jak w ogóle warto podchodzić do odbierania stringów i to w oparciu o EVENTS (zdarzenia) a dodatkowo callbacki<br /></div><br /><br />niestety jeszcze nie posiadam Greenbooka, poki co muszę sobie radzić z Bluebookiem</div><br /><br />Jasne to spójrz wyżej na propozycję kolegi Antystatycznego na przykład<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 31 paź 2014, o 14:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[cyru]]></name></author>
<updated>2014-10-31T14:16:58+01:00</updated>
<published>2014-10-31T14:16:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101707#p101707</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101707#p101707"/>
<title type="html"><![CDATA[Re: Problem z odbieraniem stringów UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101707#p101707"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />Polecam zajrzeć do ostatniego rozdziału Greenbooka ... sporo się wyjaśni jak w ogóle warto podchodzić do odbierania stringów i to w oparciu o EVENTS (zdarzenia) a dodatkowo callbacki<br /></div><br /><br />niestety jeszcze nie posiadam Greenbooka, poki co muszę sobie radzić z Bluebookiem<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3837">cyru</a> — 31 paź 2014, o 14:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-10-31T11:57:07+01:00</updated>
<published>2014-10-31T11:57:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101689#p101689</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101689#p101689"/>
<title type="html"><![CDATA[Re: Problem z odbieraniem stringów UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101689#p101689"><![CDATA[
Polecam zajrzeć do ostatniego rozdziału Greenbooka ... sporo się wyjaśni jak w ogóle warto podchodzić do odbierania stringów i to w oparciu o EVENTS (zdarzenia) a dodatkowo callbacki<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 31 paź 2014, o 11:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[cyru]]></name></author>
<updated>2014-10-31T11:41:38+01:00</updated>
<published>2014-10-31T11:41:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101685#p101685</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101685#p101685"/>
<title type="html"><![CDATA[Re: Problem z odbieraniem stringów UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101685#p101685"><![CDATA[
Walczę ciągle z tym, jeszcze przyszło mi do głowy żeby wymienić procka, ale niestety na innym procku jest to samo, czyli problem procesora odpada..<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3837">cyru</a> — 31 paź 2014, o 11:41</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[cyru]]></name></author>
<updated>2014-10-31T10:19:22+01:00</updated>
<published>2014-10-31T10:19:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101676#p101676</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101676#p101676"/>
<title type="html"><![CDATA[Re: Problem z odbieraniem stringów UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101676#p101676"><![CDATA[
Tak, na to wygląda że z bufora<br />[syntax=c]char uart_getc(void) {<br />    // sprawdzamy czy indeksy są równe<br />    if ( UART_RxHead == UART_RxTail ) return 0;<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 />    return UART_RxBuf&#91;UART_RxTail&#93;;<br />}[/syntax]<br /><br />a odnośnie 'data' w przerwaniu to potem jest wpisany do bufora <br />[syntax=c]ISR( USART_RXC_vect ) {<br />    uint8_t tmp_head;<br />    char data;<br /><br />    data = UDR; //pobieramy natychmiast bajt danych z bufora sprzętowego<br /><br />    if(data == 0x0d){<br />            flag++;}<br /><br />    // obliczamy nowy indeks „głowy węża”<br />    tmp_head = ( UART_RxHead + 1) &amp; UART_RX_BUF_MASK;<br /><br />    // sprawdzamy, czy wąż nie zacznie zjadać własnego ogona<br />    if ( tmp_head == UART_RxTail ) {<br />        } else {<br />UART_RxHead = tmp_head; // zapamiętujemy nowy indeks<br />UART_RxBuf&#91;tmp_head&#93; = data; // wpisujemy odebrany bajt do bufora<br />    }<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3837">cyru</a> — 31 paź 2014, o 10:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[borcio992]]></name></author>
<updated>2014-10-31T02:23:08+01:00</updated>
<published>2014-10-31T02:23:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101666#p101666</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101666#p101666"/>
<title type="html"><![CDATA[Re: Problem z odbieraniem stringów UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101666#p101666"><![CDATA[
Daj mi jeszcze definicje funkcji uart_getc() ona bierze z jakiegoś bufora te znaki ??<br />A co do ISR RXC UART'a to co potem się z tą zmienną 'data' dzieje ?? odbiera znak a potem co z nim robi ?? bo z tego co widzę to kod jest niepełny (klamerki brak) ale jak by tam była to przepada bez śladu<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6320">borcio992</a> — 31 paź 2014, o 02:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[cyru]]></name></author>
<updated>2014-10-31T02:12:34+01:00</updated>
<published>2014-10-31T02:12:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101665#p101665</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101665#p101665"/>
<title type="html"><![CDATA[Re: Problem z odbieraniem stringów UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101665#p101665"><![CDATA[
Dzięki za sprawdzenie inicjalizacji, nigdy nie jestem tego pewien bo wiem że to było pisane przez Pana Mirka pod atmege32.<br />Odnośnie zmiennej flag to w przerwaniu<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">ISR( USART_RXC_vect )</div><br />mam taki zapis:<br />[syntax=c]{<br />char data;<br />data = UDR; //pobieramy natychmiast bajt danych z bufora sprzętowego<br /><br />    if(data == 0x0d){<br />            flag++;}[/syntax]<br />i wtedy w pętli głównej realizuje się to odbieranie i wysyłanie.<br /><br />Bez linijki: while( (c=uart_getc()) != 0x0d) uart_putc(c); działa tak jak powinno, za każdym razem wysyła mi stan flagi.<br />Nad putty myślałem i sprawdziłem w innym programie i jest to samo..<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3837">cyru</a> — 31 paź 2014, o 02:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[borcio992]]></name></author>
<updated>2014-10-31T01:50:12+01:00</updated>
<published>2014-10-31T01:50:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101664#p101664</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101664#p101664"/>
<title type="html"><![CDATA[Re: Problem z odbieraniem stringów UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101664#p101664"><![CDATA[
<div class="quotetitle">cyru napisał(a):</div><div class="quotecontent"><br />Procek to Atmega 8<br /><br />kod inicjalizacji jest wprost z bibliotek Pana Mirka<br /><br />[syntax=c]void USART_Init( uint16_t baud ) {<br />/* Ustawienie prędkości */<br />UBRRH = (uint8_t)(baud&gt;&gt;8);<br />UBRRL = (uint8_t)baud;<br />/* Załączenie nadajnika I odbiornika */<br />UCSRB = (1&lt;&lt;RXEN)|(1&lt;&lt;TXEN);<br />/* Ustawienie format ramki: 8bitów danych, 1 bit stopu */<br />UCSRC = (1&lt;&lt;URSEL)|(3&lt;&lt;UCSZ0);<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 />UCSRB |= (1&lt;&lt;RXEN)|(1&lt;&lt;TXEN)|(1&lt;&lt;RXCIE)|(1&lt;&lt;TXCIE);<br />#else<br />// jeśli nie  korzystamy z interefejsu RS485<br />UCSRB |= (1&lt;&lt;RXEN)|(1&lt;&lt;TXEN)|(1&lt;&lt;RXCIE);<br />#endif<br />}[/syntax]<br /></div><br /><br />Inicjalizacja wydaje się ok o ile wartość baud jest dobrze wysyłana... Ta zmienna flag co powoduje ??<br />A bez tej linijki wszystko działa dobrze ? : while( (c=uart_getc()) != 0x0d) uart_putc(c); ( jest bez krzaczków ? ) Może twoje putty coś &quot;gratis&quot; wysyła<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6320">borcio992</a> — 31 paź 2014, o 01:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[cyru]]></name></author>
<updated>2014-10-31T01:37:59+01:00</updated>
<published>2014-10-31T01:37:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101662#p101662</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101662#p101662"/>
<title type="html"><![CDATA[Re: Problem z odbieraniem stringów UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101662#p101662"><![CDATA[
Procek to Atmega 8<br /><br />kod inicjalizacji jest wprost z bibliotek Pana Mirka<br /><br />[syntax=c]void USART_Init( uint16_t baud ) {<br />/* Ustawienie prędkości */<br />UBRRH = (uint8_t)(baud&gt;&gt;8);<br />UBRRL = (uint8_t)baud;<br />/* Załączenie nadajnika I odbiornika */<br />UCSRB = (1&lt;&lt;RXEN)|(1&lt;&lt;TXEN);<br />/* Ustawienie format ramki: 8bitów danych, 1 bit stopu */<br />UCSRC = (1&lt;&lt;URSEL)|(3&lt;&lt;UCSZ0);<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 />UCSRB |= (1&lt;&lt;RXEN)|(1&lt;&lt;TXEN)|(1&lt;&lt;RXCIE)|(1&lt;&lt;TXCIE);<br />#else<br />// jeśli nie  korzystamy z interefejsu RS485<br />UCSRB |= (1&lt;&lt;RXEN)|(1&lt;&lt;TXEN)|(1&lt;&lt;RXCIE);<br />#endif<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3837">cyru</a> — 31 paź 2014, o 01:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[borcio992]]></name></author>
<updated>2014-10-31T01:19:26+01:00</updated>
<published>2014-10-31T01:19:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101660#p101660</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101660#p101660"/>
<title type="html"><![CDATA[Re: Problem z odbieraniem stringów UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101660#p101660"><![CDATA[
Jaki to jest procek ?. Daj kod inicjalizacji UARTA <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=6320">borcio992</a> — 31 paź 2014, o 01:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[cyru]]></name></author>
<updated>2014-10-31T01:15:29+01:00</updated>
<published>2014-10-31T01:15:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101659#p101659</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101659#p101659"/>
<title type="html"><![CDATA[Re: Problem z odbieraniem stringów UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101659#p101659"><![CDATA[
Dzięki za odpowiedź <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> <br />a więc tak, dałem kwarc 16 MHz ale to nic nie zmieniło, tylko tyle że inne krzaki. Program sprawdzający wysyłanie do kompa działa super, tak jak powinien.<br />A docelowo chciał bym zrobić coś takiego żeby w przerwaniu sprawdzać czy mam konkretny interesujący mnie łańcuch znaków i zwrócić flagę do pętli głównej, a w pętli głównej zapisać ten łańcuch do tablicy.<br />Drugą częścią ma być również sprawdzenie w przerwaniu ale pojawienie się jednego konkretnego znaku po którym zostanie wysłany odebrany wcześniej łańcuch. <br />Mam nadzieje że nie zamieszałem za bardzo <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Po przeczytaniu bluebooka, kilku tematów na forum i trochę zabawy z tym wydaje mi się że to nie jest trudne do zrealizowania, ale mam własnie ten problem z którym nie mogę sobie poradzić..<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3837">cyru</a> — 31 paź 2014, o 01:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[TomekTomek55]]></name></author>
<updated>2014-10-30T21:49:58+01:00</updated>
<published>2014-10-30T21:49:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101643#p101643</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101643#p101643"/>
<title type="html"><![CDATA[Re: Problem z odbieraniem stringów UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101643#p101643"><![CDATA[
To na początek sprawdź samo wysyłanie do kompa bo tam masz jeszcze odbieranie w pętli. Zrób to tak na początek:<br />[syntax=c]while(1)<br />{         <br />uart_puts(&quot;Wysłanie 1&quot;);<br />uart_putc('\r');<br />uart_putc('\n');<br />_delay_ms(500);   <br /><br />uart_puts(&quot;Wysłanie 2&quot;);<br />uart_putc('\r');<br />uart_putc('\n');<br />_delay_ms(500);  <br /><br />uart_puts(&quot;Wysłanie 3&quot;);<br />uart_putc('\r');<br />uart_putc('\n');<br />_delay_ms(500);   <br /><br />uart_puts(&quot;Wysłanie 4&quot;);<br />uart_putc('\r');<br />uart_putc('\n');<br />_delay_ms(500);   <br /><br />uart_puts(&quot;Wysłanie 5&quot;);<br />uart_putc('\r');<br />uart_putc('\n');<br />_delay_ms(500);    <br />}[/syntax]<br />To wyeliminujesz błędy w plikach UARTA i sprzętowe.<br />Ale co ważne nie wiem czy uart działa poprawnie na wewnętrznym oscylatorze przejdź na kwarc. Sam nie testowałem na wewnętrznym ale to może być również źródło problemów.<br />I coś więcej mógłbyś opisać o swoim fragmencie kodu co chcesz nim zrobić.<br /><br />Miłego sprawdzania <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=4629">TomekTomek55</a> — 30 paź 2014, o 21:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[cyru]]></name></author>
<updated>2014-10-30T19:16:31+01:00</updated>
<published>2014-10-30T19:16:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101616#p101616</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101616#p101616"/>
<title type="html"><![CDATA[Problem z odbieraniem stringów UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9031&amp;p=101616#p101616"><![CDATA[
Mam taki problem związany z dość starym tematem dokładnie chodzi mi o ten: <!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic968.html" >topic968.html</a><!-- l -->. Bardzo przydatne by mi było to ale już na samym początku poległem.. Problem polega na tym że moja komunikacja wygląda następująco:<br /><br />Wysyłam 4 razy ten sam łańcuch znaków, poprawnie jest tylko za pierwszym razem po zresetowaniu mikroprocesora <br /><a href="http://forum.atnel.pl/_obrazki/o/3837/c7b4ba67408e73755732c08f50a0833a.png"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/3837/c7b4ba67408e73755732c08f50a0833a.png" alt="Obrazek" /></a><br /><br /><br /><br />mój kod to dokładnie to samo co znajdowało się we wspomnianym temacie, dodam tylko że posiadam atmege 8 z wewnętrznym oscylatorem ustawionym na 8MHz<br />[syntax=c]char c;<br />while(1) {<br /><br />        if(flag)<br />                       {<br />                      uart_puts(&quot;flaga: &quot;);<br />                       uart_putint(flag, 10);<br />                      uart_puts(&quot;\r\n&quot;);<br />                       while( (c=uart_getc()) != 0x0d) uart_putc(c);<br />                       uart_puts(&quot;\r\n&quot;);<br />                       flag--;<br />                       }<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3837">cyru</a> — 30 paź 2014, o 19:16</p><hr />
]]></content>
</entry>
</feed>