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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2012-08-05T21:18:29+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=1365&amp;mode</id>
<entry>
<author><name><![CDATA[bubu_pl]]></name></author>
<updated>2012-08-05T21:18:29+01:00</updated>
<published>2012-08-05T21:18:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11875#p11875</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11875#p11875"/>
<title type="html"><![CDATA[Re: Atemga128 i GPS (w dalszych planach GSM i czujnik temp)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11875#p11875"><![CDATA[
zrobiłem sobie troszeczkę ładniejszą obsługę całego programu.<br />Niestety, pierwszy raz działa:<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">$GPGGA201529.000||5210.2440N||02100.3153E||1||8||136.5||027.9||SEND SMS$GPGSA</div><br />i tutaj stoi...<br /><br />kod main:<br />[syntax=c]<br />while(1)<br />{<br />while(!GPS_Block)GPS_Rx();<br /><br />if(s1_flag)<br />{<br />if((0 == (sekundy%3)) &amp;&amp; !TEMP_Block)search_sensors(); // wyszukaj DS18B20<br />if((1 == (sekundy%3)) &amp;&amp; !TEMP_Block)DS18X20_start_meas(DS18X20_POWER_EXTERN, NULL); // zacznij mierzyć<br />if((2 == (sekundy%3)) &amp;&amp; !TEMP_Block)<br />{<br />if ( DS18X20_OK == DS18X20_read_meas_single(DS18B20_ID, &amp;subzero, &amp;temp_dec, &amp;temp_rest))<br />{<br />char tmpbuffer[7]; // dla konwersji z int to ASCII<br />char dot[]=&quot;.&quot;;<br />strcat(SMS_Buff,itoa(subzero, tmpbuffer, 10)); //zero oznacza +, 1 oznacza -<br />strcat(SMS_Buff,itoa(temp_dec, tmpbuffer, 10));<br />strcat(SMS_Buff,dot);<br />strcat(SMS_Buff,itoa(temp_rest, tmpbuffer, 10));<br />strcat(SMS_Buff,SMS_Separator);<br /><br />TEMP_Block=1; // az do wyslania smsa<br />uart0_puts(SMS_Buff);<br />}<br />}<br /><br />if((0 == sekundy%5))<br />{<br />uart0_puts(&quot;SEND SMS&quot;);<br />GPS_Block=0;<br />TEMP_Block=0;<br />}<br />s1_flag--;<br />}<br />}<br />[/syntax]<br />kod gps:<br />[syntax=c]<br />void GPS_Rx(void)<br />{<br />if(flag1)<br />{<br />i=0; // zerowy element tablicy bufor GPS<br />isGPPA=0; // Domyslna wartosc<br />//gps_ChckSum=0; // Zerowanie sumy kontrolnej<br /><br />GPGGA_Flush(); // czyszczenie bufora GPS<br />SMS_Buff_Flush(); // czyszczenie bufora SMS<br /><br />while((c=uart1_getc()) != '\n')<br />{<br />GPGGA_Data[i++]=c; // tutaj mam już całą linię w GPGGA_Data<br />}<br /><br />token = strtok(GPGGA_Data,separator);<br />uart0_puts(token);<br /><br />if(token &amp;&amp; (strcmp(token,&quot;$GPGGA&quot;) == 0))<br />isGPPA = 1; // czy token to GPPGA?<br /><br /><br /><br />if(isGPPA)<br />{<br />gps_time = strtok(NULL, separator);<br />gps_lattitude = strtok(NULL, separator);<br />gps_ns = strtok(NULL, separator);<br />gps_longitude = strtok(NULL, separator);<br />gps_ew = strtok(NULL, separator);<br />gps_isvalid = strtok(NULL, separator);<br />gps_satnumb = strtok(NULL, separator);<br />gps_hdop = strtok(NULL, separator);<br />gps_altitude = strtok(NULL, separator);<br />///strtok(NULL, &quot;*&quot;); //do gwiazdki by sprawdzic CheckSum<br />//gps_CheckSumRcv = strtok(NULL, &quot;*&quot;);<br />if(atoi(gps_isvalid) == 1)<br />{<br />strcat(SMS_Buff,gps_time);<br />strcat(SMS_Buff,SMS_Separator);<br />strcat(SMS_Buff,gps_lattitude);<br />strcat(SMS_Buff,gps_ns);<br />strcat(SMS_Buff,SMS_Separator);<br />strcat(SMS_Buff,gps_longitude);<br />strcat(SMS_Buff,gps_ew);<br />strcat(SMS_Buff,SMS_Separator);<br />strcat(SMS_Buff,gps_isvalid);<br />strcat(SMS_Buff,SMS_Separator);<br />strcat(SMS_Buff,gps_satnumb);<br />strcat(SMS_Buff,SMS_Separator);<br />strcat(SMS_Buff,gps_altitude);<br />strcat(SMS_Buff,SMS_Separator);<br /><br />GPS_Block=1; // dopoki nie wysle SMS<br />}<br />}<br />flag1--;<br />}<br />}<br />[/syntax]<br /><br />co się dzieje?<br /><br />rozwiązanie dla potomnych <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />w przerwaniu ISR dodałem warunek sprawdzajacy czy GPS_Block jest 0, jeśli jest zaipsuje dane do bufora cyklicznego normalnie, jak jest 1 to olewam <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Czy to jest rozwiązanie zgodne ze sztuką?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=505">bubu_pl</a> — 5 sie 2012, o 21:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Malutki_27]]></name></author>
<updated>2012-08-03T19:37:36+01:00</updated>
<published>2012-08-03T19:37:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11726#p11726</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11726#p11726"/>
<title type="html"><![CDATA[Re: Atemga128 i GPS (w dalszych planach GSM i czujnik temp)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11726#p11726"><![CDATA[
Możesz wyłowić minuty ze stringa <br /><br />I zastosować coś takiego <br />if (1==(atoi(wylowione_minuty))%2){<br />tutaj obsługa wysyłki by SMS<br />}<br /><br />lepszym rozwiązaniem by było zrobienie wewnętrznego zegarka i działanie ewentualnie na nim, a dodatkowo możesz go synchronizować np co godzinę ( czy też rzadziej ) z GPS.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=225">Malutki_27</a> — 3 sie 2012, o 19:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[bubu_pl]]></name></author>
<updated>2012-08-03T19:28:19+01:00</updated>
<published>2012-08-03T19:28:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11725#p11725</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11725#p11725"/>
<title type="html"><![CDATA[Re: Atemga128 i GPS (w dalszych planach GSM i czujnik temp)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11725#p11725"><![CDATA[
Dziękuje za cenne rady wszystkim forumowiczom:)<br /><br />kolejna sprawa (coby temat nie podupadl <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> )<br /><br />istnieje jakieś sensowne rozwiązanie które sprawi, iż np co minutę będzie wysyłany sms? jak ognia chcę uniknąć delay <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />może sprawdzanie czy w czasie pobranym z GPS sekundy są równe 00?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=505">bubu_pl</a> — 3 sie 2012, o 19:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-03T17:36:23+01:00</updated>
<published>2012-08-03T17:36:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11713#p11713</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11713#p11713"/>
<title type="html"><![CDATA[Re: Atemga128 i GPS (w dalszych planach GSM i czujnik temp)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11713#p11713"><![CDATA[
A widzisz - czyli nie wycinasz CR po skonsumowaniu linii z bufora - dlatego ci tu wyłazi - więc nie szukaj do *=gwiazdki tylko do CR ... rozumiesz ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />a przy okazji zamiast pisać tak:<br /><br />[syntax=c]                                uart0_puts(&quot;JEA&quot;);<br />                                uart0_putc( '\r' );<br />                                uart0_putc( '\n' );[/syntax]<br /><br />ułatw sobie życie i pisz tak:<br /><br />[syntax=c]                                uart0_puts(&quot;JEA\r\n&quot;);[/syntax]<br /><br />czyli ładnie idzie dalej <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ... najważniejsze to umiejętnie sprawdzać każdy fragment stosując po drodze takie chwilowe pułapki jakie ci wcześniej pokazałem<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 2 minutach ]</span></strong><br /><br />Aha - wprawdzie już doszedłeś że przed $GPGGA wpada ci CR .... ale musiałeś to podejrzeć na terminalu - a wystarczyłoby zrobić dodatkową pułapkę i wyrzucać na terminal także ilość znaków<br /><br />strlen(token)<br /><br />i już być wiedział że masz w tokenie o jeden znak więcej <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=54">mirekk36</a> — 3 sie 2012, o 17:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[bubu_pl]]></name></author>
<updated>2012-08-03T16:51:51+01:00</updated>
<published>2012-08-03T16:51:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11705#p11705</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11705#p11705"/>
<title type="html"><![CDATA[Re: Atemga128 i GPS (w dalszych planach GSM i czujnik temp)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11705#p11705"><![CDATA[
oczywiście się zgadzam:) babole w stylu 0xXX już nie wystąpią:)<br /><br />zastanawia mnie jedna rzecz, mianowicie nie działa poprawnie porównywanie znaków. zrobiłem taki oto kod w funkcji:<br /><br />[syntax=c]<br /><br />uart0_puts(token);<br /><br /><br />if(token &amp;&amp; (strcmp(token,&quot;$GPGGA&quot;) == 0))<br />isGPPA = 1; // wysyalnie 'S' jesli pierwszy token to $GPGGA<br /><br /><br />if(isGPPA)<br />{<br />uart0_puts(&quot;JEA&quot;);<br />uart0_putc( '\r' );<br />uart0_putc( '\n' );<br />}<br />[/syntax]<br /><br />output:<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">                                  $GPGSA<br />                                               $GPGSV<br />                                                     $GPGSV<br />                                                           $GPGSV<br />                                                                 $GPRMC<br />                                                                       $GPVTG<br />                                                                             $GPGGA<br />                                                                                   $GPGSA<br />                                                                                         $GPRMC<br />                                                                                               $GPVTG<br />                                                                                                     $GPGGA<br /></div><br /><br />jak widać $GPGGA występuje i ma się dobrze, jednak nie wyświetla się radosny napis 'JEA', nie jest spełoniony warunek... coś dziwnego, prawda?<br /><br /><br /><strong>EDYCJA:</strong><br />Podejrzałem w HexEdytorze, okazało się że toke nzaczyna się od \n. zmiana kodu na:<br />[syntax=c]if(token &amp;&amp; (strcmp(token,&quot;\n$GPGGA&quot;) == 0))<br />isGPPA = 1; // wysyalnie 'S' jesli pierwszy token to $GPGGA[/syntax]<br /><br />działam dalej <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=505">bubu_pl</a> — 3 sie 2012, o 16:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-03T15:40:38+01:00</updated>
<published>2012-08-03T15:40:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11696#p11696</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11696#p11696"/>
<title type="html"><![CDATA[Re: Atemga128 i GPS (w dalszych planach GSM i czujnik temp)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11696#p11696"><![CDATA[
Ja ci podpowiem jak ja bym na twoim miejscu to sobie sprawdzał - zobacz na to:<br /><br />[syntax=c]while(1)<br />        {<br />                if(flag1)<br />                {<br />                        i=0; // zerowy element tablicy bufor GPS<br />                        GPGGA_Flush(); // czyszczenie bufora GPS<br /> <br />                        while((c=uart1_getc()) != '*' )<br />                        {<br />                                GPGGA_Data[i++]=c; // tutaj mam już całą linię w GPGGA_Data<br />                        }<br /> <br /> <br />                        token = strtok(GPGGA_Data,&quot;,&quot;);<br /><br />                        // to jest mój DEBUG<br />                        uart_puts( token );  // tu sprawdziłbym sobie co mam w tokienie<br />                        while(1);<br /> <br />                        if(token &amp;&amp; (strcmp(token,&quot;$GPGGA&quot;) == 0))<br />                        {<br />                                uart0_putc('S'); // wysyalnie 'S' jesli pierwszy token to $GPGGA<br />                        }<br /> <br />                        flag1--;<br />                }<br />        }[/syntax]<br /><br />Stosuj sobie takie PUŁAPKI - debugerystyczne <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> szybciej ci pójdzie <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />ale uwaga - kolega po raz kolejny podaje kod z tym dziwnym 0x2d<br /><br /><span style="color: #FF0000">while((c=uart1_getc()) != 0x2d )</span><br /><br />wiem, że kolega może to uznać za jakąś złośliwość z mojej strony ale przysięgam że tak nie jest. Jednak jeśli dalej w kodach nadsyłanych do analizy na tym forum, nie będzie kolega ułatwiał życia innym <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> jeśli już nie sobie<br /><br /><span style="color: #008000">while((c=uart1_getc()) != '*' )</span><br /><br />to ja niezbyt chętnie albo w ogóle nie będę udzielał pomocy. Takie są po prostu zasady dobrego stylu pisania kodu na naszym forum....<br /><br />oczywiście nie chcę robić z igły widły i nie chodzi mi o tę linijkę bo już wiem że 0x2d na szybko do *, ale tak na przyszłość - mam nadzieję że kolega mnie zrozumiem.<br /><br />-------------------<br /><br />wracając do tematu - takie stosowanie pułapek w najprostszym debugerze jaki ci wyżej pokazuję to jedna z najlepszych metod na dochodzenie do sedna sprawy <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=54">mirekk36</a> — 3 sie 2012, o 15:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[bubu_pl]]></name></author>
<updated>2012-08-03T15:07:37+01:00</updated>
<published>2012-08-03T15:07:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11689#p11689</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11689#p11689"/>
<title type="html"><![CDATA[Re: Atemga128 i GPS (w dalszych planach GSM i czujnik temp)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11689#p11689"><![CDATA[
dzięki za pomoc<br /><br /><br />wymodziłem taki kod:<br /><br />definicja bufora i jego czyszczenie<br />[syntax=c]#define GPS_BUFF_SIZE 120<br />char GPGGA_Data[GPS_BUFF_SIZE]; // bufor dla odpowiedzi z GPS<br /><br />void GPGGA_Flush(void) //<br />{<br />uint8_t i;<br />for(i=0; i&lt;GPS_BUFF_SIZE;i++)<br />{<br />GPGGA_Data[i]=0;<br />}<br />}[/syntax]<br /><br />petle główna:<br />[syntax=c]<br />while(1)<br />{<br />if(flag1)<br />{<br />i=0; // zerowy element tablicy bufor GPS<br />GPGGA_Flush(); // czyszczenie bufora GPS<br /><br />while((c=uart1_getc()) != 0x2d)<br />{<br />GPGGA_Data[i++]=c; // tutaj mam już całą linię w GPGGA_Data<br />}<br /><br /><br />token = strtok(GPGGA_Data,&quot;,&quot;);<br /><br />if(token &amp;&amp; (strcmp(token,&quot;$GPGGA&quot;) == 0))<br />{<br />uart0_putc('S'); // wysyalnie 'S' jesli pierwszy token to $GPGGA<br />}<br /><br />flag1--;<br />}<br />}[/syntax]<br /><br />jednak na terminalu nie widze oczekianej literki S mowiacej ze znaleziono String $GPGGA... wydaje mi sie ze kod wyglada dobrze i powinien dzialac.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=505">bubu_pl</a> — 3 sie 2012, o 15:07</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-03T14:24:09+01:00</updated>
<published>2012-08-03T14:24:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11680#p11680</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11680#p11680"/>
<title type="html"><![CDATA[Re: Atemga128 i GPS (w dalszych planach GSM i czujnik temp)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11680#p11680"><![CDATA[
<div class="quotetitle">bubu_pl napisał(a):</div><div class="quotecontent"><br />Moglibyscie powiedziec czy ide w dobrym kierunku?<br /></div><br /><br />Tzn tak, pewnie wiesz że każdą rzecz można oprogramować na milion różnych sposobów, na tyle ilu jest programistów na świecie więc ciężko powiedzieć że to jest zła droga - ale myślę że na pewno najeżona ostrymi kamieniami...<br /><br />dlaczego ???<br /><br />dlatego że jak sądzę ty teraz próbujesz ustawiać flagę w przerwaniu w zależności od czego ? od kilku różnych znaków ??? ... oj<br /><br />poza tym dlaczego nie korzystasz z podstawowej zasady dobrego stylu programowania w C i wciąż piszesz warunki tego typu z jakimiś dzikimi kodami HEX ??? .... no weź pod uwagę że czytający mają dużo trudniej żeby teraz to odcyfrowywać.... pomyśl sobie czy nie lepiej NAWET dla CIEBIE zamiast pisać tak:<br /><br /><span style="color: #FF0000">if(data == 0x2a)</span><br /><br />co jest dla mnie zgrozą czytać jak mam pomóc - pisać tak?<br /><br /><span style="color: #008000"><span style="font-size: 200%; line-height: normal"><strong>if( data == '*' )</strong></span></span><br /><br />czyż to nie jest dla oka 1000000 razy przyjemniejsze ?<br /><br />tak samo z CR czy LF<br /><br />zamiast tak:<br /><br /><span style="color: #FF0000">if( data == 0x0d )</span><br /><br />to tak<br /><br /><span style="color: #008000"><span style="font-size: 200%; line-height: normal"><strong>if( data == '\r' )</strong></span></span><br /><br />albo tak:<br /><br /><span style="color: #0040FF"><strong><span style="font-size: 150%; line-height: normal">#define CR 0x0d<br /><br />if( data == CR )</span></strong></span><br /><br />pomyśl nad tym .... ale ok teraz sugestia drobna jeśli chodzi o kierunek jak sobie radzić nawet bez drugiej książki na razie. Pisałem ci wcześniej o tych funkcjach strtok() i strtok_r()<br /><br />masz opisane ich działanie w PDF'ie w folderze WinAVR na własnym dysku .... <br /><br />Idea jest taka - jak już odebrałeś do bufora całą ramkę - to postaraj się podzielić ją na kawałki za pomocą tych funkcji, na kawałki które cię interesują (czyli TOKENY bo tak się je nazywa). Przecież twórcy tego GPS'a właśnie tak tworzyli tą ramkę żeby w C było można ją wessać jak dobry makaron <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />każdy przecinek w twojej ramce jest separatorem tokena. A zatem w kilku liniach krok po kroku można mieć sparsowaną dzięki tym funkcjom całą ramkę bez budowania własnych pętli while() które będą biegać znak po znaku i próbować robić od początku świata to co już dawno za ciebie robi strtok() <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> - poczytasz o tych funkcjach ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 3 sie 2012, o 14:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Malutki_27]]></name></author>
<updated>2012-08-03T13:24:44+01:00</updated>
<published>2012-08-03T13:24:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11670#p11670</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11670#p11670"/>
<title type="html"><![CDATA[Re: Atemga128 i GPS (w dalszych planach GSM i czujnik temp)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11670#p11670"><![CDATA[
No i tutaj się zaczyna dylemat ponieważ ( absolutnie nie traktuj mojej wypowiedzi na namawianie do czegokolwiek ) trudno mi jest doradzać wiedząc że można to zrobić szybko i bardzo ale to bardzo bezboleśnie z wiedza zamieszczoną w drugiej ksiązce. Przykład tego co chcesz zrobic masz tutaj<a href="http://forum.atnel.pl/topic1264.html#p11309"  class="postlink">topic1264.html#p11309</a>.<br /><br />A wracając do meritum. Bufor masz za mały o 2 znaki, zapominasz o CR i LF,a i tak będzie przymały jak na moje wyczucie. Powinien być dwu trzy krotnie większy.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=225">Malutki_27</a> — 3 sie 2012, o 13:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[bubu_pl]]></name></author>
<updated>2012-08-03T12:14:36+01:00</updated>
<published>2012-08-03T12:14:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11657#p11657</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11657#p11657"/>
<title type="html"><![CDATA[Re: Atemga128 i GPS (w dalszych planach GSM i czujnik temp)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11657#p11657"><![CDATA[
Ok, póki jednak nie mam książki spróbuję powalczyć:)<br /><br />zrobiłem sobie bufor GPGGA_Data[70] dla całego stringa<br />Moglibyscie powiedziec czy ide w dobrym kierunku?<br /><br />w main:<br />[syntax=c]while(1)<br />{<br /><br /><br />if(flag1)<br />{<br />i=0;<br /><br />// pobieranie z bufora UART i zapisywanie do bufora GPGGA_Data<br />while((c=uart1_getc()) != 0x2d)<br />{<br />if (c != '*')<br />{<br />GPGGA_Data[i++] = c;<br />ChSumCalc = ChSumCalc ^ c;<br />}<br />else<br />{<br />flagEnd--; // gdy napotykam *<br />}<br />}<br /><br /><br />flag1--;<br />}<br />}[/syntax]<br /><br />W obsludze przerwania dodalem:<br />[syntax=c]<br />if(data == 0x2a)<br />flagEnd++;<br />// na wypadek gdy spotykam *<br />[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=505">bubu_pl</a> — 3 sie 2012, o 12:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Malutki_27]]></name></author>
<updated>2012-08-03T11:24:22+01:00</updated>
<published>2012-08-03T11:24:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11652#p11652</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11652#p11652"/>
<title type="html"><![CDATA[Re: Atemga128 i GPS (w dalszych planach GSM i czujnik temp)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11652#p11652"><![CDATA[
<div class="quotetitle">bubu_pl napisał(a):</div><div class="quotecontent"><br />czy zalecany jest sposób sprawdzania znaku po znaku czy występuje $GPGGA?<br /><br />Co do książki: kupię napewno, pierwsza część bardzo mi przypadła do gustu:)<br /></div><br /><br />Pobierasz całego stringa i ganiasz po nim.<br />Własnie takie zabawy są BARDZO dobrze opisane w drugiej książce. Naprawę polecam ci kup, przeczytaj i dopiero zacznij dalej zabawę ....... <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=225">Malutki_27</a> — 3 sie 2012, o 11:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-03T11:20:13+01:00</updated>
<published>2012-08-03T11:20:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11651#p11651</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11651#p11651"/>
<title type="html"><![CDATA[Re: Atemga128 i GPS (w dalszych planach GSM i czujnik temp)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11651#p11651"><![CDATA[
<div class="quotetitle">bubu_pl napisał(a):</div><div class="quotecontent"><br />czy zalecany jest sposób sprawdzania znaku po znaku czy występuje $GPGGA?<br /></div><br /><br />No widzisz, to póki nie masz tej drugiej książki to zainteresuj się wbudowanymi funkcjami strtok() oraz strtok_r() bo one są w C jakby w standardzie właśnie do parsowania. Robienie tego znak po znaku to katorga (też można ale to męczarnia) i dlatego rozumiem skąd to przerażenie na początku o trudności z parsowaniem danych.<br /><br />A przy okazji kolega Malutki_27 dobrze prawi o tym sprawdzaniu CRC, bo w przypadku jakichś zakłóceń transmisji odpadnie ci z marszu kolejny hektolitr problemów <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=54">mirekk36</a> — 3 sie 2012, o 11:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Malutki_27]]></name></author>
<updated>2012-08-03T11:10:51+01:00</updated>
<published>2012-08-03T11:10:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11649#p11649</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11649#p11649"/>
<title type="html"><![CDATA[Re: Atemga128 i GPS (w dalszych planach GSM i czujnik temp)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11649#p11649"><![CDATA[
Ja bym podszedł troszkę innaczej. Zanim bym cokolwiek &quot;prasował&quot; to sprawdziłbym czy CRC się zgadza i jeżeli by było ok to wtedy parsujemy dane, a jak nie to ramkę ignorujemy.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 9 minutach ]</span></strong><br /><br />Obliczanie CRC dla NMEA jest <a href="http://webone.novatel.ca/assets/Documents/Bulletins/apn030.pdf"  class="postlink">tutaj.</a> strona 4.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=225">Malutki_27</a> — 3 sie 2012, o 11:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[bubu_pl]]></name></author>
<updated>2012-08-03T11:06:26+01:00</updated>
<published>2012-08-03T11:06:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11648#p11648</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11648#p11648"/>
<title type="html"><![CDATA[Re: Atemga128 i GPS (w dalszych planach GSM i czujnik temp)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11648#p11648"><![CDATA[
za namową Mirka sprawdziłem w Hex Edytorze (zawsze jakaś nauka;) )<br />i okazało się że Malutki_27 ma racje:)<br /><br />dalej, usuwam znak &lt;LF&gt;:<br /><br />ISR( USART1_RX_vect)<br />[syntax=c]<br />if(data == 0x0a)<br />data = 0x00;<br />[/syntax]<br /><br />teraz zostaje mi parsowanie ramek...<br /><br />czy zalecany jest sposób sprawdzania znaku po znaku czy występuje $GPGGA?<br /><br />Co do książki: kupię napewno, pierwsza część bardzo mi przypadła do gustu:)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=505">bubu_pl</a> — 3 sie 2012, o 11:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Malutki_27]]></name></author>
<updated>2012-08-03T11:02:26+01:00</updated>
<published>2012-08-03T11:02:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11647#p11647</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11647#p11647"/>
<title type="html"><![CDATA[Re: Atemga128 i GPS (w dalszych planach GSM i czujnik temp)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11647#p11647"><![CDATA[
<a href="http://download.maritex.com.pl/pdfs/wi/FGPMMOSL3.pdf"  class="postlink">Datasheet</a> strona 14 i już wiesz jaki jest format ramki oraz jaki jest znaka końca, w tym przypadku &lt;CR&gt;&lt;LF&gt;<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=225">Malutki_27</a> — 3 sie 2012, o 11:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-03T10:54:38+01:00</updated>
<published>2012-08-03T10:54:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11646#p11646</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11646#p11646"/>
<title type="html"><![CDATA[Re: Atemga128 i GPS (w dalszych planach GSM i czujnik temp)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11646#p11646"><![CDATA[
Tak już jest lepiej ale no musisz poćwiczyć bo masz to pod ręką.<br /><br />Oczywiście że mylisz się, że trudno to obrabiać ponieważ nawet gdyby ramki przylatywałby dużo szybciej to i tak procesor ma całe hektary czasu na ich obrobienie. No i tym bardziej że te ramki są MIODNE <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> czyli zakończone ENTEREM <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .... hmmm na przyszłość polecam ci jednak moją drugą książkę bo podejrzewam , że jej ostatni rozdział niesamowicie by cię ucieszył gdybyś zobaczył co i jak można robić jeśli chodzi o parsowanie i to dużo większej ilości danych ... i jak łatwo do tego... (a wszystko ładnie po kolei i od podstaw opisane - już sporo osób skorzystało z tego rozdziału - bo on jest właśnie uzupełnieniem do pierwszej książki)<br /><br />Tak CR to 0x0d <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ale sprawdź w terminalu czy przypadkiem GPS nie wysyła na końcu sekwencji CRLF czyli 0x0d i 0x0c bo wtedy LF będzie trzeba jeszcze w przerwaniu najlepiej WYCINAĆ<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 3 sie 2012, o 10:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[bubu_pl]]></name></author>
<updated>2012-08-03T10:34:39+01:00</updated>
<published>2012-08-03T10:34:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11641#p11641</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11641#p11641"/>
<title type="html"><![CDATA[Re: Atemga128 i GPS (w dalszych planach GSM i czujnik temp)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11641#p11641"><![CDATA[
GPS to FGPOMMOSL3<br />Dzieki Panowie za odpowiedzi <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> bede walczył dalej..<br />Biore się teraz za parsowanie danych <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Czy zastosowane rozwiązanie (póki co) wydaje się poprawne wg Was?<br /><br />main.c<br />[syntax=c]while(1)<br />{<br /><br />if(flag1)<br />{<br />while((c=uart1_getc()) != 0x2d) uart0_putc(c);<br /><br />flag1--;<br />}<br />}[/syntax]<br /><br />USART1.c:<br />[syntax=c]ISR( USART1_RX_vect) {<br />uint8_t tmp_head;<br />char data;<br /><br />data = UDR1; //pobieramy bajt danych z bufora sprzetowego<br /><br />// czy znak to &lt;CR&gt;? 0x0d -&gt; &lt;CR&gt; - znak nowej linii<br />if(data == 0x0d)<br />flag1++;[/syntax]<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">$GPVTG,348.15,T,,M,0.00,N,0.00,K,A*36<br />$GPGGA,093213.000,5210.2469,N,02100.3476,E,1,7,1.20,120.4,M,39.1,M,,*54<br />$GPGSA,A,3,17,28,09,12,04,26,14,,,,,,1.85,1.20,1.41*0A<br />$GPRMC,093213.000,A,5210.2469,N,02100.3476,E,0.00,348.15,030812,,,A*6D<br />$GPVTG,348.15,T,,M,0.00,N,0.01,K,A*37<br />$GPGGA,093214.000,5210.2469,N,02100.3476,E,1,7,1.20,120.4,M,39.1,M,,*53<br />$GPGSA,A,3,17,28,09,12,04,26,14,,,,,,1.85,1.20,1.41*0A<br />$GPRMC,093214.000,A,5210.2469,N,02100.3476,E,0.00,348.15,030812,,,A*6A<br />$GPVTG,348.15,T,,M,0.00,N,0.01,K,A*37<br />$GPGGA,093215.000,5210.2469,N,02100.3476,E,1,7,1.20,120.4,M,39.1,M,,*52<br />$GPGSA,A,3,17,28,09,12,04,26,14,,,,,,1.85,1.20,1.41*0A<br />$GPRMC,093215.000,A,5210.2469,N,02100.3476,E,0.00,348.15,030812,,,A*6B<br />$GPVTG,348.15,T,,M,0.00,N,0.00,K,A*36<br />$GPGGA,093216.000,5210.2469,N,02100.3476,E,1,7,1.14,120.4,M,39.1,M,,*56<br />$GPGSA,A,3,17,22,28,09,12,04,14,,,,,,1.71,1.14,1.28*0D<br />$GPGSV,4,1,13,27,85,143,24,09,80,291,30,17,44,065,48,12,40,249,33*7F<br />$GPGSV,4,2,13,15,36,200,21,28,15,067,47,14,12,324,46,22,10,303,34*76<br />$GPGSV,4,3,13,26,09,169,22,04,07,118,47,01,07,019,22,18,06,265,*77<br />$GPGSV,4,4,13,25,02,250,*49<br />$GPRMC,093216.000,A,5210.2469,N,02100.3476,E,0.00,348.15,030812,,,A*68<br />$GPVTG,348.15,T,,M,0.00,N,0.00,K,A*36<br /></div><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=505">bubu_pl</a> — 3 sie 2012, o 10:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Malutki_27]]></name></author>
<updated>2012-08-03T10:26:20+01:00</updated>
<published>2012-08-03T10:26:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11638#p11638</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11638#p11638"/>
<title type="html"><![CDATA[Re: Atemga128 i GPS (w dalszych planach GSM i czujnik temp)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11638#p11638"><![CDATA[
Taka ramka to niemalże bajka <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />I masz znak końca linii ponieważ tworzy ci się nowa linia i mogą to być znaki CR albo LF lub obydwa razem <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: 1 minucie ]</span></strong><br /><br />I chyba jest nawet CRC ( ostatnie znaki po &quot;*&quot;)<br /><br />A jaki to GPS ? Chodzi mi o model .<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=225">Malutki_27</a> — 3 sie 2012, o 10:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Sonix]]></name></author>
<updated>2012-08-03T10:23:53+01:00</updated>
<published>2012-08-03T10:23:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11637#p11637</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11637#p11637"/>
<title type="html"><![CDATA[Re: Atemga128 i GPS (w dalszych planach GSM i czujnik temp)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11637#p11637"><![CDATA[
GPS 'wyrzuca' dane standardowo z częstotliwością 1Hz, średnio przy około 250 znakach 'pakietu' i prędkości 9600bps masz baaaardzo dużo czasu na ogarnięcie tych danych <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=127">Sonix</a> — 3 sie 2012, o 10:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[bubu_pl]]></name></author>
<updated>2012-08-03T09:54:06+01:00</updated>
<published>2012-08-03T09:54:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11634#p11634</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11634#p11634"/>
<title type="html"><![CDATA[Re: Atemga128 i GPS (w dalszych planach GSM i czujnik temp)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11634#p11634"><![CDATA[
dzieki za szybką odpowiedz.<br /><br />Moj plik main.c:<br />[syntax=c]while(1)<br />{<br />c=uart1_getc();<br />uart0_putc(c);<br />}[/syntax]<br /><br />wycinek z ISR:<br />[syntax=c]ISR( USART1_RX_vect) {<br />uint8_t tmp_head;<br />char data;<br /><br />data = UDR1; //pobieramy bajt danych z bufora sprzetowego<br /><br />// czy znak to &lt;CR&gt;? 0x2d -&gt; &lt;CR&gt;<br />if (data == 0x2d)<br />flag1++;<br />[/syntax]<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">$GPGSA,A,3,27,17,22,28,09,01,12,18,26,,,,1.54,0.88,1.26*08<br />$GPRMC,085143.000,A,5210.2439,N,02100.3487,E,0.07,176.35,030812,,,A*6D<br />$GPVTG,176.35,T,,M,0.07,N,0.13,K,A*3E<br />$GPGGA,085144.000,5210.2439,N,02100.3487,E,1,9,0.88,116.3,M,39.1,M,,*56<br />$GPGSA,A,3,27,17,22,28,09,01,12,18,26,,,,1.54,0.88,1.26*08<br />$GPRMC,085144.000,A,5210.2439,N,02100.3487,E,0.07,176.35,030812,,,A*6A<br />$GPVTG,176.35,T,,M,0.07,N,0.13,K,A*3E<br />$GPGGA,085145.000,5210.2439,N,02100.3487,E,1,9,0.88,116.1,M,39.1,M,,*55<br />$GPGSA,A,3,27,17,22,28,09,01,12,18,26,,,,1.53,0.88,1.26*0F<br />$GPRMC,085145.000,A,5210.2439,N,02100.3487,E,0.07,176.35,030812,,,A*6B<br />$GPVTG,176.35,T,,M,0.07,N,0.12,K,A*3F<br />$GPGGA,085146.000,5210.2440,N,02100.3488,E,1,9,0.88,116.0,M,39.1,M,,*56<br />$GPGSA,A,3,27,17,22,28,09,01,12,18,26,,,,1.53,0.88,1.26*0F<br />$GPGSV,3,1,11,27,77,298,34,09,60,294,32,15,53,213,27,17,49,090,50*7B<br />$GPGSV,3,2,11,28,31,061,45,26,26,168,30,12,23,239,34,18,16,279,28*7F<br />$GPGSV,3,3,11,22,12,319,42,01,09,034,40,11,02,020,*4C<br />$GPRMC,085146.000,A,5210.2440,N,02100.3488,E,0.07,176.35,030812,,,A*69<br />$GPVTG,176.35,T,,M,0.07,N,0.13,K,A*3E<br />$GPGGA,085147.000,5210.2440,N,02100.3488,E,1,9,0.88,115.9,M,39.1,M,,*5D<br />$GPGSA,A,3,27,17,22,28,09,01,12,18,26,,,,1.53,0.88,1.26*0F<br />$GPRMC,085147.000,A,5210.2440,N,02100.3488,E,0.09,176.35,030812,,,A*66<br />$GPVTG,176.35,T,,M,0.09,N,0.16,K,A*35<br /></div><br /><br />Ogólnie problem jest taki, iż GPS cały czas wyrzuca dane... dlatego trudno je obrabiać.. mylę się?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=505">bubu_pl</a> — 3 sie 2012, o 09:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-03T09:32:23+01:00</updated>
<published>2012-08-03T09:32:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11630#p11630</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11630#p11630"/>
<title type="html"><![CDATA[Re: Atemga128 i GPS (w dalszych planach GSM i czujnik temp)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11630#p11630"><![CDATA[
Moja sugestia jest taka aby w przerwaniu w ogóle nie dotykać obróbki danych, one mają wpadać do bufora cyklicznego aby nie nastąpiły przerwy w odbiorze lub samej pracy procesora.<br /><br />W przerwaniu można np ustawiać sobie jakąś flagę, która będzie sygnalizować koniec nadlatującej ramki. Co jest końcem twojej ramki ??? Sprawdzałeś w terminalu na PC ? czy nie jest to przypadkiem znak ENTER (CR) ?<br /><br />Jeśli tak to właśnie wystarczy zwiększać flagę za każdym razem gdy w przerwaniu pojawi się CR <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />A w pętli głównej czekać TYLKO aż się pojawi taka flaga. Pomyśl sobie jak się pojawi to masz PEWNOŚĆ że w buforze cyklicznym czeka już na ciebie jak na tacy cała pięknie odebrana ramka - zgadza się?<br /><br />Nic tylko ją teraz odczytać za pomocą polecenia pobierania pojedynczego znaku aż do wystąpienia znaku CR <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> i już masz całą linię odebraną<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 3 sie 2012, o 09:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[bubu_pl]]></name></author>
<updated>2012-08-03T09:25:15+01:00</updated>
<published>2012-08-03T09:25:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11629#p11629</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11629#p11629"/>
<title type="html"><![CDATA[Atemga128 i GPS (w dalszych planach GSM i czujnik temp)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1365&amp;p=11629#p11629"><![CDATA[
witam!<br />Zamarzył i się projekt który będzie odczytywał temp z czujnika i GPS i wysyłał wszystko SMS.<br />Sprawa o tyle uproszczona iż atmega128 ma dwa UARTY (0 dla GSM, 1 dla GPS).<br /><br />Narazie jednak mam problem z obsługą GPS.<br />Mianowicie, chciałbym 'wyskrobać' sobie ramkę $GPGGA<br /><br />Czy w przerwaniu (ISR( USART1_RX_vect)) mogę sprawdzać czy kolejnymi danymi napływającymi z GPS są bajty w postaci:<br />$<br />G<br />P<br />G<br />G<br />A<br />?<br />Jak się zabrać za ten problem?<br /><br />przykładowa ramkga $GPGGA:<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">$GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,,*47</div><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=505">bubu_pl</a> — 3 sie 2012, o 09:25</p><hr />
]]></content>
</entry>
</feed>