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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-01-27T23:28:20+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=2080&amp;mode</id>
<entry>
<author><name><![CDATA[peikman]]></name></author>
<updated>2013-01-27T23:28:20+01:00</updated>
<published>2013-01-27T23:28:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2080&amp;p=26013#p26013</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2080&amp;p=26013#p26013"/>
<title type="html"><![CDATA[Re: Event i parsowanie danych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2080&amp;p=26013#p26013"><![CDATA[
Dzięki za odpowiedzi. <br />Drogi Mirku, miałem na myśli, że przypadkowo przy przepisywaniu czy kopiowaniu popełniłem jakiś błąd w funkcjach LCD  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />  zresztą gdy po raz 20-sty analizowałem kod to naprawdę doszukiwałem się błędu we wszystkim... <br /><br />Najważniejsze, że po wielu godzinach udało się rozwiązać problem.  <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Bit ckdiv8 był ustawiony a nie powinien <img src="https://forum.atnel.pl/images/smilies/icon_rolleyes.gif" alt=":roll:" title="Udaje, że to nie on" /> i chyba nie muszę nic dodawać.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=162">peikman</a> — 27 sty 2013, o 23:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2013-01-26T21:26:09+01:00</updated>
<published>2013-01-26T21:26:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2080&amp;p=25931#p25931</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2080&amp;p=25931#p25931"/>
<title type="html"><![CDATA[Re: Event i parsowanie danych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2080&amp;p=25931#p25931"><![CDATA[
<div class="quotetitle">peikman napisał(a):</div><div class="quotecontent"><br />[syntax=c]data=UDR1;<br />lcd_locate(0,0);<br />lcd_str(&amp;data);<br />_delay_ms(400); <br />[/syntax]<br /></div><br />Dla pojedynczych znaków masz funkcję <em>lcd_char</em>. Kod powinien wyglądać następująco:<br />[syntax=c]data=UDR1; //pobranie bajtu z rejestru UDR1<br />lcd_locate(0,0);<br />lcd_char(data);<br />_delay_ms(400); <br />[/syntax]<br />Natomiast to co masz wyżej to po wyświetleniu 1 poprawnego znaku leci dalej wyświetlając znaki odpowiadające różnym liczbom niekoniecznie z zakresu drukowanych kodów ASCII, bo skoro to nie jest string to nie jest zakończony '/0'<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 26 sty 2013, o 21:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-01-26T18:39:51+01:00</updated>
<published>2013-01-26T18:39:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2080&amp;p=25915#p25915</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2080&amp;p=25915#p25915"/>
<title type="html"><![CDATA[Re: Event i parsowanie danych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2080&amp;p=25915#p25915"><![CDATA[
<div class="quotetitle">peikman napisał(a):</div><div class="quotecontent"><br />Wnioskuje, że funkcja lcd_str() coś nie działa gdy podaje wskaźnik jako parametr.  <img src="https://forum.atnel.pl/images/smilies/icon_rolleyes.gif" alt=":roll:" title="Udaje, że to nie on" /><br /></div><br /><br />Tak tak to bardzo &quot;dobry&quot; wniosek <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .... szczególnie gdy tak ją wykorzystujesz w przerwaniu <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />w takim razie KLOPS .... nic nie da rady zrobić - trzeba pisać lcd_str() CAŁKIEM od nowa skoro źle działa <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .... <br /><br />ciekaw tylko jestem dlaczego u mnie działa w KAŻDEJ sytuacji i dodam jak coś - że u wszystkich czytelników też działa <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />..... zatem przemyśl czy nie zrewidować przypadkiem swojego wniosku - bo ja na pewno się nie zabiorę za naprawę dobrze działającej funkcji - sorki <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> — 26 sty 2013, o 18:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[peikman]]></name></author>
<updated>2013-01-26T17:05:09+01:00</updated>
<published>2013-01-26T17:05:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2080&amp;p=25905#p25905</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2080&amp;p=25905#p25905"/>
<title type="html"><![CDATA[Re: Event i parsowanie danych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2080&amp;p=25905#p25905"><![CDATA[
Wstawiłem kod wyświetlający w przerwaniu: <br />[syntax=c]data=UDR1;<br />lcd_locate(0,0);<br />lcd_str(&amp;data);<br />_delay_ms(400); <br /><br />[/syntax]<br /><br />Próbowałem też bez _delay_ms() ale dalej same krzaczki się wyświetlają. <br /><br />Zmieniłem rezonator wewnętrzny na zewnętrzny 8MHz ale nie tu problem... <br /><br />Wnioskuje, że funkcja lcd_str() coś nie działa gdy podaje wskaźnik jako parametr.  <img src="https://forum.atnel.pl/images/smilies/icon_rolleyes.gif" alt=":roll:" title="Udaje, że to nie on" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=162">peikman</a> — 26 sty 2013, o 17:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-01-25T23:43:15+01:00</updated>
<published>2013-01-25T23:43:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2080&amp;p=25854#p25854</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2080&amp;p=25854#p25854"/>
<title type="html"><![CDATA[Re: Event i parsowanie danych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2080&amp;p=25854#p25854"><![CDATA[
no dokładnie  ale jeszcze raz poczytaj o strtok_r() albo strtok() ... bo widzę że jakiś błąd robisz.... bo JEŚLI zadziałałoby prawidłowo to:<br /><br />buf = strtok_r(pBuf,&quot;,&quot;,&amp;reszta);  <br /><br />czyli po $GPRMC byłby ten przecinek to nie ma że boli - wyświetliłoby ci się dokładnie<br /><br />$GPRMC<br /><br />i wcale nie trzeba dawać 0 w 15-bajcie<br /><br />ale skoro tak się nie dzieje - to coś wcześniej musisz źle robić z tą funkcją ....<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: kilkunastu sekundach ]</span></strong><br /><br />dlatego proponuję ci wyświetlić sobie pBuf jeszcze przed zadziałaniem strtok_r()<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 25 sty 2013, o 23:43</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[peikman]]></name></author>
<updated>2013-01-25T21:11:14+01:00</updated>
<published>2013-01-25T21:11:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2080&amp;p=25835#p25835</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2080&amp;p=25835#p25835"/>
<title type="html"><![CDATA[Re: Event i parsowanie danych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2080&amp;p=25835#p25835"><![CDATA[
Rozumiem, że funkcja lcd_str() wysyła znaki na LCD aż pojawi się NULL w łańcuchu. Wyszedłem z założenie, że funkcja strtok_r (buf,&quot;,&quot;,&amp;reszta)  zakończy token znakiem 0 (NULL) i więcej znaków się nie wyświetli...    Skoro $GPRMC, ma 6 znaków do przecinka to wyświetli sie 6 znaków. Jednak nie przewidziałem sytuacji, że przecinka może nie być oraz innych ewentualności. <br /><br />Proponujesz wstawienie w miejsce 15 bufora (który jest tablicą) wartości 0 która przerwie funkcje lcd_str().<br /><br />Czy wporządku myślę?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=162">peikman</a> — 25 sty 2013, o 21:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-01-25T00:09:02+01:00</updated>
<published>2013-01-25T00:09:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2080&amp;p=25765#p25765</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2080&amp;p=25765#p25765"/>
<title type="html"><![CDATA[Re: Event i parsowanie danych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2080&amp;p=25765#p25765"><![CDATA[
[syntax=c]lcd_str( buf );[/syntax]<br /><br />a wiesz do czego jest ta funkcja ? że pytasz czy ona jest odpowiednia ? przepraszam, że o to pytam - ale twoje pytanie wskazuje na to jakbyś próbował jej użyć na zasadzie zgadywania - czy się uda czy się nie uda ? i jakbyś w ogóle nie wiedział jak ona działa w środku <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> ... Gdyby to było prawdą - to ciężko ci będzie ogarnąć taki program <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br />przede wszystkim (poczytaj w niebieskiej książce jak ona działa) a później zastanów się co masz w tym buforze ? ale też ile znaków w nim jest ????? bo to że w terminalu się ładnie wyświetla to co jest odbierane to zrozumiałe - ile masz znaków w wierszu w terminalu ? a ile masz znaków w wierszu wyświetlacza LCD ? Próbowałeś kiedyś na LCD wyświetlić string/łańcuch tekstowy zawierający np 80 znaków albo więcej taką funkcją jak mówisz ?<br /><br />[syntax=c]lcd_str( buf );[/syntax]<br /><br />??? jak myślisz co się stanie ? ... nawet jak nie wiesz to może warto popróbować ? <br /><br />Więc nawet zakładając - że nie wiesz jak ta funkcja działa - to co za problem zamiast na LCD wyrzucić to samo sobie na terminal do komputera, przecież nóżkę RX procka możesz podłączyć do odbiornika który wysyła ci te ramki a nóżkę TX procka do terminala i od razu wysyłać na kompa to co odebrałeś - wtedy nie będziesz miał np problemu za małego wyświetlacza <br /><br />chociaż i z wyświetlaczem da radę to pięknie testować - tylko wypadałoby sobie np skrócić łańcuch tekstowy w buforze ??? jeśli zapytasz mnie jak ???? to niedobrze - oznaczać to będzie że mocno jednak nie doczytałeś podstaw o tablicach i łańcuchach tekstowych w C i dlatego masz takie kłopoty .... w przeciwnym wypadku wystarczyłoby zrobić tak<br /><br />[syntax=c]buf[15]=0;<br />lcd_str( buf );[/syntax]<br /><br />i proszę - wyświetli się tylko 15 pierwszych znaków z bufora. A jeśli będą krzaki jak mówisz to tak samo będą krzaki na terminalu - więc problem pewnie leży całkiem gdzie indziej i na pewno nie w tym przerwaniu z książki.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 25 sty 2013, o 00:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[peikman]]></name></author>
<updated>2013-01-24T23:51:40+01:00</updated>
<published>2013-01-24T23:51:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2080&amp;p=25764#p25764</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2080&amp;p=25764#p25764"/>
<title type="html"><![CDATA[Re: Event i parsowanie danych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2080&amp;p=25764#p25764"><![CDATA[
[syntax=c]buf = strtok_r(pBuf,&quot;,&quot;,&amp;reszta);        <br />                    <br />lcd_locate(0,0);<br />lcd_str(buf);<br />        <br />        if (buf &amp;&amp; (strcmp(buf,&quot;$GPRMC&quot;)==0)){<br />.<br />.<br />.<br />[/syntax]<br /><br /><br />Nie mogę przebrnąć tego kawałka kodu. Podłączyłem GPS bezpośrednio do USB i HYPERTERMINAL pokazuje piękne ramki zaczynające się od $GPRMC. <br /><br />Natomiast program nie chce przejść przez:  if (buf &amp;&amp; (strcmp(buf,&quot;$GPRMC&quot;)==0)) <br /><br />Próbowałem wyświetlić na LCD co jest w buf ale wyświetlają same smieci. Czy ta komenda: lcd_str(buf); jest dobra do tego celu? <br /><br />Może w przerwaniu coś źle robię. <br />[syntax=c]// definiujemy procedurę obsługi przerwania odbiorczego, zapisującą dane do bufora cyklicznego<br />ISR( USART1_RXC_vect ) {<br />    register uint8_t tmp_head;<br />    register char data;<br /><br />    data = UDR1; //pobieramy natychmiast bajt danych z bufora sprzętowego<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 />    // błąd spowodowany próbą nadpisania danych w buforze,<br />    UART_RxHead = UART_RxTail; //czyszczenie całego bufora (utrata danych)<br />    } else {<br />    switch (data){<br />    case 0:<br />    case 10: break; //ignorujemy znak LF<br />    case 13: ascii_line++; //sygnalizacja obecności kolejnej linii w buforze<br />    default:<br /><br />    UART_RxHead = tmp_head; // zapamiętujemy nowy indeks<br />    UART_RxBuf[tmp_head] = data; // wpisujemy odebrany bajt do bufora<br /><br />}<br /><br />}<br />}<br />[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=162">peikman</a> — 24 sty 2013, o 23:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-01-09T16:53:35+01:00</updated>
<published>2013-01-09T16:53:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2080&amp;p=24159#p24159</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2080&amp;p=24159#p24159"/>
<title type="html"><![CDATA[Re: Event i parsowanie danych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2080&amp;p=24159#p24159"><![CDATA[
<div class="quotetitle">peikman napisał(a):</div><div class="quotecontent"><br />Urządzenie ma być czymś w stylu datalogera i wyświetlaniem aktualnych i ciekawych danych na LCD <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /></div><br /><br />aaa <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> to ok<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 9 sty 2013, o 16:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[peikman]]></name></author>
<updated>2013-01-09T16:34:53+01:00</updated>
<published>2013-01-09T16:34:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2080&amp;p=24153#p24153</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2080&amp;p=24153#p24153"/>
<title type="html"><![CDATA[Re: Event i parsowanie danych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2080&amp;p=24153#p24153"><![CDATA[
Pamięć szeregowa, data flash: AT45DB <br /><br />Urządzenie ma być czymś w stylu datalogera i wyświetlaniem aktualnych i ciekawych danych na LCD <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=162">peikman</a> — 9 sty 2013, o 16:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-01-08T23:16:10+01:00</updated>
<published>2013-01-08T23:16:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2080&amp;p=24072#p24072</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2080&amp;p=24072#p24072"/>
<title type="html"><![CDATA[Re: Event i parsowanie danych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2080&amp;p=24072#p24072"><![CDATA[
No pewnie że tak można - po to jest sobie taka funkcja parsująca - tak tylko z ciekawości zapytam - co to za pamięć zewnętrzna Flash ??? a nie przypadkiem EEPROM ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 8 sty 2013, o 23:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[peikman]]></name></author>
<updated>2013-01-08T22:34:35+01:00</updated>
<published>2013-01-08T22:34:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2080&amp;p=24063#p24063</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2080&amp;p=24063#p24063"/>
<title type="html"><![CDATA[Re: Event i parsowanie danych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2080&amp;p=24063#p24063"><![CDATA[
OK. Rozumiem. Jednak dzisiaj chciałem pójść dalej aby dane odebrane z GPS wyświetlić, zapisać w pamięci FLASH, wykonać obliczenia średniej prędkości itp... Czy to wszystko mogę zrobić w funkcji parsującej? Taki sposób pierwszy przyszedł do głowy: <br />[syntax=c] void parse_uart_data( char * pBuf ) {<br /><br />char * buf;<br />char * reszta;<br /><br />buf = strtok_r(pBuf,&quot;,&quot;,&amp;reszta); //w buf umieszczony jest adres na pierwszy &quot;token&quot;<br />//w wskaźniku reszta umieszczony jest wskaznik do kolejnej części łańcucha<br />if (buf &amp;&amp; (strcmp(buf,&quot;$GPRMC&quot;)==0)){<br />buf = strtok_r(NULL,&quot;.&quot;,&amp;reszta); //mamy w buf adres na UTC Time<br />LCD_wyswietl_poz1(buf); //wyświetlenie czasu na LCD<br />SPI_zapisz_Flash(buf); //zapis czasu w pamięci FLASH<br />buf = strtok_r(NULL,&quot;,&quot;,&amp;reszta); //setna część sekundy = niepotrzebne<br />buf = strtok_r(NULL,&quot;,&quot;,&amp;reszta); // status = valid or not = niepotrzebne<br />buf = strtok_r(NULL,&quot;,&quot;,&amp;reszta); // szerokość geograficzna<br />LCD_wyswietl_poz2(buf); <br />SPI_zapisz_Flash(buf);<br />// itd<br /><br />} [/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=162">peikman</a> — 8 sty 2013, o 22:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-01-07T22:54:27+01:00</updated>
<published>2013-01-07T22:54:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2080&amp;p=23872#p23872</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2080&amp;p=23872#p23872"/>
<title type="html"><![CDATA[Re: Event i parsowanie danych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2080&amp;p=23872#p23872"><![CDATA[
<div class="quotetitle">peikman napisał(a):</div><div class="quotecontent"><br />Czy sprawdzanie czy jest $GPRMC zrobić w funkcji parsującej?<br /></div><br /><br />Po to właśnie pokazałem taki rodzaj obsługi żeby było wygodnie. Toż w funkcji parsującej korzystasz z tych ciągów, które nadleciały i ciebie interesują, a inne ? jeśli cię nie interesują to lecą w kosmos - po co grzebać w czeluściach Zdarzenia TYLKO po to żeby wyławiać jeden interesujący ciebie ciąg. Owszem uzyskasz może i to samo tylko że zniszczysz sobie mechanizm fajnie zaprojektowany gdy później przyjdzie ci do głowy że np warto jeszcze coś wziąć pod uwagę.....<br /><br />a korzystając z funkcji parsującej - robisz WSZYSTKO na zasadzie &quot;róbta co chceta&quot; - a mechanizm dalej działa jak brzytwa.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 7 sty 2013, o 22:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[peikman]]></name></author>
<updated>2013-01-07T22:25:53+01:00</updated>
<published>2013-01-07T22:25:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2080&amp;p=23858#p23858</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2080&amp;p=23858#p23858"/>
<title type="html"><![CDATA[Event i parsowanie danych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2080&amp;p=23858#p23858"><![CDATA[
Cześć. Odbieram dane z GPS i potrzebuje tylko jeden łańcuch: $GPRMC, (każdy łańcuch zakończony ENTERem)<br />Wszystkie łańcuchy w przerwaniu są ładowane do bufora, gdy łąńcuch jest kompletny (zakończony enterem) zwiększa się zmienna ascii_line   Kod do odbioru danych z buforu cyklicznego: <br /><br />[syntax=c]void UART_RX_STR_EVENT (char * rbuf) {<br />if(ascii_line){<br />if(uart_rx_str_event_callback){<br />uart_get_str(rbuf);<br />(*uart_rx_str_event_callback)(rbuf);<br /><br />}<br /><br />}<br />}[/syntax]<br /><br />Ze względu, ze potrzebuje tylko jeden łańcuch to chce zrobić coś takiego: <br />[syntax=c]buf = strtok(GPRMC_dana_z_bufora_cyklicznego,&quot;,&quot;);<br />//w buf pojawia się moja pierwsza ramka danych z całego łańcucha np: //$GPRMC lub $GPGGA<br />if (buf &amp;&amp; (strcmp(buf,&quot;$GPRMC&quot;)==0)){<br />uart_get_str(rbuf);<br />(*uart_rx_str_event_callback)(rbuf);}[/syntax]<br /><br /><br />Czy sprawdzanie czy jest $GPRMC zrobić w funkcji parsującej?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=162">peikman</a> — 7 sty 2013, o 22:25</p><hr />
]]></content>
</entry>
</feed>