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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2018-10-09T21:55:41+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=21332&amp;mode</id>
<entry>
<author><name><![CDATA[AKSELINEK]]></name></author>
<updated>2018-10-09T21:55:41+01:00</updated>
<published>2018-10-09T21:55:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21332&amp;p=212459#p212459</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21332&amp;p=212459#p212459"/>
<title type="html"><![CDATA[Re: Jak prościej napisać funkcję]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21332&amp;p=212459#p212459"><![CDATA[
Może metoda jest pół okrężna , bo nie chodzi tu tylko o przypadkowe czasy (chociaż tak może to wyglądać) , ale zwróć uwagę że analizę rozpocząłem od 13 impulsu na w/w porównaniu graficznym .<br />Zwróć uwagę że np. cyfra 1 ma w 16 i 20 impulsie krótki czas  i ten krótki czas określa które segmenty świecą(czyli B i C) - cały wyświetlacz składa się 7 segmentów .<br />Dla porównania cyfra osiem ma zaświecone wszystkie segmenty czyli 7 i impulsów krótkich na porównaniu graficznym jest dokładnie 7 , a cyfra dziewięć ma jeden zaświecony segment mniej i tak samo<br />odpowiednio jest 6, wróć na to uwagę bo w tym porównaniu to fajnie widać.<br /><br /><a href="https://obrazkiforum.atnel.pl/18152/2bca9bfe8787101ee9623a260c516b9a.jpg"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/18152/2bca9bfe8787101ee9623a260c516b9a.jpg" alt="Obrazek" /></a><br /><br />Ciesze się że zainteresowałeś się tematem , czy zgodzisz się ze mną że występowanie tych impulsów w danym momencie nie jest przypadkowe i zawsze jest zachowana zasada.<br />Jak zobaczę na oscyloskopie ramkę to zawsze odczytam jaką cyfrę określa , nawet zrobiłem ćwiczenia, czy zgodzisz się ze mną?<br />Układ nadawczy składa się z mikrokontrolera , a po drugiej stronie są rejestry przesuwne i drajwery z wyświetlaczami i nie ma tam mikrokontrolera.<br />Ciekawe jest też to że impulsy mniejsze niż 13 działają w drugą stronę to znaczy do mikrokontrolera leci informacja jaki przycisk w klawiaturze został naciśnięty(nie pokazałem tego na rysunku graficznym, ale też zanalizowałem).<br />Co do stabilności to jest ok ale procesor musiał mieć prędkość 16 Mhz Attmega 32, bo przy mniejszej nie widział tych krótkich impusów. (zbyt długi był kod w przerwaniu ICP).<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18152">AKSELINEK</a> — 9 paź 2018, o 21:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[andrews]]></name></author>
<updated>2018-10-09T17:56:45+01:00</updated>
<published>2018-10-09T17:56:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21332&amp;p=212451#p212451</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21332&amp;p=212451#p212451"/>
<title type="html"><![CDATA[Re: Jak prościej napisać funkcję]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21332&amp;p=212451#p212451"><![CDATA[
<div class="quotetitle">AKSELINEK napisał(a):</div><div class="quotecontent"><br />Problem jest trochę inny , w podanym układzie pracują dwa osobne moduły oddalone od siebie kilka metrów informacja i komunikacja między nimi idzie poprzez magistrale danych<br /></div><br />Właśnie o to mi chodzi że przedstawiłeś za mało danych o urządzeniu, a lepiej jest zidentyfikować, jaka to magistrala (ile przewodów, jakie poziomy napięć, jakie dokładnie układy podłączone są bezpośrednio do tej magistrali), bo <strong>najprawdopodobniej</strong>, zamiast tej całej gimnastyki z pomiarem czasów, a później ich analizą za pomocą tych nieszczęsnych <strong><em>ifów</em></strong>, <strong>wystarczy użyć odpowiedniego interfejsu komunikacyjnego</strong> (zapewne wbudowanego w mikrokontroler), odczytać to, co jest przesyłane po magistrali i wyłowić tylko te dane, które są przesyłane do konkretnego odbiornika. Jeśli na magistrali są tylko dwa wyświetlacze i jakiś nadajnik (zapewne jakiś mikrokontroler), to protokół transmisji nie będzie szczególnie skomplikowany, skoro jakoś udało Ci się zdekodować to poprzez analizę czasów.<br /><br />Nie obraź się, ale mam po prostu wrażenie, że niepotrzebnie komplikujesz sobie życie, a problem można rozwiązać dużo prościej, nie mówiąc o tym, że Twoja analiza czasów niekoniecznie musi działać stabilnie i pewnie.<br /><br />Nie chcę Ci oczywiście tutaj nic narzucać. Jeśli Twoje rozwiązanie spełnia Twoje oczekiwania, to nic nie stoi na przeszkodzie, żebyś z niego korzystał. Chciałem Ci tylko pokazać, że prawdopodobnie niepotrzebnie poszedłeś okrężną drogą, bo być może wyciągniesz z tego jakieś wnioski.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14165">andrews</a> — 9 paź 2018, o 17:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[AKSELINEK]]></name></author>
<updated>2018-10-09T17:12:08+01:00</updated>
<published>2018-10-09T17:12:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21332&amp;p=212448#p212448</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21332&amp;p=212448#p212448"/>
<title type="html"><![CDATA[Re: Jak prościej napisać funkcję]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21332&amp;p=212448#p212448"><![CDATA[
Problem jest trochę inny , w podanym układzie pracują dwa osobne moduły oddalone od siebie kilka metrów informacja i komunikacja między nimi idzie poprzez magistrale danych .<br />Ja chcę odczytywać i przetwarzać informację tylko z tego punktu (z tej magistrali )i takie mam założenie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18152">AKSELINEK</a> — 9 paź 2018, o 17:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[andrews]]></name></author>
<updated>2018-10-08T10:24:16+01:00</updated>
<published>2018-10-08T10:24:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21332&amp;p=212416#p212416</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21332&amp;p=212416#p212416"/>
<title type="html"><![CDATA[Re: Jak prościej napisać funkcję]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21332&amp;p=212416#p212416"><![CDATA[
Trochę to dla mnie dziwne, że masz dostęp do linii DATA bez ingerencji w układ wewnętrzny, a nie masz do linii SCK. One powinny być obok siebie. Skoro jednak urządzenie działa, to już bez znaczenia.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14165">andrews</a> — 8 paź 2018, o 10:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[AKSELINEK]]></name></author>
<updated>2018-10-08T09:33:30+01:00</updated>
<published>2018-10-08T09:33:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21332&amp;p=212414#p212414</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21332&amp;p=212414#p212414"/>
<title type="html"><![CDATA[Re: Jak prościej napisać funkcję]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21332&amp;p=212414#p212414"><![CDATA[
Bardzo ciekawy  opis i bardzo dziękuję koledze andrews , ale problem jest  tym że moje urządzenie ma czytać tylko impulsy , ja nie chcę ingerować w układ wenętrzny .<br />Urządzenie mi działa - tylko jest niedbale napisane.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18152">AKSELINEK</a> — 8 paź 2018, o 09:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[andrews]]></name></author>
<updated>2018-10-07T12:53:22+01:00</updated>
<published>2018-10-07T12:53:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21332&amp;p=212385#p212385</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21332&amp;p=212385#p212385"/>
<title type="html"><![CDATA[Re: Jak prościej napisać funkcję]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21332&amp;p=212385#p212385"><![CDATA[
Czyli jest tak, jak napisałem. Oprócz linii danych musisz tam mieć sygnał zegarowy. Musisz obydwa te sygnały podłączyć do mikrokontrolera (ewentualnie można też sygnał STROBE, jeśli masz do niego dostęp). Sygnał CLK najlepiej podłączyć pod wejście mogące generować przerwanie (np. INT0). Tworzysz sobie zmienną, do której będziesz odczytywał dane. W momencie zanotowania zbocza narastającego na CLK przesuwasz zmienną w lewo (lub w prawo), odczytujesz stan panujący na linii danych i zapisujesz jego wartość do najmłodszego (lub najstarszego) bitu Twojej zmiennej. Po odebraniu wszystkich bitów danego pakietu w Twojej zmiennej będzie odebrany ciąg bitów, który możesz sobie analizować.<br /><br />Analiza czasów trwania impulsów nic Ci tu nie da, bo przy transmisji synchronicznej nie jest gwarantowane, że czas trwania poszczególnych bitów (czyli czas pomiędzy dwoma kolejnymi zboczami narastającymi sygnału zegarowego) jest zawsze taki sam.<br /><br />Na początek podłącz sobie do analizatora sygnały CLK i DATA (ewentualnie również STROBE), zarejestruj i przeanalizuj jakąś transmisję. Na tej podstawie będzie można stworzyć prawidłowy algorytm programu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14165">andrews</a> — 7 paź 2018, o 12:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[AKSELINEK]]></name></author>
<updated>2018-10-07T10:19:15+01:00</updated>
<published>2018-10-07T10:19:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21332&amp;p=212376#p212376</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21332&amp;p=212376#p212376"/>
<title type="html"><![CDATA[Re: Jak prościej napisać funkcję]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21332&amp;p=212376#p212376"><![CDATA[
Bardzo dziękuje za zainteresowanie tematem, kiedyś analizowałem to dokładnie jednak nie miałem jeszcze analizatora stanów, może te zapisy trochę naświetlą temat.<br /><br /><a href="https://obrazkiforum.atnel.pl/18152/174fcb9c33ebf57da90d4d760b388c0b.JPG"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/18152/174fcb9c33ebf57da90d4d760b388c0b.JPG" alt="Obrazek" /></a><br /><br /><a href="https://obrazkiforum.atnel.pl/18152/b37547607dcb1cf20c8542f71d936c63.JPG"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/18152/b37547607dcb1cf20c8542f71d936c63.JPG" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18152">AKSELINEK</a> — 7 paź 2018, o 10:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[andrews]]></name></author>
<updated>2018-10-03T11:01:17+01:00</updated>
<published>2018-10-03T11:01:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21332&amp;p=212191#p212191</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21332&amp;p=212191#p212191"/>
<title type="html"><![CDATA[Re: Jak prościej napisać funkcję]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21332&amp;p=212191#p212191"><![CDATA[
<div class="quotetitle">AKSELINEK napisał(a):</div><div class="quotecontent"><br />jednak proszę o zwrócenie uwagi na jeden fakt.<br />Impulsy są tak ustawione że przesuwają rejestr przesuwny i w momencie kiedy impulsy wysterują rejestrem w taki sposób że zapalone odpowiednie segmenty wyświetlacza led zaświecą w odpowiednich dla siebie pozycjach następuje zatrzask i wyświetlacz wyświetla cyfrę aż do nadejścia kolejnej itd<br /></div><br />A skąd mieliśmy znać ten fakt, żeby na niego zwrócić uwagę?<br />Jaki to rejestr przesuwny, jeśli można wiedzieć?<br />Rejestr przesuwny wymaga dodatkowego sygnału zegarowego (informującego o tym, w którym momencie przesunąć dane), czyli można przyjąć, że to transmisja synchroniczna. Przy transmisji synchronicznej czasy trwania impulsów są (przynajmniej w przypadku rejestru przesuwnego) bez znaczenia, istotne są zbocza sygnału zegarowego, który to sygnał należy wykorzystać, by prawidłowo odczytać przesyłane dane.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14165">andrews</a> — 3 paź 2018, o 11:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[AKSELINEK]]></name></author>
<updated>2018-10-03T08:50:41+01:00</updated>
<published>2018-10-03T08:50:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21332&amp;p=212189#p212189</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21332&amp;p=212189#p212189"/>
<title type="html"><![CDATA[Re: Jak prościej napisać funkcję]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21332&amp;p=212189#p212189"><![CDATA[
Bardzo dziękuję za podpowiedzi, wątek jest dalej aktywny ja się tylko teraz doszkalam, jednak proszę o zwrócenie uwagi na jeden fakt.<br />Impulsy są tak ustawione że przesuwają rejestr przesuwny i w momencie kiedy impulsy wysterują rejestrem w taki sposób że zapalone odpowiednie segmenty wyświetlacza led zaświecą w odpowiednich<br />dla siebie pozycjach następuje zatrzask i wyświetlacz wyświetla cyfrę aż do nadejścia kolejnej itd,<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18152">AKSELINEK</a> — 3 paź 2018, o 08:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[andrews]]></name></author>
<updated>2018-09-29T19:49:38+01:00</updated>
<published>2018-09-29T19:49:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21332&amp;p=212098#p212098</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21332&amp;p=212098#p212098"/>
<title type="html"><![CDATA[Re: Jak prościej napisać funkcję]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21332&amp;p=212098#p212098"><![CDATA[
A mi to wygląda na zwykłą transmisję UART. Nie wiem jaki masz analizator, ale próbowałeś włączyć analizator transmisji szeregowej asynchronicznej. Spróbowałbym ustawień standardowych: 8 bit, 1 bit stopu, bez parzystości, LSB jako pierwszy, AutoBaud podejrzewam 128000 baud, ale nie jestem pewien - jeśli masz możliwość włącz autodetekcję.<br />No i nie zaszkodziłoby zwiększenie częstotliwości próbkowania, jeśli masz możliwość.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14165">andrews</a> — 29 wrz 2018, o 19:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mromano]]></name></author>
<updated>2018-09-27T10:03:44+01:00</updated>
<published>2018-09-27T10:03:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21332&amp;p=212033#p212033</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21332&amp;p=212033#p212033"/>
<title type="html"><![CDATA[Re: Jak prościej napisać funkcję]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21332&amp;p=212033#p212033"><![CDATA[
Nie wiem czy to Ci ułatwi sprawę, ale po przeanalizowaniu sygnałów, wydaje mi się, że można jednoznacznie zidentyfikować cyfrę po ilości impulsów oraz długości trwania drugiego i ostatniego. Za impuls traktuję przejście w stan wysoki.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1378">mromano</a> — 27 wrz 2018, o 10:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[JarekB]]></name></author>
<updated>2018-09-26T05:42:15+01:00</updated>
<published>2018-09-26T05:42:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21332&amp;p=211998#p211998</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21332&amp;p=211998#p211998"/>
<title type="html"><![CDATA[Re: Jak prościej napisać funkcję]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21332&amp;p=211998#p211998"><![CDATA[
Może stworzyć w pamięci tablice wzorców danych łańcuchów i porównywać je z ramką która nadleci.<br />Przy czym każda komórka wzorca to znak odpowiadający danemu zakresowi od-do<br />dajmy na to:<br />między 29 a 32 wartość we wzorcu = 'A'<br />między 45 a 55 = 'B'<br />i tak dalej.<br />Tworząc ramkę w przerwaniu też ustalasz zakres przyleciał impuls mieszczący się w zakresie to wpisujesz daną wartość <br />Potem w pętli porównanie łańcuchów i w przypadku zgodności wzorca z tym co przyszło stop pętli wartość zmiennej która inkrementuje pętlę wystawiasz jako wynik.[syntax=c]strncasecmp_P(wskaznik_do_lancucha_odebranego, wskaznik_do_flasza, dlugosc);[/syntax]No trzeba by powalczyć z tablicą wskaźników do łańcuchów tekstowych. Ale widzę że masz GB. <br />Popatrz na parsowanie komend AT. Tam jest jak stworzyć łańcuchy we flash-u i jak je porónywać. <br />W funkcji: [syntax=c]void parse_uart_data( char * pBuf )[/syntax]Jest ładnie wszystko pokazane. <br />Masz napisanego  gotowca prawie na wyciągnięcie ręki na półkę z książką <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />P/S <br />Jadąc do pracy tak sobie pomyślałem że można było by ze wzorca wywalić czasy przerwy i zostawić tylko czasy impulsów.<br />Może to by wystarczyło do identyfikacji a skróciło by łańcuchy o połowę. <br />Patrząc na zdjęcie wzorcem mogłaby być tablica składająca się z około 20 znaków.<br /><br />P/S 2<br />Ale mnie to męczy ten Twój problem. <br />Zauważyłem jeszcze coś. <br />Czas trwania pierwszego zera jest taki sam we wszystkich ramkach <br />Tak samo czas trwania ostatniego zera, wygląda na taki sam.<br />Można jeszcze pokombinować tak: zera to małe litery, impulsy to duże <br />Czyli ramka testowa wyglądała by na przykład tak:<br />aCCABBCDb<br />Każda inna przerwa niż 'a' lub 'b' to 'c'<br />Badamy tylko zero początkowe i końcowe oraz długości impulsów.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18188">JarekB</a> — 26 wrz 2018, o 05:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[AKSELINEK]]></name></author>
<updated>2018-09-25T21:35:53+01:00</updated>
<published>2018-09-25T21:35:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21332&amp;p=211991#p211991</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21332&amp;p=211991#p211991"/>
<title type="html"><![CDATA[Jak prościej napisać funkcję]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21332&amp;p=211991#p211991"><![CDATA[
Witam , problem dotyczy pewnej funkcji , którą napisałem jednak jest bardzo nie elegancka programowo.<br />Opiszę dokładnej o co mi chodzi.<br />Pewna grupa impulsów określa w urządzeniu jaka jest wyświetlana wartość cyfry na wyświetlaczu 7-mio segmentowym , przykład na rysunku:<br /><br /><a href="https://obrazkiforum.atnel.pl/18152/6ceb2e083d960f68394091fc9f357e7f.jpg"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/18152/6ceb2e083d960f68394091fc9f357e7f.jpg" alt="Obrazek" /></a><br /><br />Jak widać na rysunku każda wyświetlana liczba różni się zarówno ilością , jak i szerokością impulsów , które  jednak dają się porównać.<br />Do tego celu uruchomiłem przerwanie ICP , w którym cały ten przebieg karmię zmienną globalną   <br /><br />[syntax=c]volatile uint16_t bufor_w1&#91;50&#93;;[/syntax]<br /><br />następnie stworzyłem własną funkcję do odczytu <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /> <br /><br />[syntax=c]uint8_t wysw0(uint8_t w0) {<br /><br /><br />  if ((bufor_w1&#91;13&#93;&lt;190) &amp;&amp; (bufor_w1&#91;13&#93;&gt;160) &amp;&amp; (bufor_w1&#91;15&#93;&lt;90) &amp;&amp; (bufor_w1&#91;15&#93;&gt;70) &amp;&amp; (bufor_w1&#91;21&#93;&lt;332) &amp;&amp; (bufor_w1&#91;21&#93;&gt;280) ) return 1;<br />      if ((bufor_w1&#91;21&#93;&lt;332) &amp;&amp; (bufor_w1&#91;21&#93;&gt;280) &amp;&amp; (bufor_w1&#91;13&#93;&lt;90) &amp;&amp; (bufor_w1&#91;13&#93;&gt;70) &amp;&amp; (bufor_w1&#91;15&#93;&lt;90) &amp;&amp; (bufor_w1&#91;15&#93;&gt;70)  &amp;&amp; (bufor_w1&#91;19&#93;&lt;90) &amp;&amp; (bufor_w1&#91;19&#93;&gt;70)  &amp;&amp; (bufor_w1&#91;25&#93;&lt;90) &amp;&amp; (bufor_w1&#91;25&#93;&gt;70) &amp;&amp; (bufor_w1&#91;23&#93;&lt;90) &amp;&amp; (bufor_w1&#91;23&#93;&gt;70)) return 2;<br />      if ((bufor_w1&#91;13&#93;&lt;90) &amp;&amp; (bufor_w1&#91;13&#93;&gt;70) &amp;&amp; (bufor_w1&#91;15&#93;&lt;90) &amp;&amp; (bufor_w1&#91;15&#93;&gt;70) &amp;&amp; (bufor_w1&#91;19&#93;&lt;90) &amp;&amp; (bufor_w1&#91;19&#93;&gt;70) &amp;&amp; (bufor_w1&#91;17&#93;&lt;90) &amp;&amp; (bufor_w1&#91;17&#93;&gt;70) &amp;&amp; (bufor_w1&#91;23&#93;&lt;90) &amp;&amp; (bufor_w1&#91;23&#93;&gt;70) &amp;&amp; (bufor_w1&#91;21&#93;&lt;332) &amp;&amp; (bufor_w1&#91;21&#93;&gt;280))  return 3;<br />      if ((bufor_w1&#91;15&#93;&lt;90) &amp;&amp; (bufor_w1&#91;15&#93;&gt;70) &amp;&amp; (bufor_w1&#91;17&#93;&lt;90) &amp;&amp; (bufor_w1&#91;17&#93;&gt;70) &amp;&amp; (bufor_w1&#91;19&#93;&lt;90) &amp;&amp; (bufor_w1&#91;19&#93;&gt;70) &amp;&amp; (bufor_w1&#91;21&#93;&lt;90) &amp;&amp; (bufor_w1&#91;21&#93;&gt;70) &amp;&amp; (bufor_w1&#91;13&#93;&lt;190) &amp;&amp; (bufor_w1&#91;13&#93;&gt;160)) return 4;<br />  if ((bufor_w1&#91;13&#93;&lt;90) &amp;&amp; (bufor_w1&#91;13&#93;&gt;70) &amp;&amp; (bufor_w1&#91;21&#93;&lt;90) &amp;&amp; (bufor_w1&#91;21&#93;&gt;70) &amp;&amp; (bufor_w1&#91;19&#93;&lt;90) &amp;&amp; (bufor_w1&#91;19&#93;&gt;70) &amp;&amp; (bufor_w1&#91;25&#93;&lt;332) &amp;&amp; (bufor_w1&#91;25&#93;&gt;280) &amp;&amp; (bufor_w1&#91;23&#93;&lt;90) &amp;&amp; (bufor_w1&#91;23&#93;&gt;70) &amp;&amp; (bufor_w1&#91;15&#93;&lt;335) &amp;&amp; (bufor_w1&#91;15&#93;&gt;280)) return 5;<br />      if ((bufor_w1&#91;13&#93;&lt;90) &amp;&amp; (bufor_w1&#91;13&#93;&gt;70) &amp;&amp; (bufor_w1&#91;21&#93;&lt;90) &amp;&amp; (bufor_w1&#91;21&#93;&gt;70) &amp;&amp; (bufor_w1&#91;19&#93;&lt;90) &amp;&amp; (bufor_w1&#91;19&#93;&gt;70) &amp;&amp; (bufor_w1&#91;25&#93;&lt;90) &amp;&amp; (bufor_w1&#91;25&#93;&gt;70) &amp;&amp; (bufor_w1&#91;23&#93;&lt;90) &amp;&amp; (bufor_w1&#91;23&#93;&gt;70) &amp;&amp; (bufor_w1&#91;15&#93;&lt;335) &amp;&amp; (bufor_w1&#91;15&#93;&gt;280) &amp;&amp; (bufor_w1&#91;17&#93;&lt;90) &amp;&amp; (bufor_w1&#91;17&#93;&gt;70)) return 6;<br />      if ((bufor_w1&#91;13&#93;&lt;90) &amp;&amp; (bufor_w1&#91;13&#93;&gt;70) &amp;&amp; (bufor_w1&#91;15&#93;&lt;90) &amp;&amp; (bufor_w1&#91;15&#93;&gt;70) &amp;&amp; (bufor_w1&#91;21&#93;&lt;332) &amp;&amp; (bufor_w1&#91;21&#93;&gt;280) ) return 7;<br />      if ((bufor_w1&#91;13&#93;&lt;90) &amp;&amp; (bufor_w1&#91;13&#93;&gt;70) &amp;&amp; (bufor_w1&#91;15&#93;&lt;90) &amp;&amp; (bufor_w1&#91;15&#93;&gt;70) &amp;&amp; (bufor_w1&#91;19&#93;&lt;90) &amp;&amp; (bufor_w1&#91;19&#93;&gt;70) &amp;&amp; (bufor_w1&#91;21&#93;&lt;90) &amp;&amp; (bufor_w1&#91;21&#93;&gt;70) &amp;&amp; (bufor_w1&#91;25&#93;&lt;90) &amp;&amp; (bufor_w1&#91;25&#93;&gt;70) &amp;&amp;  (bufor_w1&#91;23&#93;&lt;90) &amp;&amp; (bufor_w1&#91;23&#93;&gt;70)) return 8;<br />      if ((bufor_w1&#91;13&#93;&lt;90) &amp;&amp; (bufor_w1&#91;13&#93;&gt;70) &amp;&amp; (bufor_w1&#91;15&#93;&lt;90) &amp;&amp; (bufor_w1&#91;15&#93;&gt;70) &amp;&amp; (bufor_w1&#91;19&#93;&lt;90) &amp;&amp; (bufor_w1&#91;19&#93;&gt;70) &amp;&amp; (bufor_w1&#91;21&#93;&lt;90) &amp;&amp; (bufor_w1&#91;21&#93;&gt;70) &amp;&amp;  (bufor_w1&#91;23&#93;&lt;90) &amp;&amp; (bufor_w1&#91;23&#93;&gt;70)) return 9;<br />   return 0;<br />}[/syntax]<br /><br />Funkcja wprawdzie zwraca wynik , ale sami widzicie jak to wygląda <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> <br />Podpowiedzcie jak to zrobić na trochę wyższej jakości programowania chodzi również o zmniejszenie kodu , żeby nie zajmował tyle pamięci.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18152">AKSELINEK</a> — 25 wrz 2018, o 21:35</p><hr />
]]></content>
</entry>
</feed>