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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-08-20T21:07:57+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=3924&amp;mode</id>
<entry>
<author><name><![CDATA[sz4t4n]]></name></author>
<updated>2013-08-20T21:07:57+01:00</updated>
<published>2013-08-20T21:07:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3924&amp;p=46458#p46458</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3924&amp;p=46458#p46458"/>
<title type="html"><![CDATA[Re: Problem z funkcją wysyłającą ramkę]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3924&amp;p=46458#p46458"><![CDATA[
Krauser, ten sposób również działa. Jeszcze raz wielkie dzięki. Już pozbyłem się delay'ów i programowego generowania nośnej. Książka w łapie, kilka minut i kod gotowy <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br /><br />[syntax=c]/*<br /> * mian.c<br /> *<br /> *  Created on: 2013-08-20<br /> *      Author: asd<br /> */<br /><br /><br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/delay.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;string.h&gt;<br />#include &quot;fan.h&quot;<br /><br /><br /><br />int main(void)<br /><br />{<br /><br />DDRD |= (1&lt;&lt;PD7);<br /><br />timer_init();<br /><br /><br />sei();<br /><br />while (1)<br />{<br /><br /><br />send_data(fan_speed);<br />_delay_ms(5000);<br />send_data(fan_off);<br />_delay_ms(5000);<br /><br /><br />}<br /><br /><br />}[/syntax]<br /><br />[syntax=c]/*<br /> * fan.c<br /> *<br /> *  Created on: 2013-08-20<br /> *      Author: asd<br /> */<br /><br /><br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/delay.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &quot;fan.h&quot;<br /><br /><br />void timer_init(void)<br />{<br /><br />TCCR0  |= (1&lt;&lt;CS01);   // preskaler 8<br />TCCR0  |= (1&lt;&lt;WGM01);  // CTC<br />OCR0    = 27;//36kHz<br />TIMSK  |= (1&lt;&lt;OCIE0);   // zezwolenie na przerwanie<br /><br />}<br /><br /><br />void my_delay(uint16_t us_cnt)<br />{<br />TCCR1B |= (1&lt;&lt;WGM12); // CTC<br />TCCR1B |= (1&lt;&lt;CS11); // preskaler 8<br />OCR1A = us_cnt*2;<br />TIFR |= (1&lt;&lt;OCF1A);<br /><br />while (!(TIFR &amp; (1&lt;&lt;OCF1A))) {}; // czekanie az ocr1a sie wyzeruje<br />TCCR1B &amp;= ~ (1&lt;&lt;CS11);<br /><br />}<br /><br /><br />void zero (void)<br />{<br />TIMSK |= (1&lt;&lt;OCIE0);<br />my_delay(650);<br />TIMSK &amp;= ~(1&lt;&lt;OCIE0);<br />IR_PORT &amp;= ~ IR_PIN;<br />my_delay(1900);<br /><br />}<br /><br />void jeden (void)<br />{<br />TIMSK |= (1&lt;&lt;OCIE0);<br />my_delay(1900);<br />TIMSK &amp;= ~(1&lt;&lt;OCIE0);<br />IR_PORT &amp;= ~ IR_PIN;<br />my_delay(650);<br /><br />}<br /><br />void send_data(uint32_t cmd) {<br /><br />for (int8_t i = 23; i &gt; -1; i--)<br />{<br />if (!(cmd &amp; (1UL &lt;&lt; i)))<br />{<br /><br />zero();<br /><br />}else<br /><br />{<br /><br />jeden();<br /><br />}<br /><br /><br /><br /><br />}<br />}<br /><br />ISR(TIMER0_COMP_vect)<br />{<br />IR_PORT ^= IR_PIN;<br />}[/syntax]<br /><br />[syntax=c]/*<br /> * fan.h<br /> *<br /> *  Created on: 2013-08-20<br /> *      Author: asd<br /> */<br /><br />#ifndef FAN_H_<br />#define FAN_H_<br /><br />#define IR_PORT PORTD<br />#define IR_PIN (1&lt;&lt;PD7)<br /><br />#define fan_speed 0x333A3A<br />#define fan_off   0x33D2D2<br />#define fan_time  0x336262<br /><br /><br />void timer_init(void);<br />void zero (void);<br />void jeden (void);<br />void send_data(uint32_t cmd);<br />void my_delay(uint16_t us_cnt);<br /><br /><br /><br /><br />#endif /* FAN_H_ */[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=377">sz4t4n</a> — 20 sie 2013, o 21:07</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2013-08-20T17:32:27+01:00</updated>
<published>2013-08-20T17:32:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3924&amp;p=46406#p46406</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3924&amp;p=46406#p46406"/>
<title type="html"><![CDATA[Re: Problem z funkcją wysyłającą ramkę]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3924&amp;p=46406#p46406"><![CDATA[
Jeszcze tak można by zrobić:<br />[syntax=c]if (!(cmd &amp; (1UL &lt;&lt; i)))[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 20 sie 2013, o 17:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-08-20T17:23:29+01:00</updated>
<published>2013-08-20T17:23:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3924&amp;p=46402#p46402</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3924&amp;p=46402#p46402"/>
<title type="html"><![CDATA[Re: Problem z funkcją wysyłającą ramkę]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3924&amp;p=46402#p46402"><![CDATA[
ok zbyt pobieżnie rzuciłem okiem - nastawiając się że nośną generuje się za pomocą sprzętowego timera w trybie CTC Toggle, no ale można i tak - jak widać <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ważne że ruszyło<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 20 sie 2013, o 17:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sz4t4n]]></name></author>
<updated>2013-08-20T17:00:17+01:00</updated>
<published>2013-08-20T17:00:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3924&amp;p=46397#p46397</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3924&amp;p=46397#p46397"/>
<title type="html"><![CDATA[Re: Problem z funkcją wysyłającą ramkę]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3924&amp;p=46397#p46397"><![CDATA[
Mirku, nośną generuje programowo :<br />[syntax=c]void zero(void) {<br />        for (uint8_t i = 0; i &lt; 24; i++) {<br />                LED_ON;<br />                _delay_us(5);<br />                LED_OFF;<br />                _delay_us(21);<br />        }<br /> <br />        _delay_ms(1.9);<br />}[/syntax]<br /><br /><br />Krauser, ten drugi sposób zadziałał. Ramka w całości się wysyła. Dzięki wielkie!<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=377">sz4t4n</a> — 20 sie 2013, o 17:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-08-20T16:42:19+01:00</updated>
<published>2013-08-20T16:42:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3924&amp;p=46391#p46391</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3924&amp;p=46391#p46391"/>
<title type="html"><![CDATA[Re: Problem z funkcją wysyłającą ramkę]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3924&amp;p=46391#p46391"><![CDATA[
kilka dni temu był podobny problem na forum, inny kolega chciał nadawać ramkę do aparatu Nikon i też mu nie wychodziło ....<br /><br />a okazało się, że wszystko pięknie ładnie - tylko zapomniał, że jeszcze trzeba słać NOŚNĄ <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />a kolega o tym nie zapomniał czasem ? <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 />bo nie wiem co to są za makra LED_ON i LED_OF, ale jeśli tylko podające stan wysoki bądź niski na diodę - no to znaczy że AMBA wcięła koledze nośną ... i odbionik się niestety wypnie na taką zubożałą ramkę <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> — 20 sie 2013, o 16:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2013-08-20T16:40:02+01:00</updated>
<published>2013-08-20T16:40:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3924&amp;p=46390#p46390</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3924&amp;p=46390#p46390"/>
<title type="html"><![CDATA[Re: Problem z funkcją wysyłającą ramkę]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3924&amp;p=46390#p46390"><![CDATA[
Jest jeszcze taka opcja:<br />[syntax=c]if ( !( (cmd&gt;&gt;i) &amp; 1) )[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 20 sie 2013, o 16:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sz4t4n]]></name></author>
<updated>2013-08-20T16:17:57+01:00</updated>
<published>2013-08-20T16:17:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3924&amp;p=46383#p46383</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3924&amp;p=46383#p46383"/>
<title type="html"><![CDATA[Re: Problem z funkcją wysyłającą ramkę]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3924&amp;p=46383#p46383"><![CDATA[
Niestety, ale analizator nie pokazuje żadnej różnicy. Jedyna zmiana jest taka, że ramka wyła się jakby dwa razy<br /><br /><br /><a href="http://forum.atnel.pl/_obrazki/o/377/d98827c8654bcfb5a67a4cf7f80d8a27.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/377/d98827c8654bcfb5a67a4cf7f80d8a27.jpg" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=377">sz4t4n</a> — 20 sie 2013, o 16:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2013-08-20T16:00:41+01:00</updated>
<published>2013-08-20T16:00:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3924&amp;p=46382#p46382</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3924&amp;p=46382#p46382"/>
<title type="html"><![CDATA[Re: Problem z funkcją wysyłającą ramkę]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3924&amp;p=46382#p46382"><![CDATA[
Myślę, że promocja do typu int miesza. Spróbuj tak:<br />[syntax=c]if (!(cmd &amp; (uint32_t)(1 &lt;&lt; i)))[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 20 sie 2013, o 16:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sz4t4n]]></name></author>
<updated>2013-08-20T15:43:07+01:00</updated>
<published>2013-08-20T15:43:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3924&amp;p=46377#p46377</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3924&amp;p=46377#p46377"/>
<title type="html"><![CDATA[Problem z funkcją wysyłającą ramkę]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3924&amp;p=46377#p46377"><![CDATA[
Cześć,<br /><br />w ramach popołudniowej nudy wpadłem na pomysł napisania programu do obsługi stojącego wentylatora obsługiwanego pilotem IR. Program jest &quot;prostacki&quot;. Napisałem go w najprostszy sposób, nie używając nawet timerów ( wiem że to woła o pomstę do nieba ale ale to wstępna wersja napisana na szybko, jak już wszystko zadziała tak jak chcę to zastąpię delaye timerami). Pilot działa na 36kHz i wysyła ramkę 24 bitów. Podłączyłem go do analizatora oraz do MKdekoder'a i takie ramki uzyskałem ( pilot ma tylko 3 buttony).<br /><br />Przycisk włączający/przyspieszający wentylator :<br /><br /><a href="http://forum.atnel.pl/_obrazki/o/377/7afca2a415d4ca83e08cb0b62028065d.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/377/7afca2a415d4ca83e08cb0b62028065d.jpg" alt="Obrazek" /></a><br /><br />Przyjąłem, że krótki impuls to zero a długi to jeden.<br /><br />napisałem pierwsze dwie funkcje które odwzorowują czasu trwania impulsów, przerw i generują nośną (wiem że nośną można łatwo wygenerować na timerze, ale na chwilę obecną nie jest to problemem)<br /><br />[syntax=c]void zero(void) {<br />for (uint8_t i = 0; i &lt; 24; i++) {<br />LED_ON;<br />_delay_us(5);<br />LED_OFF;<br />_delay_us(21);<br />}<br /><br />_delay_ms(1.9);<br />}<br /><br />void jeden(void) {<br />for (uint8_t i = 0; i &lt; 72; i++) {<br />LED_ON;<br />_delay_us(5);<br />LED_OFF;<br />_delay_us(21);<br />}<br /><br />_delay_us(650);<br />}[/syntax]<br /><br />Potem przyszedł czas na bardzo prymitywny sposób wysłania ramki która włączy wentylator:<br /><br />[syntax=c]void speed_up(void) {<br /><br />zero();<br />zero();<br />jeden();<br />jeden();<br />zero();<br />zero();<br />jeden();<br />jeden();<br />zero();<br />zero();<br />jeden();<br />jeden();<br />jeden();<br />zero();<br />jeden();<br />zero();<br />zero();<br />zero();<br />jeden();<br />jeden();<br />jeden();<br />zero();<br />jeden();<br />zero();<br />}[/syntax]<br /><br /><br />No i zgodnie z oczekiwaniem wentylator elegancko się włącza. Chciałem zmienić tą funkcję na coś typu send_data(ramka). No więc wziąłem się za pisanie:<br /><br />[syntax=c]void send_data(uint32_t cmd) {<br /><br />for (int8_t i = 24; i &gt; -1; i--) {<br />if (!(cmd &amp; (1 &lt;&lt; i)))<br />zero();<br /><br />else<br />jeden();<br />}<br /><br />}[/syntax]<br /><br />zapisałem ramkę odpowiedzialną za włączenie wentylatora na postać binarną 0xb001100110011101000111010 oraz hex 0x333A3A. <br /><br />Więc wysłałem ramkę w ten sposób send_data(0x333A3A). Niestety brak odzewu ze strony wentylatora. Analizator pokazuję taką ramkę :<br /><br /><a href="http://forum.atnel.pl/_obrazki/o/377/a9a4c33dfc5b3244e1a57da3435133e5.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/377/a9a4c33dfc5b3244e1a57da3435133e5.jpg" alt="Obrazek" /></a><br /><br />z ramki tej wynika, że mniej więcej druga połowa ramki jest OK a pierwsza to praktycznie same &quot;zera&quot;. Spróbowałem więc podzielić ramkę na połowy oraz lekko zmodyfikować funkcję wysyłającą<br /><br />[syntax=c]void send_data(uint32_t cmd) {<br /><br />for (int8_t i = 11; i &gt; -1; i--) {<br />if (!(cmd &amp; (1 &lt;&lt; i)))<br />zero();<br /><br />else<br />jeden();<br />}<br /><br />}[/syntax] <br /><br />wysłałem ramkę w ten sposób :<br /><br />[syntax=c]send_data(0x333);<br />send_data(0xA3A);[/syntax]<br /><br />i o dziwo zadziałało. Ramka na analizatorze wygląda identycznie jak ta z pilota. Doszliśmy do etapu w którym zadaje pytanie <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />. Co jest nie tak w funkcji wysyłającej, że nie potrafi wysłać całej ramki tylko muszę dzielić ją na pół? Poniżej pełny kod programu<br /><br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 2013-08-18<br /> *      Author: asd<br /> */<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/delay.h&gt;<br />#include &quot;MK_USART/mkuart.h&quot;<br />#include &quot;LCD/lcd44780.h&quot;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;string.h&gt;<br />#include &quot;fan.h&quot;<br /><br />char work_buffer&#91;UART_RX_BUF_SIZE&#93;;<br />char speed&#91;&#93; = { &quot;speed&quot; };<br />char time&#91;&#93; = { &quot;time&quot; };<br />char off&#91;&#93; = { &quot;off&quot; };<br /><br />uint8_t zmienna;<br /><br />int main(void) {<br /><br />DDRA |= (1 &lt;&lt; PA7);<br />PORTA |= (1 &lt;&lt; PA7);<br /><br />DDRC |= IR_LED | LED1;<br />PORTC |= IR_LED;<br /><br />lcd_init();<br />USART_Init(__UBRR);<br /><br />sei();<br /><br />while (1) {<br /><br />uart_get_str(work_buffer);<br />lcd_locate(0, 0);<br />lcd_str(work_buffer);<br /><br />if (!(strcmp(work_buffer, speed))) {<br /><br />send_data(0x333);<br />send_data(0xA3A);<br /><br />//send_data(0x333A3A);  ramka nie działa !!<br /><br /><br />uart_puts(&quot;speed up \r\n&quot;);<br /><br />}<br /><br />if (!(strcmp(work_buffer, off))) {<br /><br />send_data(0x33D);<br />send_data(0x2D2);<br />uart_puts(&quot;pwr OFF \r\n&quot;);<br /><br />}<br /><br />if (!(strcmp(work_buffer, time))) {<br /><br />send_data(0x336);<br />send_data(0x262);<br /><br />uart_puts(&quot;time up \r\n&quot;);<br /><br />}<br /><br />}<br />}[/syntax]<br /><br />[syntax=c]/*<br /> * fan.c<br /> *<br /> *  Created on: 2013-08-19<br /> *      Author: asd<br /> */<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/delay.h&gt;<br />#include &quot;fan.h&quot;<br /><br />void zero(void) {<br />for (uint8_t i = 0; i &lt; 24; i++) {<br />LED_ON;<br />_delay_us(5);<br />LED_OFF;<br />_delay_us(21);<br />}<br /><br />_delay_ms(1.9);<br />}<br /><br />void jeden(void) {<br />for (uint8_t i = 0; i &lt; 72; i++) {<br />LED_ON;<br />_delay_us(5);<br />LED_OFF;<br />_delay_us(21);<br />}<br /><br />_delay_us(650);<br />}<br /><br />void send_data(uint32_t cmd) {<br /><br />for (int8_t i = 11; i &gt; -1; i--) {<br />if (!(cmd &amp; (1 &lt;&lt; i)))<br />zero();<br /><br />else<br />jeden();<br />}<br /><br />}<br /><br />void send_adr(void) {<br />send_data(adr);<br />}<br /><br />void speed_up(void) {<br /><br />zero();<br />zero();<br />jeden();<br />jeden();<br />zero();<br />zero();<br />jeden();<br />jeden();<br />zero();<br />zero();<br />jeden();<br />jeden();<br />jeden();<br />zero();<br />jeden();<br />zero();<br />zero();<br />zero();<br />jeden();<br />jeden();<br />jeden();<br />zero();<br />jeden();<br />zero();<br />}<br /><br />void pwr_off(void) {<br /><br />zero();<br />zero();<br />jeden();<br />jeden();<br />zero();<br />zero();<br />jeden();<br />jeden();<br />jeden();<br />jeden();<br />zero();<br />jeden();<br />zero();<br />zero();<br />jeden();<br />zero();<br />jeden();<br />jeden();<br />zero();<br />jeden();<br />zero();<br />zero();<br />jeden();<br />zero();<br /><br />}[/syntax]<br /><br /><br />[syntax=c]/*<br /> * fan.h<br /> *<br /> *  Created on: 2013-08-19<br /> *      Author: asd<br /> */<br /><br />#ifndef FAN_H_<br />#define FAN_H_<br /><br /><br />#define IR_LED (1&lt;&lt;PC7)<br />#define LED_ON PORTC &amp;= ~IR_LED;<br />#define LED_OFF PORTC |= IR_LED;<br />#define LED1 (1&lt;&lt;PC6)<br /><br />#define adr   0x33<br />#define fan_speed 0x333A3A<br />#define fan_off   0x33D2D2<br />#define fan_time  0x336262<br /><br />void jeden (void);<br />void zero (void);<br />void speed_up(void);<br />void pwr_off(void);<br />void send_data(uint32_t cmd);<br /><br /><br /><br />#endif /* FAN_H_ */[/syntax]<br /><br />Używam zestawu ATB GLS, atmegi32 ( chociaż nie powinno mieć to znaczenia w tym przypadku). Do obsługi wentylatora napisałem prościutki program na pc który wysyła stringi, które to z kolei sprawdza uC i odpowiednio reaguje.<br /><br />trochę się rozpisałem <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />pzdr Tomek<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=377">sz4t4n</a> — 20 sie 2013, o 15:43</p><hr />
]]></content>
</entry>
</feed>