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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-04-29T17:26:51+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=8093&amp;mode</id>
<entry>
<author><name><![CDATA[corey]]></name></author>
<updated>2015-04-29T17:26:51+01:00</updated>
<published>2015-04-29T17:26:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8093&amp;p=127767#p127767</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8093&amp;p=127767#p127767"/>
<title type="html"><![CDATA[Re: Mega32+STN1110 (ELM327) problem przy wysyłaniu OBD reque]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8093&amp;p=127767#p127767"><![CDATA[
Moglbys podpowiedziec jak interpretowales sygnal np. obciazenia ktory wychodzi juz elma do avr. Tzn. wysegregowales dane do przetworzenia, bo elm wysyla to chyba w czwartym bicie.<br /><br />ups.odkopalem temat z przed roku, ale moze ktos cos pomoze.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1961">corey</a> — 29 kwi 2015, o 17:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[robertaz]]></name></author>
<updated>2014-08-13T08:36:46+01:00</updated>
<published>2014-08-13T08:36:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8093&amp;p=91328#p91328</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8093&amp;p=91328#p91328"/>
<title type="html"><![CDATA[Re: Mega32+STN1110 (ELM327) problem przy wysyłaniu OBD reque]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8093&amp;p=91328#p91328"><![CDATA[
Racja <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> Następnym razem postaram się lepiej przedstawić problem.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4806">robertaz</a> — 13 sie 2014, o 08:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[atmel]]></name></author>
<updated>2014-08-12T22:28:36+01:00</updated>
<published>2014-08-12T22:28:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8093&amp;p=91304#p91304</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8093&amp;p=91304#p91304"/>
<title type="html"><![CDATA[Re: Mega32+STN1110 (ELM327) problem przy wysyłaniu OBD reque]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8093&amp;p=91304#p91304"><![CDATA[
Tak to jest kiedy na forum przedstawiany jest tylko pewien fragment kodu, a pozostały może oddziaływać na całą resztę.<br />To świetnie że udało się rozwiązać problem, ale na przyszłość, mimo iż wydaje się to niepotrzebne, warto dodać również te elementy które są również pośrednio powiązane, a bardziej celowo uda się pomóc.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1183">atmel</a> — 12 sie 2014, o 22:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[robertaz]]></name></author>
<updated>2014-08-12T21:38:25+01:00</updated>
<published>2014-08-12T21:38:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8093&amp;p=91297#p91297</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8093&amp;p=91297#p91297"/>
<title type="html"><![CDATA[Re: Mega32+STN1110 (ELM327) problem przy wysyłaniu OBD reque]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8093&amp;p=91297#p91297"><![CDATA[
Panowie problem rozwiązany, żadna opcja z wysyłaniem komend w pętli głównej oraz blokowaniem pętli w oczekiwaniu na znak &quot;&gt;&quot; nie działała. Po prostu program się blokował w chwili oczekiwania i nie obsługiwał poszczególnych funkcji wyświetlających dane na LCD. W końcu postanowiłem zmienić koncepcję. W pętli while znajduje się tylko obsługa zdarzenia UART_RX_STR_EVENT(bufor). Przed pętlą wysyłam jednokrotnie zapytanie o obciążenie uart_puts(&quot;010r\r), a następne zapytanie wysyłam dopiero w programie obsługującym zdarzenie od komendy 0104 (odbieram dane na temat obciążenia, wyświetlam je na LCD a pod koniec funkcji wysyłam zapytanie o kolejną wartość(temperaturę) uart_puts(&quot;0105/r), i tak robię jeszcze w trzech kolejnych funkcjach a w ostatniej znów pytam o pierwszy parametr (0104). I dopiero takie rozwiązanie daje zadawalające rezultaty. <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=4806">robertaz</a> — 12 sie 2014, o 21:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[HCOOH]]></name></author>
<updated>2014-08-12T21:09:40+01:00</updated>
<published>2014-08-12T21:09:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8093&amp;p=91287#p91287</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8093&amp;p=91287#p91287"/>
<title type="html"><![CDATA[Re: Mega32+STN1110 (ELM327) problem przy wysyłaniu OBD reque]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8093&amp;p=91287#p91287"><![CDATA[
I oczywiście te delaye też są warte sprawdzenia...<br /><br />A jak wygląda symulacja w terminu?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2954">HCOOH</a> — 12 sie 2014, o 21:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[HCOOH]]></name></author>
<updated>2014-08-12T20:00:52+01:00</updated>
<published>2014-08-12T20:00:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8093&amp;p=91278#p91278</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8093&amp;p=91278#p91278"/>
<title type="html"><![CDATA[Re: Mega32+STN1110 (ELM327) problem przy wysyłaniu OBD reque]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8093&amp;p=91278#p91278"><![CDATA[
Może to niewiele wniesie do kodu ale możesz włożyć każdą pętlę while w poprzednią żeby uzyskać zawsze zbieranie informacji w tej samej kolejności <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=2954">HCOOH</a> — 12 sie 2014, o 20:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[charsz]]></name></author>
<updated>2014-08-11T20:36:41+01:00</updated>
<published>2014-08-11T20:36:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8093&amp;p=91135#p91135</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8093&amp;p=91135#p91135"/>
<title type="html"><![CDATA[Re: Mega32+STN1110 (ELM327) problem przy wysyłaniu OBD reque]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8093&amp;p=91135#p91135"><![CDATA[
Podstawy debugowania problemow opisywal mirekk w ktoryms poradniku. Podpowiem, poswiec jeden pin megi i podlacz do niego diode (z rezystorem) i zapal sobie ta diode w odpowiednim miejscu. I patrz kiedy ci sie przestanie zapalac. A jak juz masz LCD to w ogole wypas. <br /><br />I juz dzis komus dawalem porade. Skoro cos chodzace z komunikacja z UART nie dziala jak nalezy, to pierwsza rzecz to podlaczyc do PC i udawac, raz jedna strone raz druga i sprawdzic co sie dzieje.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=926">charsz</a> — 11 sie 2014, o 20:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[atmel]]></name></author>
<updated>2014-08-11T11:54:35+01:00</updated>
<published>2014-08-11T11:54:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8093&amp;p=91058#p91058</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8093&amp;p=91058#p91058"/>
<title type="html"><![CDATA[Re: Mega32+STN1110 (ELM327) problem przy wysyłaniu OBD reque]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8093&amp;p=91058#p91058"><![CDATA[
Może spróbuj dla testu dodać pewne opóźnienia między odczytami...<br /><br />[syntax=c]while(1)<br />        {<br />                 while( uart_getc() != '&gt;');            //czekamy aż STN wysle znak gotowości &quot;&gt;&quot;<br />                 _delay_ms(100);<br />                 uart_puts(&quot;0104\r&quot;);                           //zapytanie o obciążenie<br />                 _delay_ms(100);<br />                 while( uart_getc() != '&gt;');<br />                 _delay_ms(100);<br />                 uart_puts(&quot;0105\r&quot;);                           //zapytanie o temperaturę<br />                 _delay_ms(100);<br />                 while( uart_getc() != '&gt;');<br />                 _delay_ms(100);<br />                 uart_puts(&quot;010c\r&quot;);                           //zapytanie o obroty<br />                 _delay_ms(100);<br />                 while( uart_getc() != '&gt;');<br />                 _delay_ms(100);<br />                 uart_puts(&quot;010d\r&quot;);                           //zapytanie o prędkość<br />                 _delay_ms(100);<br />                 UART_RX_STR_EVENT(bufor);      // zdarzenie odbiorcze UART<br /> <br />        }[/syntax]<br />Być może po odebraniu znaku '&gt;' układ nie jest gotowy na natychmiastowy odbiór danych i potrzebny jest pewien odstęp czasowy. Podane przeze mnie czasy są oczywiście przykładowe i mają na celu jedynie zlokalizowanie przyczyny potencjalnych problemów.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1183">atmel</a> — 11 sie 2014, o 11:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[robertaz]]></name></author>
<updated>2014-08-11T11:19:34+01:00</updated>
<published>2014-08-11T11:19:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8093&amp;p=91050#p91050</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8093&amp;p=91050#p91050"/>
<title type="html"><![CDATA[Mega32+STN1110 (ELM327) problem przy wysyłaniu OBD requests]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8093&amp;p=91050#p91050"><![CDATA[
Z racji tego, iż to mój pierwszy post na forum, pragnę w pierwszej kolejności wszystkich serdecznie powitać <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />. Przechodząc do meritum sprawy: od dłuższego czasu pracuję nad projektem testera diagnostycznego opartego na scalaku STN1110 - odpowiednik ELM327 se strony software'owej (te same komendy AT, OBD etc.). Układ współpracuje z uC ATMega32, która komunikuje się z STNem poprzez UART. Całość sterowana jest czterema przyciskami microswitch a dane odebrane z pojazdu wyswietlane na wyświetlaczu LCD 4x16. Środowisko programistyczne to Eclipse - język C. W programie wykorzystuję biblioteki zarówno z Bluebooka (LCD, Superdebounce) jak i z greenbooka (UART oraz zmodyfikowane przezemnie funkcje parsujące). Cały program opiera się na wysyłaniu odpowiednich zapytań do STNa, który to komunikuje się z ECU samochodu i zwraca odpowiednie dane, które następnie podlegają parsowaniu i wyswietlaniu na LCD. Problem pojawia się kiedy wysyłam zapytania o więcej niż jedną wartość. Np. chcę wyświetlać na LCD 4 wartości: temp. cieczy chłodzącej, obroty silnika, prędkość pojazdu oraz obciążenie odświeżając każdą wartość cyklicznie (narazie w pętli głównej while). Niżej kod:<br />[syntax=c]while(1)<br />{<br /> while( uart_getc() != '&gt;');//czekamy aż STN wysle znak gotowości &quot;&gt;&quot;<br /> uart_puts(&quot;0104\r&quot;);//zapytanie o obciążenie<br /><br />         while( uart_getc() != '&gt;');<br /> uart_puts(&quot;0105\r&quot;);//zapytanie o temperaturę<br /><br /> while( uart_getc() != '&gt;');<br /> uart_puts(&quot;010c\r&quot;);//zapytanie o obroty<br /><br /> while( uart_getc() != '&gt;');<br /> uart_puts(&quot;010d\r&quot;);//zapytanie o prędkość<br /> UART_RX_STR_EVENT(bufor);// zdarzenie odbiorcze UART<br /><br />}[/syntax]<br />Na diodach sygnalizujących komunikację pomiędzy Atmegą a STNem oraz STNem a ECU samochodu widać komunikację pomiędzy poszczególnymi układami. Niestety nie widać żadnej wartości wyświetlanej na LCD. Natomiast jeśli wysyłam każde zapytanie poprzez przyciśnięcie innego przycisku (4 przyciski na 4 wartości) z funkcji superdebounce to wszystko ładnie się wyświetla (oczywiście jednorazowo bez odświeżania wartości). Moje pytanie brzmi, czy problemem w tej sytuacji są linie programu oczekujące na znak gotowości: [syntax=c]while( uart_getc() != '&gt;');[/syntax], które to prowadzą do zatrzymania programu? Jeśli tak to jak można by było obejść owy problem?? <br />Za wszelkie porady serdecznie dziękuję <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=4806">robertaz</a> — 11 sie 2014, o 11:19</p><hr />
]]></content>
</entry>
</feed>