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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2026-02-16T22:50:33+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f&amp;t&amp;mode=topics</id>
<entry>
<author><name><![CDATA[ankel345]]></name></author>
<updated>2026-02-16T22:50:33+01:00</updated>
<published>2026-02-16T22:50:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24888&amp;p=239406#p239406</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24888&amp;p=239406#p239406"/>
<title type="html"><![CDATA[Dla całkowicie początkujących • Inicjalizacja portów Atmega8]]></title>

<category term="Dla całkowicie początkujących" scheme="https://forum.atnel.pl/viewforum.php?f=58" label="Dla całkowicie początkujących"/>
<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24888&amp;p=239406#p239406"><![CDATA[
Witam. Jestem zupełnie początkującym i napotkałem taki problem: Chcę uruchomić wyświetlacz 7-segmentowy LED. W literaturze w przykładach na sterowanie segmentami wykorzystany jest jeden z portów. Ja muszę skorzystać z dwóch portów, PORT D (PD0 i PD1) PORTC (PC1,PC2,PC3,PC4,PC5,)<br />do sterowania anodami (PB6,PB7) oraz (PD3,PD4). Po prostu mam płytkę zegara z piekarnika i chcę ją zaadoptować do ćwiczeń i takie mam uwarunkowania. Nie umiem sobie poradzić z inicjalizacją i tablicą cyfr.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=22283">ankel345</a> — 16 lut 2026, o 22:50 — Odpowiedzi 4 — Wyświetlone 494</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[awojcick]]></name></author>
<updated>2026-02-02T14:49:11+01:00</updated>
<published>2026-02-02T14:49:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24887&amp;p=239400#p239400</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24887&amp;p=239400#p239400"/>
<title type="html"><![CDATA[Komputery PC (Windows/Linux) • Linux Debian Eclipse + avrdude.]]></title>

<category term="Komputery PC (Windows/Linux)" scheme="https://forum.atnel.pl/viewforum.php?f=48" label="Komputery PC (Windows/Linux)"/>
<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24887&amp;p=239400#p239400"><![CDATA[
Od kilku dni borykam się z problemem uruchomienia na debianie eclipse z avrdudem. <br />Dzięki Mirkowi jest to świetnie opisane w przypadku Windows za co serdecznie mu dziękuję <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /><br />Ale do rzeczy:<br />Eclipse 2024-12 zainstalowany ustawione co trzeba programy się kompilują jest OK.<br />Avrdude 7.1 zainstalowany, programator ATB-USBASP v.4.2 ustawione co trzeba w terminalu działa można czytać i zapisywać avr.<br />Sprawdzałem dla atmegi32 i atmegi328p.<br />Natomiast nie mogę uruchomić go z eclipse pomimo podania w konfiguracji prawidłowej scieżki.<br />W zakładce Projects/Properties/AVR/AVRDude/Programer po naciśnięciu New.. nic się nie dzieje i nie pojawia się okno konfiguracji.<br />Może Koledzy mają jakiś pomysł jak rozwiązać ten problem.<br /><br />Pozdrawiam <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=21784">awojcick</a> — 2 lut 2026, o 14:49 — Odpowiedzi 2 — Wyświetlone 344</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Robert_1967]]></name></author>
<updated>2026-01-29T15:20:47+01:00</updated>
<published>2026-01-29T15:20:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24886&amp;p=239388#p239388</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24886&amp;p=239388#p239388"/>
<title type="html"><![CDATA[Komputery PC (Windows/Linux) • Eclipse na pendrive.]]></title>

<category term="Komputery PC (Windows/Linux)" scheme="https://forum.atnel.pl/viewforum.php?f=48" label="Komputery PC (Windows/Linux)"/>
<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24886&amp;p=239388#p239388"><![CDATA[
Witajcie.<br /><br />Chciałem się podzielić małym doświadczeniem z Eclipse, które wczoraj przeprowadziłem z czystej ciekawości. Może komuś się przyda... Nadmienię, że wykonałem to na komputerach z <br />zainstalowanym Windows 7 64 bity, ale to chyba nie ma znaczenia (trzeba dla pewności sprawdzić). Proszę od razu za oszczędzenie mnie w kontekście Windowsa, że koci i taki stary <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":-)" title="Szczęśliwy" /><br /><br />Mi pasuje i do puki nie ma z nim większych problemów, to używam. A więc wziąłem pendriva usb 3.0 i po prostu na zasadzie kopiuj i wklej, przeniosłem cały folder Eclipsa z dysku C na pendriva.<br />Eclipse wcześniej &quot;zainstalowany&quot; normalnie zgodnie z poradnikami Mirka. Wgrany plagin z prockami pb i cała procedura konfiguracyjna dla workspace. Może inaczej. Eclipse, na którym pracuję<br />od dawna i teraz postanowiłem wykonać, co opisuję.<br /><br />Dalej do skopiowanego folderu Eclipse (ver. 12-2023) skopiowałem również cały folder MkClipse z C:/dokumenty, gdzie jak wiemy znajduje się folder avrdude i AVR Toolchain. Następnie na tego pendrive<br />skopiowałem również folder workspace, który znajdował się na dysku C: i był wcześniej utworzony i skonfigurowany zgodnie ze sztuką pod tą wersję Eclipsa. Musiałem jeszcze zmienić ścieżki dostępu<br />dla avrdude i Toolchain, a żeby uruchamiany Eclipse z pendriva nie szukał, co mu potrzeba na dysku C: tylko na pendrive.<br /><br />Efekt jest taki, że po włożeniu pendrive do komputera, wejściu do folderu Eclipse i kliknięciu na wiadomą ikonę Eclipse startuje. Tworzą się projekty i wszystko śmiga. Oczywiście trochę wolniej i musi być usb 3.0. Na usb 2.0 jest kicha (wolno).<br /><br />Sprawdziłem na 3 kompach. Oczywiście muszą być zainstalowane na komputerach inne dodatki wymagane, czyli sterowniki do programatora, odpowiednie workspace i co tam jeszcze.<br /><br />Teraz mogę przenosić eclipse z pracy do domu i gdzie chce bez potrzeby instalacji.<br /><br />Co o tym myślicie ? Może sie przyda. Proszę przetestować i podzielić się spostrzeżeniami. Pozdrawiam. Robert.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10257">Robert_1967</a> — 29 sty 2026, o 15:20 — Odpowiedzi 3 — Wyświetlone 350</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2026-01-28T21:13:16+01:00</updated>
<published>2026-01-28T21:13:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24885&amp;p=239386#p239386</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24885&amp;p=239386#p239386"/>
<title type="html"><![CDATA[Projekty programistyczne • SunGo Project Manager  do VSCode]]></title>

<category term="Projekty programistyczne" scheme="https://forum.atnel.pl/viewforum.php?f=23" label="Projekty programistyczne"/>
<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24885&amp;p=239386#p239386"><![CDATA[
SunGo Project Manager v0.0.7 – Kompletne środowisko Go w Twoim VS Code!<br /><br />Cześć! Z radością ogłaszam wydanie wersji <strong>0.0.7</strong> mojego rozszerzenia SunGo. <br />To wydanie to milowy krok dla każdego, kto chce szybko i bezboleśnie tworzyć aplikacje w języku Go, <br />bez walki z terminalem i konfiguracją VS Code.<br /><br />UWAGA !!<br />W VS Code  powinieneś mieć też zainstalowaną wtyczkę oficjalną GO , oraz kompilator Go na komputerze<br /><br /><img src="https://forum.lothar-team.pl//ext/dmzx/imageupload/img-files/48/3442c7a/11215be/c65cd6b1d6ec815ffd8919d3b37db3b4.png" alt="Obrazek" /><br /><br />Co nowego w wersji <strong>0.0.7</strong>?<br /><br />Największą nowością jest funkcja BUILD! Od teraz SunGo to nie tylko pisanie i uruchamianie, to produkcja gotowych narzędzi<br />Wtyczka sama rozpoznaje w jakim pracujesz systemie Win/Lin/IOS i builduje aplikacje właściwe dla systemu w jakim pracujesz.<br />Ponadto wtyczka daje ci:<br /><br />** Jeden klik = Gotowy Program: Nowy przycisk na pasku statusu automatycznie kompiluje Twój kod.<br />** Porządek w plikach: Zapomnij o bałaganie. Skompilowane binarki trafiają prosto do folderu /bin.<br />** Inteligentne nazewnictwo: Wtyczka sama rozpoznaje nazwę Twojego projektu i tak nazywa plik .exe (na Windows) lub binarkę (na Linux/macOS).<br />** Diagnostyka na start: Dashboard w v0.0.6/0.0.7 automatycznie sprawdza, czy masz zainstalowane Go, GCC i Gita – jeśli czegoś brakuje, <br />SunGo Ci o tym powie!  (Gcc potrzebne dla np biblioteki raylib)<br /><br />* Wesprzyj rozwój projektu<br />Jeśli SunGo ułatwia Ci życie i oszczędza Twój czas, możesz postawić mi wirtualną kawę bezpośrednio z poziomu Dashboardu rozszerzenia.<br />Każda &quot;filiżanka&quot; to dodatkowa motywacja do dodawania nowych funkcji! <br /><br />* Jak zaktualizować?<br />Wtyczka powinna zaktualizować się automatycznie w Twoim VS Code. Jeśli jeszcze jej nie masz, szukaj &quot;SunGo&quot; w Marketplace!<br /><br />Do zobaczenia na forum i udanego kodowania! SunRiver<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 28 sty 2026, o 21:13 — Odpowiedzi 1 — Wyświetlone 284</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Aven154]]></name></author>
<updated>2026-01-27T13:43:46+01:00</updated>
<published>2026-01-27T13:43:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24882&amp;p=239383#p239383</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24882&amp;p=239383#p239383"/>
<title type="html"><![CDATA[Dział &quot;RYBNY&quot; • Problem z odbiorem radiowym przy niezależnym zasialniu]]></title>

<category term="Dział &quot;RYBNY&quot;" scheme="https://forum.atnel.pl/viewforum.php?f=30" label="Dział &quot;RYBNY&quot;"/>
<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24882&amp;p=239383#p239383"><![CDATA[
Witam Witam przeprowadziłem komunikację między odbiornikiem a najnikiem 433MHZ FS1000A wszystko działa sygnał poprawnie jest dekodowany wyświetlany na lcd. Natomiast problem pojawia się jak te układy działają na oddzielnym źródle zasilania odbiornik przestaje reagować na nadajnik niezależnie od długości trwania połówki bitu. Na zdjęciach przedstawiam jak to wygląda na oscyloskopie. Spotkał się ktoś z czymś podobnym lub ma rade co może być przyczyną <br /><strong>praca modułów na wspólnym zasilaniu</strong><br /><a href="https://obrazkiforum.atnel.pl/22247/4a7d4b7d16a3e2872b7268c45f04c7b0.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/22247/4a7d4b7d16a3e2872b7268c45f04c7b0.png" alt="Obrazek" /></a><br /><strong>Praca na oddzielnym zasilaniu</strong><br /><a href="https://obrazkiforum.atnel.pl/22247/42c55fed8ae21bdd8aad9b0a6adf6874.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/22247/42c55fed8ae21bdd8aad9b0a6adf6874.png" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=22247">Aven154</a> — 27 sty 2026, o 13:43 — Odpowiedzi 14 — Wyświetlone 683</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2026-01-02T20:36:19+01:00</updated>
<published>2026-01-02T20:36:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24880&amp;p=239375#p239375</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24880&amp;p=239375#p239375"/>
<title type="html"><![CDATA[Projekty sprzętowe • Taki sobie zegarek ...]]></title>

<category term="Projekty sprzętowe" scheme="https://forum.atnel.pl/viewforum.php?f=22" label="Projekty sprzętowe"/>
<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24880&amp;p=239375#p239375"><![CDATA[
Co du dużo pisać .....<br /><br /><div style="width: 583px; height: 471px; margin: 0 auto; padding-left: 26px; padding-top: 48px; background: url('https://www.atnel.pl/download/atnel_tv.png') no-repeat;"> <strong>iframe</strong> </div><br /><br />reszta informacji <!-- m --><a class="postlink" href="https://forum.lothar-team.pl/viewtopic.php?t=1086" >https://forum.lothar-team.pl/viewtopic.php?t=1086</a><!-- m --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 2 sty 2026, o 20:36 — Odpowiedzi 3 — Wyświetlone 531</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Roman70PLUS]]></name></author>
<updated>2025-12-22T11:56:40+01:00</updated>
<published>2025-12-22T11:56:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24879&amp;p=239361#p239361</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24879&amp;p=239361#p239361"/>
<title type="html"><![CDATA[Mikrokontrolery AVR • przerwania dla atmegi 8]]></title>

<category term="Mikrokontrolery AVR" scheme="https://forum.atnel.pl/viewforum.php?f=8" label="Mikrokontrolery AVR"/>
<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24879&amp;p=239361#p239361"><![CDATA[
Napisałem krótki kod dla atmegi 8 zastosowałem jak mniemam wszystkie wskazówki z BB i kursu C i poniższy kod nie daje się nawet skompilować. gdzie tkwi błąd ???/*<br /> * main.c<br /> *<br /> *  Created on: 16 gru 2025<br /> *      Author: Roman B<br /> */<br /><br />#include&lt;avr/io.h&gt;//plik nagłówkowy<br />#include&lt;avr/interrupt.h&gt;//plik przerwaań<br />#include&lt;util/delay.h&gt;<br /><br />int main(void){<br /><br />DDRC = 0b11111111;<br />PORTC = 0b11111110;<br /><br />DDRD = 0b11111111;<br />PORTD = 0b00000000;<br />// ustawienie TIMER0<br /><br />TCCR0 |= (1&lt;&lt;CS02)|(1&lt;&lt;CS00);<br />TCNT0 = 0;<br />TIMSK |= (1&lt;&lt;TOIE0);<br /><br />volatile uint16_t a = 0;<br /><br />sei ();<br />while(1)<br />{<br />PORTD = a;<br />}<br />}<br />ISR(TIMER0_OVF_vect);<br />{<br />a++;<br />}<br />Pozdrawiam <img src="https://forum.atnel.pl/images/smilies/icon_question.gif" alt=":?:" title="Znak zapytania" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=22273">Roman70PLUS</a> — 22 gru 2025, o 11:56 — Odpowiedzi 13 — Wyświetlone 1020</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2025-12-06T18:02:21+01:00</updated>
<published>2025-12-06T18:02:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24877&amp;p=239349#p239349</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24877&amp;p=239349#p239349"/>
<title type="html"><![CDATA[Luźne dyskusje • Wesołego mikołaja ...]]></title>

<category term="Luźne dyskusje" scheme="https://forum.atnel.pl/viewforum.php?f=24" label="Luźne dyskusje"/>
<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24877&amp;p=239349#p239349"><![CDATA[
Trochę dla hecy , trochę dla zabawy ....<br /><br />Życzenia mikołajkowe w Go .....<br /><br />Źródła dostępne tujtaj  <!-- m --><a class="postlink" href="https://forum.lothar-team.pl//viewtopic.php?p=3367#p3367" >https://forum.lothar-team.pl//viewtopic ... 3367#p3367</a><!-- m -->  <br /><br />Wersja skompilowana dla windows w załączniku , miłego oglądania<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 6 gru 2025, o 18:02 — Odpowiedzi 0 — Wyświetlone 481</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Aven154]]></name></author>
<updated>2025-12-04T16:36:51+01:00</updated>
<published>2025-12-04T16:36:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24876&amp;p=239346#p239346</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24876&amp;p=239346#p239346"/>
<title type="html"><![CDATA[Dział &quot;RYBNY&quot; • Problem z odczytaniem sygnału z odbiornika 433MHz]]></title>

<category term="Dział &quot;RYBNY&quot;" scheme="https://forum.atnel.pl/viewforum.php?f=30" label="Dział &quot;RYBNY&quot;"/>
<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24876&amp;p=239346#p239346"><![CDATA[
Witam mam problem z kodem a mianowicie to tak Atmega32 interpretuje odebrany sygnał przerabiając kod z green booka chciałem uzyskać na nadajniku preambułę&gt;przerwę&gt;bajt danych co mi się udało co widać na zdjęciu. Natomiast nie potrafię za żadne skarby wyświetlić tego bajtu na lcd jedyne co otrzymuję to wszystko tylko nie wysłany bajt. Koniecznie potrzebuję to w okrojonej formie czyt.preambułę&gt;przerwę&gt;bajt bo potrzebuję tego do szkoły jeśli znajdzie się jakaś miła duszyczka co mi w tym pomoże jestem w stanie odwdzięczyć się za pomoc. Poniżej wklejam kawałki kodu<br />Nadajnik<br />[syntax=c]while(1) {//ciągle wysyłanie do ponownego brejka przyciskiem<br />//wysłanie preambuły<br />man_sync(0);<br />//man_send_byte(9, 1); -----//orginalne<br />man_send_byte(9,1);<br />//wyslanie ramki z bajtem =9; toogle = 1<br />RADIO_OFF;<br /><br />mk_delay_ms(1000);<br />if(brejk) break;<br />}[/syntax]<br />Odbiornik<br />[syntax=c]ISR(TIMER1_CAPT_vect) {<br />// zmienne na potrzeby obs�ugi przerwania<br />static uint16_t LastCapture;<br />uint16_t PulseWidth;<br />static uint8_t IrPulseCount;<br />static uint32_t IrData;<br />static enum STAT { FRAME_RESTART, FRAME_OK } frame_status;<br />/*uint8_t tbit=0;<br />uint8_t nbajt=0;*/<br />static uint8_t mancnt;<br />//static uint8_t last_toggle;<br /><br />PulseWidth = ICR1 - LastCapture;// pomiar impulsu<br />LastCapture = ICR1;<br /><br />TCCR1B ^= (1&lt;&lt;ICES1);// zmiana zbocza wyzwalaj�cego na przeciwne<br /><br />// gdy czas by� d�u�szy ni� MAX_BIT - pocz�tek ramki danych<br />if (PulseWidth &gt; MAX_BIT )<br />mancnt = 0;<br /><br />// zainicjowanie odbioru ramki danych<br />if (mancnt == 0) {<br />IrData = 0;<br />IrPulseCount = 0;<br />//TCCR1B |= (1&lt;&lt;ICES1);<br />mancnt++;<br />frame_status = FRAME_OK;<br />}<br />else<br />if (frame_status == FRAME_OK) {<br />// gdy zak��cenia (szpilki) - RESTART<br />if ( PulseWidth &lt; MIN_HALF_BIT ) frame_status = FRAME_RESTART;<br /><br />// gdy b��d ramki danych (mo�e inny standard ni� RC5) RESTART<br />if ( PulseWidth &gt; MAX_BIT ) frame_status = FRAME_RESTART;<br /><br />if (frame_status == FRAME_OK) {<br /><br />// mo�na w��czy� aby zobaczy� miganie diody LED<br />// gdy pracuje przerwanie w trakcie pojawiaj�cych<br />// si� szum�w na wej�ciu odbiornika<br />//PORTB ^= (1&lt;&lt;PB6);____________________________________________________________________<br /><br />// zwi�kszamy licznik gdy czas d�u�szy ni� HALF_BIT<br />// aby zawsze reagowa� na �rodkowe zbocze<br />if (PulseWidth &gt; MAX_HALF_BIT) mancnt++;<br /><br />if ( (mancnt % 2) == 0 ) {<br /><br />IrData = IrData &lt;&lt; 1;// przesuwamy bity w lewo<br />// je�li zbocze narastaj�ce to bit = 1<br />if ( (TCCR1B &amp; (1&lt;&lt;ICES1)) ) IrData |= 0x0001;<br /><br />IrPulseCount++;// zwi�kszamy licznik odebranych bit�w<br />if (IrPulseCount == 8){// je�li odebrano pe�n� ramk�<br />//napewno 23 ?????????????????????????????????????????????????????????????????????????????<br />// je�li u�ytkownik obs�u�y� ju� poprzedni� ramk�<br />if (Manchester_flag == 0){<br /><br />bajt = IrData &amp; 0xFF;// w�a�ciwy bajt danych<br />if (bajt != 0) {<br />            Manchester_flag = 1;<br />        } else {<br />             // Jeśli odebrano 0 (preambułę), traktujemy to jako restart szukania<br />             // żeby nie blokować flagi dla właściwych danych<br />             frame_status = FRAME_RESTART;<br />        }<br />}<br />}<br /><br />// restart odbioru po zako�czeniu dekodowania ramki<br /><br />}<br /><br />mancnt++;<br />}<br />}[/syntax]<br /><br /><br /> <a href="https://obrazkiforum.atnel.pl/22247/fe344a8a7ddcdf469b4ef88d42eb78a9.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/22247/fe344a8a7ddcdf469b4ef88d42eb78a9.png" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=22247">Aven154</a> — 4 gru 2025, o 16:36 — Odpowiedzi 8 — Wyświetlone 913</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mocartp]]></name></author>
<updated>2025-12-03T18:40:54+01:00</updated>
<published>2025-12-03T18:40:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24875&amp;p=239345#p239345</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24875&amp;p=239345#p239345"/>
<title type="html"><![CDATA[Język C dla AVR • Programowanie Wifi przez FOTA]]></title>

<category term="Język C dla AVR" scheme="https://forum.atnel.pl/viewforum.php?f=4" label="Język C dla AVR"/>
<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24875&amp;p=239345#p239345"><![CDATA[
Witam.<br />Szukam pomocy w rozumieniu metody komunikacji i wgrywania wsadu przy pomocy FOTA.<br />Program Mirka   AtnelWiFiTools ma taką możliwość. Chodzi mi o zrozumienie może takie schematyczne  jak modół ESP 8266 musi być podłączony i wjakiej kofiguracji żeby było możliwe wgranie wsadu do w/w <br />ESP?<br />A następnie jak ustawić adresty i porty w AtnelWiFiTools może na początek poproszę o schemat blokowy gdzie powinien być zalogowany ESP. Posiadam na pokładzie zakupione właśnie ATNEL WIFI ESP i modóły z firmware ATNELA<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=20685">mocartp</a> — 3 gru 2025, o 18:40 — Odpowiedzi 2 — Wyświetlone 546</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2025-11-27T16:25:25+01:00</updated>
<published>2025-11-27T16:25:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24874&amp;p=239344#p239344</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24874&amp;p=239344#p239344"/>
<title type="html"><![CDATA[Luźne dyskusje • Zapraszam do wspólnej zabawy ...]]></title>

<category term="Luźne dyskusje" scheme="https://forum.atnel.pl/viewforum.php?f=24" label="Luźne dyskusje"/>
<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24874&amp;p=239344#p239344"><![CDATA[
Jaki masz pomysł? – Napiszmy to wspólnie w Go!  <br /><br /><br /><br />Hej, miłośnicy klawiatury i kreatywnego kodu!<br />Macie pomysł na genialny program, który zmieni świat… albo przynajmniej Twój komputer? <br />A może od dawna marzysz, żeby napisać coś w Go, ale samodzielnie brakuje Ci odwagi… albo kubka czy dwóch kawy? <br /><br />Mam dla Ciebie rozwiązanie: „Jaki masz pomysł? – Napiszmy to wspólnie w Go!”<br /><br /><a href="https://forum.lothar-team.pl/viewtopic.php?t=1076"  class="postlink">https://forum.lothar-team.pl/viewtopic.php?t=1076</a><br /><br />Nie ważne, czy Twój pomysł to kosmiczny kalkulator, wirtualny piesek, czy generator losowych wymówek <br />Go jest gotowe na wszystko.Dołącz do akcji, bo programowanie w grupie jest jak pizza <br />– zawsze lepsze, gdy się dzieli. <br /><br />Gotowi? Zaczynamy! Pokażmy światu, że w Go siła jest nie tylko w goroutines… ale też w dobrej zabawie! <br /><br />Z takich pomysłów powstały już na naszym forum:<br /><br /><!-- m --><a class="postlink" href="https://forum.lothar-team.pl/viewtopic.php?t=1062" >https://forum.lothar-team.pl/viewtopic.php?t=1062</a><!-- m --><br /><!-- m --><a class="postlink" href="https://forum.lothar-team.pl/viewtopic.php?t=1075" >https://forum.lothar-team.pl/viewtopic.php?t=1075</a><!-- m --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 27 lis 2025, o 16:25 — Odpowiedzi 0 — Wyświetlone 329</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[slawekslom]]></name></author>
<updated>2025-11-25T12:21:35+01:00</updated>
<published>2025-11-25T12:21:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24871&amp;p=239335#p239335</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24871&amp;p=239335#p239335"/>
<title type="html"><![CDATA[Luźne dyskusje • Przywitanie]]></title>

<category term="Luźne dyskusje" scheme="https://forum.atnel.pl/viewforum.php?f=24" label="Luźne dyskusje"/>
<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24871&amp;p=239335#p239335"><![CDATA[
Witam wszystkich<br /><br />Jestem nowym użytkownikiem forum<br />Będzie mnie przede wszystkim interesowała<br />sprawa Home Assistant<br /><br />Jeszcze raz WITAM<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=22006">slawekslom</a> — 25 lis 2025, o 12:21 — Odpowiedzi 0 — Wyświetlone 230</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[miki54]]></name></author>
<updated>2025-11-21T14:09:53+01:00</updated>
<published>2025-11-21T14:09:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24870&amp;p=239332#p239332</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24870&amp;p=239332#p239332"/>
<title type="html"><![CDATA[Arduino C++ • Jak Sterować przekażnikiem z świata]]></title>

<category term="Arduino C++" scheme="https://forum.atnel.pl/viewforum.php?f=47" label="Arduino C++"/>
<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24870&amp;p=239332#p239332"><![CDATA[
Witam <br />Chciałbym sterować ośmioma przekażnikami za pomocą ESP32 przez wifi <br />poza siecią lokalną z androida  telefonu<br />Jak tego dokonać w możliwie prosty sposób ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=22263">miki54</a> — 21 lis 2025, o 14:09 — Odpowiedzi 3 — Wyświetlone 629</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2025-11-08T18:45:34+01:00</updated>
<published>2025-11-08T18:45:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24869&amp;p=239330#p239330</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24869&amp;p=239330#p239330"/>
<title type="html"><![CDATA[Programowanie w innych językach • Golang -- Moje droga ....]]></title>

<category term="Programowanie w innych językach" scheme="https://forum.atnel.pl/viewforum.php?f=61" label="Programowanie w innych językach"/>
<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24869&amp;p=239330#p239330"><![CDATA[
Jakiś czas już programuje w Go, stworzyłem kilka projektów i kilka mniej lub bardziej użytecznych programików.<br />osobiście zdecydowanie jestem już poza etapem juniora , teraz zbliżam się do etapu senior, oczywiście żaden ze mnie guru <br />wciąż się uczę i choc swobodnie przenoszę na kod nie tylko swoje pomysły,  to wciąż wiele nauki przede mną. Niemniej jest to już <br />taki etap w którym mogę sobie pozwolić na pewne przemyślenia czyli jak zaczyna się każda<strong><em> gołowa</em></strong> przygoda ...<br /><br />Na początku jest cisza ............  wstawiłbym tu jakiś &quot;silence box&quot; w środku ciemnego lasu ......................<br />Mam oto nowy projekt, w nim pusty plik main.go i serce pełne entuzjazmu.<br />Ładuję przykładowy program &gt; słynne Hello World &lt;&lt; patrząc na magiczne napisy ....<br />Otwieram terminal, wpisuję magiczne go run . Czuję się jak czarodziej.... <br />I nagle otwiera się portal nowych możliwości i magii i właśnie odkryłem magiczną formułę -  fmt.Println().<br /><br />Potem przychodzi czas na napisanie czegokolwiek .....  <br /><br /><br /><strong>Etap 1: Odkrywca</strong><br /><br />„Wow! Goroutines! To jak wątek, tylko szybszy!”<br /><br /><br />[syntax=c]for i := 0; i &lt; 10; i++ {<br />go fmt.Println(&quot;Witaj z goroutine&quot;, i)<br />}[/syntax]<br /><br /><br /><strong>Komentarz:</strong>  Hura działa!<br />A potem.... nie działa.<br />A potem działa....  z kolejnością 9, 2, 5, 0, 7, 1… i nie wiem, dlaczego.<br />To Go uczy mnie pierwszej lekcji: „deterministyczność jest dla słabych.”<br /><br /><strong>Etap 2: Optymista</strong><br /><br />„Nie potrzebuję sync.WaitGroup, ja czuję, kiedy goroutine się skończy.”<br /><br /><br />[syntax=c]go doSomething()<br />fmt.Println(&quot;Gotowe!&quot;)[/syntax]<br /><br /><br /><strong>Komentarz:</strong> fiuuu  i w sumie gotowe… tylko doSomething() jeszcze trwa... trwa... trwa ....<br />to właśnie pierwszy kontakt z asynchronią.<br />i pierwsze zwątpienie w człowieczeństwo.<br /><br /><strong>Etap 3: Panikujący</strong><br /><br />„Nie wiem, czemu się zawiesiło, ale spróbuję to naprawić… close(ch)?”<br /><br /><br />[syntax=c]for v := range ch {<br />fmt.Println(v)<br />}<br />close(ch)[/syntax]<br /><br /><br /><strong>Komentarz: </strong>panic: close of closed channel ...... Co jest przecież dobrze napisałem ...<br />I tak poznaje drugą brutalną zasadę Go:<br />Kanały są jak związki — zamyka tylko ten, kto wysyła.<br /><br /><strong>Etap 4: Debugger z modlitwą</strong><br /><br />„Nie wiem, co się dzieje, więc dodałem fmt.Println(&quot;tu&quot;).”<br /><br /><br />[syntax=c]fmt.Println(&quot;1&quot;)<br />go doStuff()<br />fmt.Println(&quot;2&quot;)<br />fmt.Println(&quot;3&quot;)[/syntax]<br /><br /><strong>Komentarz: </strong>i nagle logi zaczynają żyć własnym życiem. Jakby coś opętało mój program ....<br />Widzisz „1”, potem „3”, potem panikę.<br />Moje fmt.Println stają się dla mnie religią.<br />To nic że logi przypominają hieroglify, ale przynajmniej coś się dzieje.<br /><br /><strong>Etap 5: Eksperymentator</strong><br /><br />„Słyszałem, że można użyć contextu. To pewnie coś fajnego.”<br /><br /><br />[syntax=c]ctx, cancel := context.WithCancel(context.Background())<br />go func() {<br />doSomething(ctx)<br />}()<br />defer cancel()[/syntax]<br /><br /><br /><strong>Komentarz:</strong> Wygląda profesjonalnie.<br />Nie mam absolutnie pojęcia, co to robi .....<br />Ale.... wygląda profesjonalnie.<br /><br /><strong>Etap 6: Tester przez przypadek</strong><br /><br />„Nie planowałem testów, ale go test i tak się odpaliło.”<br /><br /><br />[syntax=c]func TestMagic(t *testing.T) {<br />   if 2+2 != 5 {<br />       t.Fatal(&quot;czemu?&quot;)<br />   }<br />}[/syntax]<br /><br /><br /><strong>Komentarz: </strong> Pierwszy czerwony test.<br />Pierwsze t.Fatal().<br />Pierwsze przeczucie, że życie to pasmo niekończących się refaktorów.<br /><br /><strong>Etap 7: Pokora</strong><br /><br />„Nie wiem, czemu to działa. Ale działa.”<br /><br />[syntax=c]if err != nil {<br />  panic(err)<br />}[/syntax]<br /><br /><br /><strong>Komentarz:</strong>  to zdecydowanie najczęściej kopiowany fragment kodu w karierze każdego juniora.<br />Wiem już, że Go nie wybacza, ale nagradza za prostotę.<br />Zaczynam rozumieć: „im mniej magii, tym mniej bólu.”<br /><br /><strong>Podsumoiwanie etapu .... </strong><br /><br />W pewnym momencie, docieram wreszcie do etapu gdy  Go przestaje mnie zaskakiwać —<br />bo zaczyna mnie wychowywać. Z można powiedzieć uporem maniaka uczy cierpliwości, dyscypliny i tego, że:<br />- nil to nie wróg, tylko niezrozumiany przyjaciel,<br />- goroutine leak to po prostu sposób, w jaki runtime mówi „zrób przerwę”,<br />- a go vet to takie twoje lepsze ja, lub surowsze sumienie.<br />- i jeśli coś działa — nie pytaj dlaczego, tylko zrób commit.<br /><br />Dociera do mnie, że każdy senior kiedyś był juniorem.<br />Tylko...  niektórzy lepiej ukrywają swoje pierwsze panic(). <br />I wiem już, że powoli, powoli staję się seniorem,<br />Bo moje TODO brzmi już nie jak plan,<br />ale jak pożegnanie.<br /><br />Tymczasem znów minęło kilka miesięcy i kilkadziesiąt kodów i projektów za mną.  zaliczam kolejny etap .... <br />tu wydaje mi się, że moje przemyślenia mogą być już znacznie głębsze bardziej pewne siebie .... ale .... to tylko złudzenie, <br />to  etap przejściowy pomiędzy naiwnym entuzjazmem, a cynicznym spokojem.<br />To moment, gdy wiem już, że Go nie wybacza… ale,  nadal próbuję z nim dyskutować.  A co .... przecież jestem mądrzejszy ... prawda ?<br /><br /><strong>„jeszcze walczę, ale już wiem, z czym”</strong><br /><br />Mam już dawno za sobą pierwszego panika, kilka race condition i jeden tajemniczy deadlock, który....  „zniknął sam” --&gt; magia ? , a może ingerencja obcych ? <br />Znam context, sync, interface{} i wierzę szczerze, że umiem je kontrolować. Tymczasem to w brew temu co się wydaje, to najniebezpieczniejszy etap kariery w Go...<br />na etapie MID --- wszystko się nam tylko wydaje  .....<br /><br /><strong>Etap 1: Mam misję ...</strong><br /><br />„Napisałem własny framework, bo standardowa biblioteka jest zbyt prosta.”<br /><br /><br />[syntax=c]func HandleRequest(req *Request) Response {<br />mw := &#91;&#93;Middleware{Log, Auth, RateLimit, Recover}<br />return Chain(mw...)(req)<br />}[/syntax]<br /><br />Wygląda świetnie.<br />Działa… dopóki .... nie działa.<br />Zaczynam wierzyć, że prostota jest przereklamowana, że to taki chwyt marketingowy .....<br />Do czasu..... aż nil pointer przypomina mi brutalnie, skąd przyszedł.<br /><br /><strong>Etap 2: Władca Goroutines</strong><br /><br />„Używam errgroup — jestem profesjonalistą.”<br /><br /><br />[syntax=c]g, ctx := errgroup.WithContext(context.Background())<br /><br />for _, job := range jobs {<br />   job := job<br />   g.Go(func() error {<br />       return job.Run(ctx)<br />    })<br />}<br /><br />if err := g.Wait(); err != nil {<br />     log.Println(&quot;błąd grupy:&quot;, err)<br />}[/syntax]<br /><br />Mam pełną kontrolę nad współbieżnością. To cudowne uczucie ... jestem bogiem ...<br />Do momentu, gdy ktoś dorzucił go func() w środku job.Run()…<br />i nagle moja cudowna grupa robi się bardziej anarchiczna niż zorganizowana.<br />Koszmar z przed miesięcy powraca ....<br /><br /><strong>Etap 3: Ekspert od błędów</strong><br /><br />„Używam errors.Join, bo tak jest nowocześnie.”<br /><br /><br />[syntax=c]err := errors.Join(dbErr, cacheErr, apiErr)<br />if err != nil {<br />log.Println(&quot;kombinowany błąd:&quot;, err)<br />}[/syntax]<br /><br /><br />Teraz mam jeden błąd,   błąd który zawiera trzy błędy, które zawierają jeden główny błąd — brak sensu.<br />Ale... przynajmniej jest idiomatyczne... <br /><br /><strong>Etap 4: Refaktorysta</strong><br /><br />„Nie podoba mi się context.Context – napiszę własny.”<br /><br /><br />[syntax=c]type MyContext struct {<br />Done chan struct{}<br />Data map&#91;string&#93;any<br />}[/syntax]<br /><br /><br />Nie podobał mi się globalny context, więc stworzyłem potwora - taki lokalny problem globalny .<br />Mogę sobie pogratulować  – od teraz jestem oficjalnie Go-midem.  Mogę sobie przyznać order z ziemniaka...<br /><br /><strong>Etap 5: Tester z misją</strong><br /><br />„Pokrycie testami 90%! Tylko.... nikt nie wie, co testują.”<br /><br />[syntax=c]func TestSomething(t *testing.T) {<br />got := DoIt()<br />want := DoIt()<br />if got != want {<br />t.Errorf(&quot;expected %v, got %v&quot;, want, got)<br />}<br />}[/syntax]<br /><br /><br />Nie, nie to nie jest żaden test, to dialog między dwiema kopiami tej samej funkcji.<br />Ale w raporcie CI wygląda pięknie.<br /><br /><strong>Etap 6: Filozof runtime’u</strong><br /><br />„Nie wiem, kto odpala te goroutines, ale najwyraźniej są szczęśliwe.”<br /><br /><br />[syntax=c]for {<br />go doBackgroundTask()<br />time.Sleep(time.Second)<br />}[/syntax]<br /><br /><br />Mam goroutines, które żyją dłużej niż niektóre projekty, mówi się , że przetrwają ludzkość ....<br />Wiem, że to źle, ale… przecież runtime się nie skarży.<br /><br /><strong>Etap 7: Pragmatyczny zen</strong><br /><br />„To nie bug, to emergentne zachowanie systemu.”<br /><br /><br />[syntax=c]select {<br />case &lt;-ctx.Done():<br />return<br />default:<br />// żyj chwilą<br />}[/syntax]<br /><br /><br />Nie szukam już doskonałości, jestem nią .... <br />Teraz poszukuję równowagi.<br />Bo już wiem, że Go to nie język programowania – to styl życia.<br /><br /><strong>Podsumowanie tego etapu </strong><br /><br />Mid to stan przejściowy między „chcę wszystko przepisać”, a „niczego nie dotykam, bo działa.”  <br />To moment, w którym zaczynam wreszcie rozumieć, że idiomatyczne Go to nie reguły — to proces dojrzewania.<br /><br />Ale znów mija kilka miesięcy i klika projektów i programów mniej więcej znajduję się tu teraz. <br />Czyli w miejscu z którego wyraźnie widać jak z czasem zmienia się moje if err != nil<br /><br /><strong>Etap 1: Idealista</strong><br /><br />„Każdy błąd musi mieć sens.”<br /><br /><br />[syntax=c]if err != nil {<br />return fmt.Errorf(&quot;nie udało się wczytać pliku: %w&quot;, err)<br />}[/syntax]<br /><br /><br />Czysto, pięknie, zgodnie z konwencją.<br />Właściwie to jestem dumą dla każdej codereview.<br /><br /><strong>Etap 2: Pragmatyk</strong><br /><br />„Nie ma co przesadzać.”<br /><br />[syntax=c]if err != nil {<br />return err<br />}[/syntax]<br /><br />Minimalizm absolutny...<br />Mniej słów, więcej spokoju.<br />Wreszcie pojawia się zen.<br /><br /><strong>Etap 3: Realista</strong><br /><br />„Nie wiem, czemu znowu nie działa, ale lognę.”<br /><br /><br />[syntax=c]if err != nil {<br />log.Println(&quot;coś poszło nie tak:&quot;, err)<br />}[/syntax]<br /><br /><br />Nie naprawiam  – obserwuję.<br />To już nie jest zwykły błąd, to informacja zwrotna od wszechświata.<br /><br /><strong>Etap 4: Filozof</strong><br /><br />„Nie ma błędów, są tylko ścieżki alternatywne.”<br /><br />[syntax=c]_ = doSomething()[/syntax]<br /><br />Cisza....<br />Żadnych logów, żadnych błędów.....<br />Osiągnąłem nirwanę !!!<br /><br /><strong>Etap 5: Senior</strong><br /><br />„if err != nil { this is fine }”<br /><br />[syntax=c]if err != nil {<br />// TODO: naprawić kiedyś  (fajnie to wygląda w kodzie nie?  Gufim?) <br />}[/syntax]<br /><br />Znam wszystkie bugi, ale żyję z nimi w harmonii.,,<br />Wiem, że stabilność projektu to stan umysłu....<br /><br /><strong>Epilog Epilogu</strong><br /><br />Go nauczył mnie:<br />-- popełniać błędy idiomatycznie,<br />-- potrafię napisać od ręki taki race condition, którego nawet go vet się nie spodziewa,<br />-- zdaję sobie sprawę , że context to nie tylko „kontekst” — to stan emocjonalny programisty.<br />-- perfekcja jest przereklamowana,<br />-- umiem pisać funkcje bez argumentów, które ....  i tak zwracają błędy.<br />-- umiem perfekcyjnie użyć sync.WaitGroup, żeby poczekać...  poczekać na coś, co już się zawiesiło.<br />-- umiem zrobić slice, taki specjalny slice,  który dzieli pamięć z trzech innych slice’ów, a każdy z nich zmienia coś innego.<br />-- dokumentacja to też kod,<br />-- a panic() ?  to tylko manifest pasji. <br />-- i przede wszystkim: wiem, że := <strong>to broń masowego shadowingu.</strong><br /><br /><br />Pozostaje mi jeszcze jeden etap. Etap w którym zapewne odkryję wejście do Narni , albo Matrixa , ale na pewno się podzielę z wami<br />moimi przemyśleniami ...    w tej chwili na pewno możecie zapamiętać te kilka zasad , choć bardziej nazwałbym to:<br /><br />Objawione prawdy Go !!!!<br /><br />---&gt; <em>panic()</em> nie rozwiązuje problemów, ale przynajmniej robi je głośnymi.<br />---&gt; <em>context.WithTimeou</em>t zawsze wygasa wtedy, gdy właśnie zaczyna działać.<br />---&gt; <em>go fmt </em>nie naprawi Twojego życia, ale sprawi, że będzie wyglądało schludnie.<br />---&gt; <em>defer</em> jest jak obietnica — złożona przez kogoś, kto już dawno odszedł z projektu.<br />---&gt; <em>interface{}</em> to taki wieeeeeeeeellllllki worek — wszystko się zmieści, ale potem nikt nie wie, co tam jest i po co.<br />---&gt; <em>errgroup </em>to świetny sposób na współdzieloną katastrofę.<br />---&gt; <em>„idiomatyczne Go”</em> znaczy: „napisz tak, żeby nie dało się tego poprawić bez flame waru na GitHubie.”<br />Na koniec zostaje nam <em>nil...</em>,  a nil... nil zawsze czeka.  <br /><br />Na ciąg dalszy przyjdzie jeszcze poczekać… droga przede mną długa. Ale myślę, że to dobry moment na morał – nie tylko z tej opowieści, <br />ale z całego materiału w <a href="https://forum.lothar-team.pl//viewforum.php?f=134"  class="postlink">&gt;&gt;&gt; cookbooku &lt;&lt;&lt;</a>. Coś, do czego warto wracać. <br /><br />Nowy język kusi i ekscytuje, ale droga do mistrzostwa w Go bywa męcząca. Relacja z nim jest trudna, choć jego prostota bije po oczach niczym LED-y w starym gracie.<br /><br />Go nie jest sexy – ale jak każda zdrowa relacja, daje stabilność.<br />W Go nie chodzi o klasę, tylko o package main.<br />Nie chodzi w nim o dziedziczenie, tylko o kompozycję cierpliwości i logów.<br /><br />A jeśli kiedyś Twoje go build przejdzie za pierwszym razem…  --- sprawdź, czy na pewno jesteś w dobrym katalogu. <br /><br />Go to język dla tych, którzy chcą zbudować coś, co przetrwa. I w tym – w prostocie i cierpliwości – kryje się jego piękno.<br /><br />Zapamiętaj, młody padawanie Go:<br /><br />Kiedy patrzysz w goroutine,<br />goroutine patrzy w Ciebie.<br />Przyszłość widzi Twą – a jasna ona nie jest…<br />Nie wszystkie one znikną. Niektóre z nich są niemal nieśmiertelne.<br />Zostaną na długo po Tobie ..... <br /><br />,  a nil ??   .... wciąż czeka ...... <br /><br />Więcej .... znajdziecie <a href="https://forum.lothar-team.pl/viewforum.php?f=123"  class="postlink">&gt;&gt;&gt; tutaj &lt;&lt;&lt;</a>przyjaciele ...  zapraszam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 8 lis 2025, o 18:45 — Odpowiedzi 0 — Wyświetlone 919</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[frank75]]></name></author>
<updated>2025-11-07T19:44:00+01:00</updated>
<published>2025-11-07T19:44:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24864&amp;p=239327#p239327</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24864&amp;p=239327#p239327"/>
<title type="html"><![CDATA[Zestawy uruchomieniowe ATB • Zestaw ATB 1.05a i mkbootloader3]]></title>

<category term="Zestawy uruchomieniowe ATB" scheme="https://forum.atnel.pl/viewforum.php?f=3" label="Zestawy uruchomieniowe ATB"/>
<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24864&amp;p=239327#p239327"><![CDATA[
Wydaje mi się, że robię wszystko dobrze. <br /><br />Ustawiam fusebity zgodnie z poradnikami Mirka i za pomocą MKAvrCalculator-a.<br />Programuję je przez wbudowany w zestaw atb-usbasp.<br />Wchodzę do mkbootloader-a. Wybieram właściwego Atmega32. Generuję wsad, kompiluję i wgrywam. Testuję BLS Info. Pokazuje tak jak powinno.<br />Wchodzę do MKClipse. Kompiluję najprostszego Blink-a, wybieram wgrywanie przez MKBoot RS232. I program się wgrywa. Widać, że działa.<br />Ale przy ponownym załadowaniu przez mkbootloader już tego nie chce zrobić.<br />Gdzie szukać problemu?<br /><br />Pozdrawiam,<br />frank75<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=16495">frank75</a> — 7 lis 2025, o 19:44 — Odpowiedzi 3 — Wyświetlone 410</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zainalara]]></name></author>
<updated>2025-11-05T10:33:58+01:00</updated>
<published>2025-11-05T10:33:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24863&amp;p=239325#p239325</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24863&amp;p=239325#p239325"/>
<title type="html"><![CDATA[Projektowanie PCB • Correct connection of analog and digital ground]]></title>

<category term="Projektowanie PCB" scheme="https://forum.atnel.pl/viewforum.php?f=52" label="Projektowanie PCB"/>
<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24863&amp;p=239325#p239325"><![CDATA[
Hello everyone<br />. The heart of the circuit is an ATmega32 microcontroller. One of the functions of my circuit is to measure voltage using an ADC and a resistor divider R7 and R8, as shown in the attached drawing.<br />I decided to separate the analog and digital grounds. I placed a digital ground across the entire board, but the analog ground is located only under the microcontroller's ADC port and the resistor divider, as shown in the attached drawing. Of course, I routed the voltage to the AVCC pin through a 10uH choke.<br /><br />The analog and digital grounds are connected at a single point via resistor R30 - 0R.<br /><br />My question to experienced colleagues is: was it a good idea to separate the analog ground this way, or would it be better to place just one ground across the entire PCB and not separate the analog and digital grounds? What do you think about this solution?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=22266">zainalara</a> — 5 lis 2025, o 10:33 — Odpowiedzi 1 — Wyświetlone 279</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2025-10-31T22:29:20+01:00</updated>
<published>2025-10-31T22:29:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24862&amp;p=239323#p239323</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24862&amp;p=239323#p239323"/>
<title type="html"><![CDATA[Projekty programistyczne • TTF_to_C_Array]]></title>

<category term="Projekty programistyczne" scheme="https://forum.atnel.pl/viewforum.php?f=23" label="Projekty programistyczne"/>
<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24862&amp;p=239323#p239323"><![CDATA[
Sun &amp; Gufim - TTF to C Array<br />TTF_to_C_array – narzędzie napisane w języku Go do konwersji czcionek .TTF na tablice C (uint8_t / uint16_t) <br />z podglądem i eksportem do plików .h.<br /><br />Funkcje<br />Wczytywanie czcionek TrueType (.TTF).<br />Generowanie tablic bitmapowych 8-bitowych i 16-bitowych w formacie C.<br />Podgląd wybranych znaków w wybranym rozmiarze.<br />Zapis wygenerowanych tablic do plików .h w katalogu tabliceFontow.<br />Automatyczne nadawanie nazw tablic i plików na podstawie nazwy czcionki i rozmiaru.<br />Kontrola powiększenia podglądu (zoom) z ograniczeniem do rozmiaru okna.<br /><br /><br /><img src="https://forum.lothar-team.pl//ext/dmzx/imageupload/img-files/54/bdfeae5/b53f5a6/f52bbb135c2f425afba0136bf6b4e703.png" alt="Obrazek" /><br /><br /><img src="https://forum.lothar-team.pl//ext/dmzx/imageupload/img-files/48/eee7a58/4bea2a8/96b4409cfd1e5306b5aba56dd20bbd26.png" alt="Obrazek" /><br /><br />Reszta dostępna na moim forum <!-- m --><a class="postlink" href="https://forum.lothar-team.pl/viewtopic.php?t=1062" >https://forum.lothar-team.pl/viewtopic.php?t=1062</a><!-- m --><br /><br />--&gt; program automatycznie tworzy folder tabliceFontów i w nim zapisuje ustawienia i pliki .h<br /><br />Wersja skompilowana dla Linuxa i Windowsa dostępne  <a href="https://forum.lothar-team.pl/viewtopic.php?t=1062"  class="postlink">TUTAJ</a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 31 paź 2025, o 22:29 — Odpowiedzi 1 — Wyświetlone 441</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[AKSELINEK]]></name></author>
<updated>2025-10-26T22:28:04+01:00</updated>
<published>2025-10-26T22:28:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24861&amp;p=239319#p239319</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24861&amp;p=239319#p239319"/>
<title type="html"><![CDATA[Mikrokontrolery AVR • Maksymalna wartość liczby dla for]]></title>

<category term="Mikrokontrolery AVR" scheme="https://forum.atnel.pl/viewforum.php?f=8" label="Mikrokontrolery AVR"/>
<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24861&amp;p=239319#p239319"><![CDATA[
Chciałem zapytać jak jest masymalna wartość liczby dla pętli for? <br />Potrzebuję aby około 4 milionów razy się wykonała.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18152">AKSELINEK</a> — 26 paź 2025, o 22:28 — Odpowiedzi 1 — Wyświetlone 422</p><hr />
]]></content>
</entry>
</feed>