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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2019-12-28T13:33:12+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=22749&amp;mode</id>
<entry>
<author><name><![CDATA[avrLearner]]></name></author>
<updated>2019-12-28T13:33:12+01:00</updated>
<published>2019-12-28T13:33:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22749&amp;p=223794#p223794</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22749&amp;p=223794#p223794"/>
<title type="html"><![CDATA[Re: Dawca czasu nie odpowiada]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22749&amp;p=223794#p223794"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />No i widzisz jak się przydaje debuger na jednej diodzie LED ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /></div><br /><br />Dzięki za pomoc, jakoś przegapiłem ten poradnik o debugerze jednodiodowym <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> <br /><br />Jak na ten moment wszystko działa jak należy:<br /><a href="https://obrazkiforum.atnel.pl/18017/a746d2de2dbe5e6710b0345343b3c12b.jpg"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/18017/a746d2de2dbe5e6710b0345343b3c12b.jpg" alt="Obrazek" /></a><br /><br />Problem był w 94. linii programu:<br /><br />Było:<br />                [syntax=c]if(!strncasecmp(&quot;ok+&quot;, buf, 4))[/syntax]<br /><br />Powinno być:<br />                [syntax=c]if(!strncasecmp(&quot;+ok=&quot;, buf, 4))[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18017">avrLearner</a> — 28 gru 2019, o 13:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2019-12-27T12:23:48+01:00</updated>
<published>2019-12-27T12:23:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22749&amp;p=223780#p223780</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22749&amp;p=223780#p223780"/>
<title type="html"><![CDATA[Re: Dawca czasu nie odpowiada]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22749&amp;p=223780#p223780"><![CDATA[
No i widzisz jak się przydaje debuger na jednej diodzie LED ? <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> — 27 gru 2019, o 12:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[avrLearner]]></name></author>
<updated>2019-12-27T12:21:27+01:00</updated>
<published>2019-12-27T12:21:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22749&amp;p=223778#p223778</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22749&amp;p=223778#p223778"/>
<title type="html"><![CDATA[Re: Dawca czasu nie odpowiada]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22749&amp;p=223778#p223778"><![CDATA[
Na początek sprawdziłem czy komendy są wysyłane:<br />[syntax=c]if(!Timer2)<br />                {<br />                        switch(get_time)<br />                        {<br />                        case 0 ... 2: uart_puts(&quot;+&quot;); break;<br />                        case 3: uart_puts(&quot;a&quot;); break;<br />                        case 5: actual_at_cmd = _at_gmt;<br />                        uart_puts(&quot;AT+GMT=1\r&quot;); break; // czas letni/zimowy<br />                        case 10: uart_puts(&quot;AT+ENTM\r&quot;); break; // enter transparent mode<br />                        }<br />                        get_time++;<br />                        if(get_time&gt;100) get_time=0;<br /> <br />                        Timer2 = 10; // co 100ms<br />                }[/syntax]<br /><br />W Puttym pokazuje się, że komendy są wysyłane:<br /><a href="https://obrazkiforum.atnel.pl/18017/5fd3c436987a041668f5d34064373dfe.jpg"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/18017/5fd3c436987a041668f5d34064373dfe.jpg" alt="Obrazek" /></a><br /><br />W funkcji parse_rs232 zastosowałem tzw. pułapkę programową, zgodnie z poradnikiem:<br />[syntax=c]void parse_rs232(char *buf)<br />{<br />if(!buf&#91;0&#93;) return; // gdy w 1. odebranym bicie nic nie ma, wyjdz z f-cji<br />else<br />{<br />DDRC |= (1&lt;&lt;PC6);<br />PORTC &amp;= ~(1&lt;&lt;PC6);<br />while(1);<br />}<br />...<br />...<br />...<br />}[/syntax]<br />Zapaliła się dioda, więc coś jest odbierane<br /><br />Chcąc sprawdzić co jest odbierane po każdej wysłanej komendzie, zrobiłem tak:<br />[syntax=c]void parse_rs232(char *buf)<br />{<br />if(!buf&#91;0&#93;) return; // gdy w 1. odebranym bicie nic nie ma, wyjdz z f-cji<br />else<br />{<br />DDRC |= (1&lt;&lt;PC6);<br />PORTC &amp;= ~(1&lt;&lt;PC6);<br />                lcd_str(buf);<br />//while(1);<br />}<br />...<br />...<br />...<br />}[/syntax]<br /><br />I na LCD widać, choć b. mało czytelnie, bo pokazywane są też inne komendy, że czas jest odbierany w postaci:<br />+ok=2019-12-27 12:12:46 - więc tak jak ma być<br /><br />Popatrzę na dalszą część jutro lub wieczorem i napiszę co wyszło <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=18017">avrLearner</a> — 27 gru 2019, o 12:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2019-12-26T16:57:47+01:00</updated>
<published>2019-12-26T16:57:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22749&amp;p=223761#p223761</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22749&amp;p=223761#p223761"/>
<title type="html"><![CDATA[Re: Dawca czasu nie odpowiada]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22749&amp;p=223761#p223761"><![CDATA[
Weź jedną diodę LED w rękę, obejrzyj poradnik o Debugerze na jednej diodzie LED i najpierw spróbuj tą metodą szukać przyczyny w programie i powiedz co ci wyszło.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 26 gru 2019, o 16:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[avrLearner]]></name></author>
<updated>2019-12-26T14:14:23+01:00</updated>
<published>2019-12-26T14:14:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22749&amp;p=223760#p223760</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22749&amp;p=223760#p223760"/>
<title type="html"><![CDATA[Dawca czasu nie odpowiada]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22749&amp;p=223760#p223760"><![CDATA[
Witajcie,<br /><br />oglądam właśnie poradniki o dawcy czasu WiFi232 NTP i utknąłem w pewnym miejscu i nie mogę ruszyć dalej. Mianowicie w czwartej części poradnika jest już wyświetlony na wyświetlaczu w podstawowej wersji czas i data z serwera NTP. U mnie niestety nic się nie pojawia. Robię gdzieś błąd tylko nie mogę go znaleźć, bo kompilator nie wyrzuca błędów, a moduł WiFi - sądząc po tym, że czas wyświetla się na terminalu poprawnie - został skonfigurowany poprawnie.<br /><br />Procesor taktowany jest kwarcem 11.0592MHz, ustawione jest to w eclipsie oraz ustawione są odpowiednie FuseBity:<br /><a href="https://obrazkiforum.atnel.pl/18017/8ed1923a7f35c473f1d20fe6e9fb77c9.jpg"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/18017/8ed1923a7f35c473f1d20fe6e9fb77c9.jpg" alt="Obrazek" /></a><br /><br />Poniżej przedstawiam konfigurację modułu Atnel-Wifi:<br /><a href="https://obrazkiforum.atnel.pl/18017/642b1383e5c9a0f847ab188c67f97522.jpg"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/18017/642b1383e5c9a0f847ab188c67f97522.jpg" alt="Obrazek" /></a><br /><br />W końcu kod:<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/wdt.h&gt;<br />#include &lt;string.h&gt;<br />#include &lt;stdlib.h&gt;<br /><br />#include &quot;MK_USART/mkuart.h&quot;<br />#include &quot;LCD/lcd44780.h&quot;<br /><br />// ***************** Deklaracje zmiennych ******************<br />volatile uint16_t Timer1, Timer2;<br />char uart_buf&#91;100&#93;;<br />uint8_t get_time;<br />uint8_t actual_at_cmd;<br />enum {_none, _at_gmt};<br /><br />// ****************** Deklaracje funkcji *******************<br />void parse_rs232(char *buf);<br /><br /><br /><br /><br />// *************** Glowna fukncja main ************************<br />int main(void)<br />{<br />DDRC |= (1&lt;&lt;PC7);<br />PORTC |= (1&lt;&lt;PC7);<br /><br />// *** Ustawienia timera programowego: ***<br />TCCR2 |= (1&lt;&lt;WGM21); // tryb ctc<br />TCCR2 |= (1&lt;&lt;CS22) | (1&lt;&lt;CS21) | (1&lt;&lt;CS20); // preskaler 1024<br />OCR2 = 107; // przerwanie co 100hz (10ms)<br />TIMSK = (1&lt;&lt;OCIE2); // odblokowanie comparematch<br /><br /><br />USART_Init(__UBRR);<br />register_uart_str_rx_event_callback(parse_rs232);<br /><br />lcd_init();<br />lcd_cls();<br />DDRA |= (1&lt;&lt;PA7);<br />PORTA |= (1&lt;&lt;PA7);<br />lcd_str(&quot;Start...&quot;);<br /><br />sei();<br /><br />//********************* Petla glowna **********************<br />while(1)<br />{<br />UART_RX_STR_EVENT(uart_buf);<br /><br />if(!Timer1)<br />{<br />PORTC ^= (1&lt;&lt;PC7);<br />Timer1 = 25; // co 250ms<br />}<br />if(!Timer2)<br />{<br />switch(get_time)<br />{<br />case 0 ... 2: uart_puts(&quot;+&quot;); break;<br />case 3: uart_puts(&quot;a&quot;); break;<br />case 5: actual_at_cmd = _at_gmt;<br />uart_puts(&quot;AT+GMT=1\r&quot;); break; // czas letni/zimowy<br />case 10: uart_puts(&quot;AT+ENTM\r&quot;); break; // enter transparent mode<br />}<br />get_time++;<br />if(get_time&gt;100) get_time=0;<br /><br />Timer2 = 10; // co 100ms<br />}<br /><br />} // koniec while<br />} // koniec inta **************************************************<br /><br /><br /><br /><br />// Funkcje:<br />void parse_rs232(char *buf)<br />{<br />if(!buf&#91;0&#93;) return; // gdy w 1. odebranym bicie nic nie ma, wyjdz z f-cji<br /><br />//uint8_t MM, DD, gg, mm, ss;<br />//uint16_t YY=0;<br /><br />char *dt;<br />char *tm;<br /><br />if(actual_at_cmd == _at_gmt)<br />{<br /><br />if(!strncasecmp(&quot;ok+&quot;, buf, 4))<br />{<br />dt = strtok(buf, &quot;=&quot;);<br />dt = strtok(NULL, &quot; &quot;);<br />tm = strtok(NULL, &quot; &quot;);<br />if(10 == strlen(dt) &amp;&amp; 8 == strlen(tm))<br />{<br />lcd_locate(0,0);<br />lcd_str(dt);<br />lcd_locate(1,0);<br />lcd_str(tm);<br /><br />//YY = atoi(strtok(dt, &quot;-&quot;));<br />//MM = atoi(strtok(NULL, &quot;-&quot;));<br />//DD = atoi(strtok(NULL, &quot;-&quot;));<br />//<br />//gg = atoi(strtok(tm, &quot;:&quot;));<br />//mm = atoi(strtok(NULL, &quot;:&quot;));<br />//ss = atoi(strtok(NULL, &quot;:&quot;));<br /><br />//ustaw_czas(gg,mm,ss); ew. ustawienie RTC<br />}<br />}<br />}<br /><br />// Obsluga SoftReset dla bootloadera:<br />if(!strncasecmp(&quot;AT+RST?&quot;, buf, 7))<br />{<br />cli(); // disable interrupts<br />wdt_enable(0); // set watchdog<br />while(1); // wait for reset<br />}<br />}<br /><br /><br />ISR(TIMER2_COMP_vect)<br />{<br />uint16_t n;<br />n = Timer1;<br />if(n) Timer1 = --n;<br /><br />n = Timer2;<br />if(n) Timer2 = --n;<br />}[/syntax]<br /><br />W pliku mkuart.h ustawiłem prędkość transmisji (biblioteka z GB) w 12 linii:<br />[syntax=c]#define UART_BAUD 115200// tu definiujemy interesującą nas prędkość[/syntax]<br /><br /><br />Efekt na wyświetlaczu jest taki:<br /><a href="https://obrazkiforum.atnel.pl/18017/d84f6563e66df69601e57c6fb317c888.jpg"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/18017/d84f6563e66df69601e57c6fb317c888.jpg" alt="Obrazek" /></a><br /><br />Dioda miga co określony czas, na wyświetlaczu pojawia się tylko napis &quot;Start...&quot; <br /><br />Wiadomo, powinno wszystko działać, tylko problem zapewne znajduje się na fotelu przed ekranem komputera <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> Gdzieś musi być jakiś głupi błąd, którego nie mogę odnaleźć. Wiem, że powinienem to znaleźć samemu, bo jest gotowy poradnik na YT, ale po ponownym obejrzeniu nie potrafię znaleźć błędu. Może ktoś popatrzeć na to świeżym okiem i porównać ze swoim kodem? Będę bardzo wdzięczny<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18017">avrLearner</a> — 26 gru 2019, o 14:14</p><hr />
]]></content>
</entry>
</feed>