<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[Forum HomeMade - Projekty Grupy HomeMade]]></title>
		<link>https://sp-hm.pl/</link>
		<description><![CDATA[Forum HomeMade - https://sp-hm.pl]]></description>
		<pubDate>Tue, 28 Apr 2026 16:56:01 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[Mieszacz H-mode FSA3157]]></title>
			<link>https://sp-hm.pl/thread-3632.html</link>
			<pubDate>Fri, 25 Apr 2025 17:44:23 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://sp-hm.pl/member.php?action=profile&uid=1981">SP9LVZ</a>]]></dc:creator>
			<guid isPermaLink="false">https://sp-hm.pl/thread-3632.html</guid>
			<description><![CDATA[<span style="font-weight: bold;" class="mycode_b">Mieszacz H-mode na przełącznikach FSA3157<br />
</span><br />
Mieszacz RF jest w ciągu najważniejszych elementów tzw. FRONT-END-u odbiornika komunikacyjnego. Dostęp do nowych technologicznie elementów daje nam możliwości wykonania go z oczekiwaniem wysokich parametrów. Aktualnie standard stanowi mieszacz na "kluczach" w różnych odmianach - pierścieniowy, H-mode, TIM.. itp,.<br />
W opisywanej przeze mnie na forum konstrukcji B-L-U wykonałem wg. mojej wersji mieszacz na kluczach D-MOS SD5400, które są wykorzystywane w transceiverach z górnej półki firmy ICOM. Mieszacz ten spełnił oczekiwania. Firma YAESU wykorzystuje w top transceiverach klucze FST3257 podobnie jak zrobił to Elecraft. W tym przypadku, wykonany w wersji z dzielnikiem 74AC74 niestety mieszacz nie spełnił oczekiwań ze względu na ilość produktów niepożądanych pochodzących od sterownika syntezy i samej syntezy. Z generatora na Si5351 generowana była częstotliwość VFO x 4. Tak wysoka częstotliwość dzielona następnie przez 4 w 74H74 dawała wiele niepożądanych prążków. Koncepcja mieszacza w tej wersji była nie do przyjęcia.<br />
<br />
Pozostała jeszcze inna możliwość, która miała dobrą opinię wystawioną przez PA3AKE Martein'a Bakker'a. Chodzi o mieszacz na przełącznikach FSA3157.<br />
Przytoczę poniżej tłumaczenie jego tekstów z publikacji internetowej na temat jego testów różnych mieszaczy:<br />
Cytuję:<br />
<span style="font-style: italic;" class="mycode_i">Prawie zrezygnowałem z mikserów typu SPDT, ponieważ nie mogły dorównać mikserom SPST FST3125 lub FSAV332 pod względem IMD. Ale kiedy w końcu przetestowałem FSA3157, który wypadł nawet lepiej niż FSAV332 i FST3125, byłem zaskoczony....<br />
Zarówno mikser FSA3157, jak i NC7SZ384 nie odczuły żadnego problemu z IMD, ponieważ mikser składa się z dwóch lub czterech oddzielnych układów, a nie tylko z jednego...<br />
Początkowo wydawało się niemożliwe zbudowanie miksera z przełącznikami Fairchild, który osiągałby lepsze wyniki niż +40dBm IIP na wszystkich pasmach HF. Okazało się jednak, że jest to możliwe, z tym że transformatory odgrywają bardzo dużą rolę w obrazie IP3 razem z przełącznikami. Najlepsze wartości występują na pasmach, na których jest to najbardziej potrzebne, mianowicie 80m i 40m. Wartości te łatwo przekraczają +46dBm, co bardzo utrudnia budowę otaczających podsystemów (BPF i filtr dachowy), aby nie narażały one IP3 miksera.<br />
Moje wyjaśnienie - chodzi o to, że parametry pod względem IIP3 BPF i filtru kwarcowego mogą być nieosiągalne na tym poziomie co sam mieszacz.<br />
Opisuje on, że wykonanie filtrów dachowych z niskiej jakości rezonatorów popsuje cały tor wejściowy odbiornika. <br />
Stosowanie 74AC74 do filtracji ostóg (spurs) - to testowałem z FST3257.<br />
Cytuję dalej:<br />
Jestem przekonany, że redukcja ostróg (spurs) uzyskana za pomocą nieregulowanych mikserów typu dzielenia przez 2 kwadrat 74AC74 jest w dużym stopniu zależna od przypadkowej tolerancji/różnicy składowych. Oznacza to, że dobry poziom redukcji spurs, chociaż możliwy, prawdopodobnie nie jest zbyt powtarzalny w tej konfiguracji.<br />
Moja uwaga - w moich testach wykorzystanie 74AC74 jako układu kształtowania sygnału poprzez dzielenie przez 4 powodowało generowanie spurs zamiast ich oczyszenie.<br />
Cytuje dalej:<br />
FSA3157 w połączeniu z podstawowym kwadratowym 74AC04 i transformatorem ADTT1-1 jest bardzo dobry, jeśli chodzi o redukcję odbić. Bez żadnego filtrowania DDS (poza filtrem antyaliasingowym 200 MHz) średni poziom 130 odbić na 15M wynosił -9,3 dB poniżej MDS. To jest całkiem ciche!<br />
<br />
Nie ma już potrzeby, aby port RF „widział” 50-omowe rezystancyjne zakończenie w celu zmniejszenia poziomu odgałęzienia. Nie potrzeba pół- lub pełnych diplekserów przed mikserem. To znacznie upraszcza konstrukcję! I w konsekwencji nie ma dodatkowych (choć niewielkich) strat wprowadzanych przez te dipleksery pogarszające NF front-endu.<br />
Koniec cytowania PA3AKE</span><br />
<br />
W związku z bardzo dobrą opinią o samych FSA3157 wykonałem układ mieszacza rewersyjnego typu H-mode ale bez użycia 74AC74. Jako układ kształtowania sygnału zastosowałem układ FIN1002M High Speed Differential Reciver na bazie koncepcji mieszacza VK3AQZ.<br />
Wykorzystując własne wcześniejsze doświadczenia z wielu wykonanych i testowanych mieszaczy na kluczach zastosowałem transformatory minicircuits o przełożeniu 1-4 zamiast 1-1 czy 1-2 jak proponował stosować VK3AQZ. <br />
<br />
Zdjęcie wykonanego testowo mieszacza<br />

<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=15852" target="_blank" title="">mieszacz pcb.jpg</a> (Rozmiar: 109.64 KB / Pobrań: 713)
<br />
<br />
Jak pisze Martein trudno jest zepsuć ten mieszacz, jeśli pcb jest wykonane prawidłowo z symetrycznymi krótkimi połączeniami RF parametry będą powtarzalne w stosunku do jego pomiarów.<br />
Poniżej tabela z pomiarami jego mieszacza na FSA3157.<br />

<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=15853" target="_blank" title="">parametry.jpg</a> (Rozmiar: 91 KB / Pobrań: 698)
<br />
<br />
Można zatem przyjąć, że podobne parametry ma wykonany testowo mieszacz.<br />
<br />
Jakie efekty?.. mieszacz testuję z modułami B-L-U z p.cz. 9MHz (filtr PP9A2). <br />
Odbiór jest bardzo dobry, "czuć" niskie tłumienie mieszacza poprzez czułość odbiornika na wyższych pasmach bez pre-amp.<br />
Dokonałem pomiarów tłumienia mieszacza wraz z diplexerem, jest na poziomie 5,5dB. Jest bardzo dobry wynik, powtarzalny na wszystkich pasmach od 80m-10m.<br />
Teraz najważniejsze - produkty niepożądane od sterownika syntezy i samego generatora Si5351. To są dwa różnego rodzaju zakłócenia. Można je usłyszeć czy zmierzyć bez sygnału z anteny... to co opisuje Martein czy mieszacz jest "cichy" czy "głośny". Mieszacz na FSA3157 jest cichy, a nawet cichszy niż wersja na SD5400.<br />
Nie wiem na ile ma na to wpływ sam mieszacz na FSA3157 a na ile układ FIN1002M kształtujący sygnał VFO.<br />
Efekt jest taki, że nie ma praktycznie żadnych produktów niepożądanych na wszystkich pasmach osłu***<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/pdf.png" title="Adobe Acrobat PDF" border="0" alt=".pdf" />
&nbsp;&nbsp;<a href="attachment.php?aid=15857" target="_blank" title="">mieszacz FSA3157 sp9lvz.pdf</a> (Rozmiar: 174.32 KB / Pobrań: 366)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=15861" target="_blank" title="">S9+60dB.jpg</a> (Rozmiar: 85.67 KB / Pobrań: 723)
]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;" class="mycode_b">Mieszacz H-mode na przełącznikach FSA3157<br />
</span><br />
Mieszacz RF jest w ciągu najważniejszych elementów tzw. FRONT-END-u odbiornika komunikacyjnego. Dostęp do nowych technologicznie elementów daje nam możliwości wykonania go z oczekiwaniem wysokich parametrów. Aktualnie standard stanowi mieszacz na "kluczach" w różnych odmianach - pierścieniowy, H-mode, TIM.. itp,.<br />
W opisywanej przeze mnie na forum konstrukcji B-L-U wykonałem wg. mojej wersji mieszacz na kluczach D-MOS SD5400, które są wykorzystywane w transceiverach z górnej półki firmy ICOM. Mieszacz ten spełnił oczekiwania. Firma YAESU wykorzystuje w top transceiverach klucze FST3257 podobnie jak zrobił to Elecraft. W tym przypadku, wykonany w wersji z dzielnikiem 74AC74 niestety mieszacz nie spełnił oczekiwań ze względu na ilość produktów niepożądanych pochodzących od sterownika syntezy i samej syntezy. Z generatora na Si5351 generowana była częstotliwość VFO x 4. Tak wysoka częstotliwość dzielona następnie przez 4 w 74H74 dawała wiele niepożądanych prążków. Koncepcja mieszacza w tej wersji była nie do przyjęcia.<br />
<br />
Pozostała jeszcze inna możliwość, która miała dobrą opinię wystawioną przez PA3AKE Martein'a Bakker'a. Chodzi o mieszacz na przełącznikach FSA3157.<br />
Przytoczę poniżej tłumaczenie jego tekstów z publikacji internetowej na temat jego testów różnych mieszaczy:<br />
Cytuję:<br />
<span style="font-style: italic;" class="mycode_i">Prawie zrezygnowałem z mikserów typu SPDT, ponieważ nie mogły dorównać mikserom SPST FST3125 lub FSAV332 pod względem IMD. Ale kiedy w końcu przetestowałem FSA3157, który wypadł nawet lepiej niż FSAV332 i FST3125, byłem zaskoczony....<br />
Zarówno mikser FSA3157, jak i NC7SZ384 nie odczuły żadnego problemu z IMD, ponieważ mikser składa się z dwóch lub czterech oddzielnych układów, a nie tylko z jednego...<br />
Początkowo wydawało się niemożliwe zbudowanie miksera z przełącznikami Fairchild, który osiągałby lepsze wyniki niż +40dBm IIP na wszystkich pasmach HF. Okazało się jednak, że jest to możliwe, z tym że transformatory odgrywają bardzo dużą rolę w obrazie IP3 razem z przełącznikami. Najlepsze wartości występują na pasmach, na których jest to najbardziej potrzebne, mianowicie 80m i 40m. Wartości te łatwo przekraczają +46dBm, co bardzo utrudnia budowę otaczających podsystemów (BPF i filtr dachowy), aby nie narażały one IP3 miksera.<br />
Moje wyjaśnienie - chodzi o to, że parametry pod względem IIP3 BPF i filtru kwarcowego mogą być nieosiągalne na tym poziomie co sam mieszacz.<br />
Opisuje on, że wykonanie filtrów dachowych z niskiej jakości rezonatorów popsuje cały tor wejściowy odbiornika. <br />
Stosowanie 74AC74 do filtracji ostóg (spurs) - to testowałem z FST3257.<br />
Cytuję dalej:<br />
Jestem przekonany, że redukcja ostróg (spurs) uzyskana za pomocą nieregulowanych mikserów typu dzielenia przez 2 kwadrat 74AC74 jest w dużym stopniu zależna od przypadkowej tolerancji/różnicy składowych. Oznacza to, że dobry poziom redukcji spurs, chociaż możliwy, prawdopodobnie nie jest zbyt powtarzalny w tej konfiguracji.<br />
Moja uwaga - w moich testach wykorzystanie 74AC74 jako układu kształtowania sygnału poprzez dzielenie przez 4 powodowało generowanie spurs zamiast ich oczyszenie.<br />
Cytuje dalej:<br />
FSA3157 w połączeniu z podstawowym kwadratowym 74AC04 i transformatorem ADTT1-1 jest bardzo dobry, jeśli chodzi o redukcję odbić. Bez żadnego filtrowania DDS (poza filtrem antyaliasingowym 200 MHz) średni poziom 130 odbić na 15M wynosił -9,3 dB poniżej MDS. To jest całkiem ciche!<br />
<br />
Nie ma już potrzeby, aby port RF „widział” 50-omowe rezystancyjne zakończenie w celu zmniejszenia poziomu odgałęzienia. Nie potrzeba pół- lub pełnych diplekserów przed mikserem. To znacznie upraszcza konstrukcję! I w konsekwencji nie ma dodatkowych (choć niewielkich) strat wprowadzanych przez te dipleksery pogarszające NF front-endu.<br />
Koniec cytowania PA3AKE</span><br />
<br />
W związku z bardzo dobrą opinią o samych FSA3157 wykonałem układ mieszacza rewersyjnego typu H-mode ale bez użycia 74AC74. Jako układ kształtowania sygnału zastosowałem układ FIN1002M High Speed Differential Reciver na bazie koncepcji mieszacza VK3AQZ.<br />
Wykorzystując własne wcześniejsze doświadczenia z wielu wykonanych i testowanych mieszaczy na kluczach zastosowałem transformatory minicircuits o przełożeniu 1-4 zamiast 1-1 czy 1-2 jak proponował stosować VK3AQZ. <br />
<br />
Zdjęcie wykonanego testowo mieszacza<br />

<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=15852" target="_blank" title="">mieszacz pcb.jpg</a> (Rozmiar: 109.64 KB / Pobrań: 713)
<br />
<br />
Jak pisze Martein trudno jest zepsuć ten mieszacz, jeśli pcb jest wykonane prawidłowo z symetrycznymi krótkimi połączeniami RF parametry będą powtarzalne w stosunku do jego pomiarów.<br />
Poniżej tabela z pomiarami jego mieszacza na FSA3157.<br />

<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=15853" target="_blank" title="">parametry.jpg</a> (Rozmiar: 91 KB / Pobrań: 698)
<br />
<br />
Można zatem przyjąć, że podobne parametry ma wykonany testowo mieszacz.<br />
<br />
Jakie efekty?.. mieszacz testuję z modułami B-L-U z p.cz. 9MHz (filtr PP9A2). <br />
Odbiór jest bardzo dobry, "czuć" niskie tłumienie mieszacza poprzez czułość odbiornika na wyższych pasmach bez pre-amp.<br />
Dokonałem pomiarów tłumienia mieszacza wraz z diplexerem, jest na poziomie 5,5dB. Jest bardzo dobry wynik, powtarzalny na wszystkich pasmach od 80m-10m.<br />
Teraz najważniejsze - produkty niepożądane od sterownika syntezy i samego generatora Si5351. To są dwa różnego rodzaju zakłócenia. Można je usłyszeć czy zmierzyć bez sygnału z anteny... to co opisuje Martein czy mieszacz jest "cichy" czy "głośny". Mieszacz na FSA3157 jest cichy, a nawet cichszy niż wersja na SD5400.<br />
Nie wiem na ile ma na to wpływ sam mieszacz na FSA3157 a na ile układ FIN1002M kształtujący sygnał VFO.<br />
Efekt jest taki, że nie ma praktycznie żadnych produktów niepożądanych na wszystkich pasmach osłu***<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/pdf.png" title="Adobe Acrobat PDF" border="0" alt=".pdf" />
&nbsp;&nbsp;<a href="attachment.php?aid=15857" target="_blank" title="">mieszacz FSA3157 sp9lvz.pdf</a> (Rozmiar: 174.32 KB / Pobrań: 366)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=15861" target="_blank" title="">S9+60dB.jpg</a> (Rozmiar: 85.67 KB / Pobrań: 723)
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Antenowy filter przeciwzakłoceniowy. ]]></title>
			<link>https://sp-hm.pl/thread-3248.html</link>
			<pubDate>Sat, 26 Mar 2022 13:37:38 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://sp-hm.pl/member.php?action=profile&uid=1810">SP3SUZ</a>]]></dc:creator>
			<guid isPermaLink="false">https://sp-hm.pl/thread-3248.html</guid>
			<description><![CDATA[Swego czasu pozbyłem się TV kablowej na rzecz "darmowej" TV z anteny. No i "się zaczęło" czyli zakłócenia w odbiorze. O ile na innych blokach i mieszkaniach nie ma tego problemu o tyle u mnie antena TV wisi niecałe 3 metry od nadawczej i nie ma sposobu aby sie to zmieniło. No owszem jest rx satelitarny do TV ale... Już dawno chodziła mi po głowie koncepcja budowy takiego filtra bo owszem swoje radia mam sprawne ale przez moje biurko przechodzą różne urządzenia i nie całkiem sprawne ( inaczej by ich tu nie było <img src="https://sp-hm.pl/images/smilies/biggrin.png" alt="Big Grin" title="Big Grin" class="smilie smilie_4" /> ) No ale odległość anteny od anteny jest zbyt mała nawet na sprawne radio. W publikacji Wiktora Chojnackiego SP5QU "Instalowanie i Wyposażenie Radiostacji Amatorskich " znalazłem filtr autorstwa LA6DM eliminujący takowe zakłócenia z efektem 120 dB. Postanowiłem zrobić taki układ ale z przeróbkami. Po pierwsze zamiast drogiej srebrzonej blachy na obudowę postanowiłem użyć dwójki ocynkowanej z której wykonałem całe chassis. Poza tym wymiary boczne czyli tam gdzie wchodzą gniazda oraz przegrody wewnętrzne wynoszą 50 x 50 mm no i długość jest całkiem słuszna bo pomiędzy przegrodami jest również 50 mm lub czasami więcej. Przepusty na cewki łączące wykonane zostały z turbaksu  i wklejone do przelotów. średnica przepustów wynosi ponad 10 mm a to dla bezpieczeństwa aby czasem sygnał nadawczy nie "przestrzelił do masy. Całość została przykryta blachą ocynkowana o grubości 1 mm z której "wyklepałem" pokrywę przykręcaną na "samowierty" . Gniazda antenowe mocowane są na klasyczne  śrubki dwójki. Przegrody są nitowane do podstawy, podobnie jak uchwyty do przykręcenia obudowy. Poprzez wszystkie przegrody przepuszczony jest dodatkowy drut srebrzony średnicy 3 mm do którego polutowane są   końce wszystkich kondensatorów. (posrebrzone aluminium - rosyjski patent, do dziś zachodzę w głowę JAK Oni to zrobili) Końce tego przewodu połączone są z końcówkami montażowymi które następnie od środka przychodzą na śrubki mocujące gniazda. Chodzi o to żeby te gniazda miały jak najlepsze połączenie z "masą" filtra.  Teraz najważniejsze. Kondensatory wybieramy nadawcze na 3 kV co najmniej. Poza tym w oryginale użyto kondensatorów pojemności 170 pF. Ja użyłem 150 pF / 3kV ale za to każda cewka ma o dwa zwoje więcej. Poza tym kolejny problem drut (!) Ponieważ zależało mi na tym żeby tłumienie było jak największe zamiast miedzi średnicy 2mm użyłem srebrzanki "jedynki"  z odzysku. Jednak w takim wypadku należy uważać aby poszczególne zwoje nie zrobiły pomiędzy sobą zwarcia. Ale da się zrobić. Najpierw przewlekamy i lutujemy ze sobą wszystkie cewki no i gniazda. Pierwsza i ostatnia "cela" w filtrze pozostaje przewleczona na wskroś bez cewki ale tam przychodzą cewki nie w szeregu tylko poprzez kondensator "do masy" i każda stanowi obwód wysokiej impedancji( tłumiący) na częstotliwość pośrednią odbiornika TV czyli 38 MHz. Pozostałe cewki po dolutowaniu kondensatorów "wchodzą w zakres" bez potrzeby zestrajania. Pamiętać trzeba że ten filtr był projektowany w latach 70 tych i miał być strojony na GDO a te urządzenia jak wiadomo mają dokładność "do pół łokcia" . Kondensatory lutujemy pomiędzy cewki a drut 3mm o którym pisałem powyżej.  Jednak do tego celu potrzebować będziemy lutownicy "do dachów" minimum 300Wat. Kondensatory nadawcze mają końcówki gość grube drut też jest spory więc aby uniknąć zimnych lutów trzeba dobrze to rozgrzać. ZURIT owska "setka" transformatorowa nie wystarczy. Po zakryciu pokrywy i zmontowaniu całości możemy pomierzyć. Jeśli wychodzi tak jak na moim VNA Powinno być ok.<hr class="mycode_hr" />
Tak wygląda wykres, a tak konstrukcja <hr class="mycode_hr" />
Mój mentor uczył mnie że "to ma działać a nie wyglądać" <hr class="mycode_hr" />
A w środku wygląda tak: <br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=14487" target="_blank" title="">Filtr Antena 1.jpg</a> (Rozmiar: 677.36 KB / Pobrań: 1609)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=14488" target="_blank" title="">Filtr Antena 2.jpg</a> (Rozmiar: 503.74 KB / Pobrań: 1518)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=14489" target="_blank" title="">Filtr Antena 3.jpg</a> (Rozmiar: 517.06 KB / Pobrań: 1494)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=14490" target="_blank" title="">Filtr Antena 4.jpg</a> (Rozmiar: 610.81 KB / Pobrań: 1501)
]]></description>
			<content:encoded><![CDATA[Swego czasu pozbyłem się TV kablowej na rzecz "darmowej" TV z anteny. No i "się zaczęło" czyli zakłócenia w odbiorze. O ile na innych blokach i mieszkaniach nie ma tego problemu o tyle u mnie antena TV wisi niecałe 3 metry od nadawczej i nie ma sposobu aby sie to zmieniło. No owszem jest rx satelitarny do TV ale... Już dawno chodziła mi po głowie koncepcja budowy takiego filtra bo owszem swoje radia mam sprawne ale przez moje biurko przechodzą różne urządzenia i nie całkiem sprawne ( inaczej by ich tu nie było <img src="https://sp-hm.pl/images/smilies/biggrin.png" alt="Big Grin" title="Big Grin" class="smilie smilie_4" /> ) No ale odległość anteny od anteny jest zbyt mała nawet na sprawne radio. W publikacji Wiktora Chojnackiego SP5QU "Instalowanie i Wyposażenie Radiostacji Amatorskich " znalazłem filtr autorstwa LA6DM eliminujący takowe zakłócenia z efektem 120 dB. Postanowiłem zrobić taki układ ale z przeróbkami. Po pierwsze zamiast drogiej srebrzonej blachy na obudowę postanowiłem użyć dwójki ocynkowanej z której wykonałem całe chassis. Poza tym wymiary boczne czyli tam gdzie wchodzą gniazda oraz przegrody wewnętrzne wynoszą 50 x 50 mm no i długość jest całkiem słuszna bo pomiędzy przegrodami jest również 50 mm lub czasami więcej. Przepusty na cewki łączące wykonane zostały z turbaksu  i wklejone do przelotów. średnica przepustów wynosi ponad 10 mm a to dla bezpieczeństwa aby czasem sygnał nadawczy nie "przestrzelił do masy. Całość została przykryta blachą ocynkowana o grubości 1 mm z której "wyklepałem" pokrywę przykręcaną na "samowierty" . Gniazda antenowe mocowane są na klasyczne  śrubki dwójki. Przegrody są nitowane do podstawy, podobnie jak uchwyty do przykręcenia obudowy. Poprzez wszystkie przegrody przepuszczony jest dodatkowy drut srebrzony średnicy 3 mm do którego polutowane są   końce wszystkich kondensatorów. (posrebrzone aluminium - rosyjski patent, do dziś zachodzę w głowę JAK Oni to zrobili) Końce tego przewodu połączone są z końcówkami montażowymi które następnie od środka przychodzą na śrubki mocujące gniazda. Chodzi o to żeby te gniazda miały jak najlepsze połączenie z "masą" filtra.  Teraz najważniejsze. Kondensatory wybieramy nadawcze na 3 kV co najmniej. Poza tym w oryginale użyto kondensatorów pojemności 170 pF. Ja użyłem 150 pF / 3kV ale za to każda cewka ma o dwa zwoje więcej. Poza tym kolejny problem drut (!) Ponieważ zależało mi na tym żeby tłumienie było jak największe zamiast miedzi średnicy 2mm użyłem srebrzanki "jedynki"  z odzysku. Jednak w takim wypadku należy uważać aby poszczególne zwoje nie zrobiły pomiędzy sobą zwarcia. Ale da się zrobić. Najpierw przewlekamy i lutujemy ze sobą wszystkie cewki no i gniazda. Pierwsza i ostatnia "cela" w filtrze pozostaje przewleczona na wskroś bez cewki ale tam przychodzą cewki nie w szeregu tylko poprzez kondensator "do masy" i każda stanowi obwód wysokiej impedancji( tłumiący) na częstotliwość pośrednią odbiornika TV czyli 38 MHz. Pozostałe cewki po dolutowaniu kondensatorów "wchodzą w zakres" bez potrzeby zestrajania. Pamiętać trzeba że ten filtr był projektowany w latach 70 tych i miał być strojony na GDO a te urządzenia jak wiadomo mają dokładność "do pół łokcia" . Kondensatory lutujemy pomiędzy cewki a drut 3mm o którym pisałem powyżej.  Jednak do tego celu potrzebować będziemy lutownicy "do dachów" minimum 300Wat. Kondensatory nadawcze mają końcówki gość grube drut też jest spory więc aby uniknąć zimnych lutów trzeba dobrze to rozgrzać. ZURIT owska "setka" transformatorowa nie wystarczy. Po zakryciu pokrywy i zmontowaniu całości możemy pomierzyć. Jeśli wychodzi tak jak na moim VNA Powinno być ok.<hr class="mycode_hr" />
Tak wygląda wykres, a tak konstrukcja <hr class="mycode_hr" />
Mój mentor uczył mnie że "to ma działać a nie wyglądać" <hr class="mycode_hr" />
A w środku wygląda tak: <br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=14487" target="_blank" title="">Filtr Antena 1.jpg</a> (Rozmiar: 677.36 KB / Pobrań: 1609)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=14488" target="_blank" title="">Filtr Antena 2.jpg</a> (Rozmiar: 503.74 KB / Pobrań: 1518)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=14489" target="_blank" title="">Filtr Antena 3.jpg</a> (Rozmiar: 517.06 KB / Pobrań: 1494)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=14490" target="_blank" title="">Filtr Antena 4.jpg</a> (Rozmiar: 610.81 KB / Pobrań: 1501)
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Zasilacz buforowy akumulatora 12V]]></title>
			<link>https://sp-hm.pl/thread-3230.html</link>
			<pubDate>Fri, 04 Feb 2022 07:28:23 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://sp-hm.pl/member.php?action=profile&uid=2644">SP7VMZ</a>]]></dc:creator>
			<guid isPermaLink="false">https://sp-hm.pl/thread-3230.html</guid>
			<description><![CDATA[Cześć!<br />
Przymuszony koniecznością uporządkowania osobistych zapasów przydasi elektronicznych, żonaci rozumieją a kawalerowie się doczekają, trafiłem na kilka perełek w tym słynne P210 z radiatorami oraz kilka ponad 100VA transformatorów bezpieczeństwa. Zakiełkowała we mnie myśl aby zbudować sobie powiedzmy 10 amperowy zasilacz do urządzeń radiowych pracujący w buforze z akumulatorem samochodowym. <br />
I teraz w czym potrzebuję pomocy Szanownego Koleżeństwa.<br />
- wybór układu pracy<br />
- wybór rozwiązania układowego.<br />
]]></description>
			<content:encoded><![CDATA[Cześć!<br />
Przymuszony koniecznością uporządkowania osobistych zapasów przydasi elektronicznych, żonaci rozumieją a kawalerowie się doczekają, trafiłem na kilka perełek w tym słynne P210 z radiatorami oraz kilka ponad 100VA transformatorów bezpieczeństwa. Zakiełkowała we mnie myśl aby zbudować sobie powiedzmy 10 amperowy zasilacz do urządzeń radiowych pracujący w buforze z akumulatorem samochodowym. <br />
I teraz w czym potrzebuję pomocy Szanownego Koleżeństwa.<br />
- wybór układu pracy<br />
- wybór rozwiązania układowego.<br />
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Piloty CW do PP9]]></title>
			<link>https://sp-hm.pl/thread-3106.html</link>
			<pubDate>Fri, 23 Apr 2021 13:36:52 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://sp-hm.pl/member.php?action=profile&uid=1810">SP3SUZ</a>]]></dc:creator>
			<guid isPermaLink="false">https://sp-hm.pl/thread-3106.html</guid>
			<description><![CDATA[Koledzy! Ma ktoś na zbyciu pilota do CW od filtra PP9 A3? Mam kilka tych filtrów ale porzebne mi 4 piloty od CW zeby przerobić PP9 ( jeden z posiadanych przeze mnie) na węższe pasmo czyli ok. 1kHz właśnie do CW. Niestety wiem że praca na CW przy użyciu filtra SSB to droga przez mękę dlatego chcę spróbować i wymienić te cztery kwarce aby uzyskać filtr z jednym zboczem za to węższy. Pomoże ktoś? Ile i czemu tak drogo? <img src="https://sp-hm.pl/images/smilies/biggrin.png" alt="Big Grin" title="Big Grin" class="smilie smilie_4" /><img src="https://sp-hm.pl/images/smilies/cool.png" alt="Cool" title="Cool" class="smilie smilie_3" />]]></description>
			<content:encoded><![CDATA[Koledzy! Ma ktoś na zbyciu pilota do CW od filtra PP9 A3? Mam kilka tych filtrów ale porzebne mi 4 piloty od CW zeby przerobić PP9 ( jeden z posiadanych przeze mnie) na węższe pasmo czyli ok. 1kHz właśnie do CW. Niestety wiem że praca na CW przy użyciu filtra SSB to droga przez mękę dlatego chcę spróbować i wymienić te cztery kwarce aby uzyskać filtr z jednym zboczem za to węższy. Pomoże ktoś? Ile i czemu tak drogo? <img src="https://sp-hm.pl/images/smilies/biggrin.png" alt="Big Grin" title="Big Grin" class="smilie smilie_4" /><img src="https://sp-hm.pl/images/smilies/cool.png" alt="Cool" title="Cool" class="smilie smilie_3" />]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[SSB z DDS ]]></title>
			<link>https://sp-hm.pl/thread-2891.html</link>
			<pubDate>Tue, 21 Apr 2020 08:17:40 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://sp-hm.pl/member.php?action=profile&uid=2644">SP7VMZ</a>]]></dc:creator>
			<guid isPermaLink="false">https://sp-hm.pl/thread-2891.html</guid>
			<description><![CDATA[Cześć!<br />
<br />
Korzystając z chwilowego braku zajęcia zastanawiam się czy istnieją rozwiązania pozwalające w miarę prosty sposób cyfrowo kształtować sygnał jednowstęgowy. Otóż mając sygnał SSB przekształcamy go cyfrowo aby wysyłać go do DDS który wygeneruje sygnał na żądanej częstotliwości. Można by w ten sposób "uprościć" budowę małych nadajników. <br />
Czy ktoś już opracował tę metodę? Czy jest Wam znana? ]]></description>
			<content:encoded><![CDATA[Cześć!<br />
<br />
Korzystając z chwilowego braku zajęcia zastanawiam się czy istnieją rozwiązania pozwalające w miarę prosty sposób cyfrowo kształtować sygnał jednowstęgowy. Otóż mając sygnał SSB przekształcamy go cyfrowo aby wysyłać go do DDS który wygeneruje sygnał na żądanej częstotliwości. Można by w ten sposób "uprościć" budowę małych nadajników. <br />
Czy ktoś już opracował tę metodę? Czy jest Wam znana? ]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Sterownik DTMF (PUK 2011)]]></title>
			<link>https://sp-hm.pl/thread-570.html</link>
			<pubDate>Sun, 11 Sep 2011 07:52:17 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://sp-hm.pl/member.php?action=profile&uid=5">SQ9MDD</a>]]></dc:creator>
			<guid isPermaLink="false">https://sp-hm.pl/thread-570.html</guid>
			<description><![CDATA[Na tegoroczny konkurs PUK, czyli przydatne urządzenie krótkofalarskie przygotowałem prosty sterownik DTMF. Sterownik ten może być wykorzystany do sterowania wszelkimi urządzeniami do których jest utrudniony dostęp. W zamierzeniu powstał jako urządzenie do kontrolowania przemiennika, oraz komputerów obsługujących Echolink i Igate w sieci APRS. Urządzenie jest prostym rozwiązaniem opartym o sprzętowe dekodowanie DTMF-u oraz najpopularniejszy procesor ATTiny 2313. Projekt jest udostępniany na licencji GPL.<br />
Sterownik może kontrolować maksymalnie do 6-ciu urządzeń i składa się z płytki podstawowej (3 linie) oraz płytki rozszerzeń (kolejne 3 linie). Funkcje sterowania są zabezpieczone cztero cyfrowym pinem. <br />
Sterownik ten dzięki udostępnieniu źródeł może posłużyć jako baza do konstruowania innych urządzeń, lub do zaimplementowania w swoim rozwiązaniu części funkcjonalności.<br />
<br />
<span style="color: #FF0000;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">W projekcie przewidziałem możliwość rozszerzenia funkcjonalności poprzez rozbudowę o port RS-232 i możliwość wyrzucania tam, zdekodowanych kodów DTMF, na przykład do sterowania Echolinkiem. Jeśli jest ktos chętny to zapraszam do rozbudowy i opisania tego na forum. </span></span><br />
<br />
Wszystkie pliki źródłowe można pobrać ze strony: <a href="http://home.safeland.org/~rysiek/index.php?action=slide&amp;where=003agb" target="_blank" rel="noopener" class="mycode_url">sq9mdd.qrz.pl</a><br />
<br />
Film prezentujący <a href="http://www.youtube.com/watch?v=_bMdbXwAIQc" target="_blank" rel="noopener" class="mycode_url">działanie sterownika</a>. <br />
<br />
Poniżej źródło programu a w załącznikach rysunki płytek w SprintLayout<br />
<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>'-------------------------------------------------------------------------------<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DTMF&nbsp;&nbsp;Controler DC1&nbsp;&nbsp;v.1.2 Stable<br />
'<br />
'<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SQ9MDD &lt;rlabus@luxmat.com&gt; 2011<br />
'<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This program is free software; you can redistribute it and/or modify<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;it under the terms of the GNU General Public License as published by<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the Free Software Foundation; either version 2 of the License, or<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(at your option) any later version.<br />
'<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This program is distributed in the hope that it will be useful,<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;but WITHOUT ANY WARRANTY; without even the implied warranty of<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&nbsp;&nbsp;See the<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GNU General Public License for more details.<br />
'<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;You should have received a copy of the GNU General Public License<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;along with this program; if not, write to the Free Software<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MA 02110-1301, USA.<br />
'-------------------------------------------------------------------------------<br />
' ustawienia kompilatora i konfiguracja<br />
&#36;regfile = "Attiny2313.dat"<br />
&#36;crystal = 4000000<br />
&#36;hwstack = 32<br />
&#36;swstack = 0<br />
&#36;framesize = 50<br />
'-------------------------------------------------------------------------------<br />
'konfiguracja portów, patrz schemat<br />
Config Portb.0 = Output&nbsp;&nbsp;'L6&nbsp;&nbsp;Conn 3<br />
Config Portb.1 = Output&nbsp;&nbsp;'L5<br />
Config Portb.2 = Output&nbsp;&nbsp;'L4<br />
Config Portb.3 = Output&nbsp;&nbsp;'func led<br />
Config Portb.4 = Input&nbsp;&nbsp; 'Q4<br />
Config Portb.5 = Input&nbsp;&nbsp; 'Q3<br />
Config Portb.6 = Input&nbsp;&nbsp; 'Q2<br />
Config Portb.7 = Input&nbsp;&nbsp; 'Q1<br />
<br />
Config Portd.0 = Output&nbsp;&nbsp;'RS 232<br />
Config Portd.1 = Output&nbsp;&nbsp;'RS 232<br />
Config Portd.2 = Input&nbsp;&nbsp; 'StD<br />
Config Portd.3 = Input&nbsp;&nbsp; 'ResetKey<br />
Config Portd.4 = Output&nbsp;&nbsp;'L1<br />
Config Portd.5 = Output&nbsp;&nbsp;'L2<br />
Config Portd.6 = Output&nbsp;&nbsp;'L3<br />
<br />
Config Porta.0 = Output&nbsp;&nbsp;'UNUSED<br />
Config Porta.1 = Output&nbsp;&nbsp;'UNUSED<br />
<br />
Portb = &amp;B00000000<br />
Portd = &amp;B0001000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'ResetKey domyślnie w stanie wysokim<br />
<br />
L1 Alias Portd.4<br />
L2 Alias Portd.5<br />
L3 Alias Portd.6<br />
L4 Alias Portb.2<br />
L5 Alias Portb.1<br />
L6 Alias Portb.0<br />
<br />
Q1 Alias Pinb.7<br />
Q2 Alias Pinb.6<br />
Q3 Alias Pinb.5<br />
Q4 Alias Pinb.4<br />
<br />
Funcled Alias Portb.3<br />
Resetkey Alias Pind.3<br />
<br />
Dim Cyfra As Integer<br />
Dim Kod As String * 8<br />
Dim Znak As String * 1<br />
Dim Pin As String * 4<br />
Dim Mypin As String * 4<br />
Dim Savedpin As Eram String * 4<br />
Dim Temppin As String * 4<br />
Dim Linia As String * 1<br />
Dim Akcja As String * 1<br />
Dim Zmianapinu As Bit<br />
<br />
Enable Interrupts&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'odpalam przerwania<br />
Config Int0 = Rising&nbsp;&nbsp;&nbsp;&nbsp; 'reagujemy na zbocze narastajace<br />
Enable Int0<br />
On Int0 Dtmfin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'jesli przyjdzie sygnal ze zdekodowano dtmf odpalamy procedure dtmfin<br />
'-------------------------------------------------------------------------------<br />
'inicjalizacja programu zczytuje zapisany pin<br />
Zmianapinu = 0<br />
Cyfra = 0<br />
Mypin = Savedpin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'wczytuje pin z eepromu<br />
Wait 5<br />
'wlasciwa petla<br />
&nbsp;&nbsp;Do<br />
&nbsp;&nbsp; If Resetkey = 0 Then&nbsp;&nbsp;'procedurk resetu i ustawienia domyslnego pinu<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Funcled = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Wait 5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'po pieciu sekundach od zwarcia zworki reset sprawdzam czy nadal jest zwarta jesli tak to wykonuje akcje.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Resetkey = 0 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Mypin = "2222"&nbsp;&nbsp;'ustawiamy domyslny pin w urzadzeniu<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Savedpin = "2222"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Funcled = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Wait 5<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
&nbsp;&nbsp; End If<br />
&nbsp;&nbsp;Loop<br />
<br />
End&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'koniec programu glównego<br />
'-------------------------------------------------------------------------------<br />
Dtmfin:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cyfra = 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' reset cyfry zaczynamy od zera<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Waitms 5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' czekamy czy nadal jest kod<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Q1 = 1 Then&nbsp;&nbsp;&nbsp;&nbsp; ' zamiana binarki z 8870 na dziesietne<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Cyfra = Cyfra + 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Q2 = 1 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Cyfra = Cyfra + 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Q3 = 1 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Cyfra = Cyfra + 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Q4 = 1 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Cyfra = Cyfra + 8<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Znak = Lookupstr(cyfra , Kody)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' zamiana cyferek na string z liczbami<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Znak = "#" Then ' znaki specjalne resetuja bufor<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Kod = ""<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Znak = ""<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Zmianapinu = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Znak = "*" Then ' znaki specjalne resetuja bufor<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Kod = ""<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Znak = ""<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Zmianapinu = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Kod = Kod + Znak&nbsp;&nbsp; ' tutaj sklejam stringa z poszczegolnych znakow<br />
<br />
&nbsp;&nbsp; If Zmianapinu = 0 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Len(kod) = 6 Then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' jesli string ma 6 znakow przystepujemy do analizy<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Pin = Left(kod , 4)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' wycinamy PIN<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Linia = Mid(kod , 5 , 1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' wycinamy ktora linia bedziemy sterowac<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Akcja = Right(kod , 1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' wycinamy jaka akcja<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Kod = ""<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Pin = Mypin Then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' jesli pin jest ok przystepujemy do dzialania<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Linia = "1" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Akcja = "1" Then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'wlacz<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L1 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Elseif Akcja = "0" Then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'wylacz<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L1 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Elseif Akcja = "2" Then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'reset<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L1 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Wait 30<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L1 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Elseif Linia = "2" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Akcja = "1" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L2 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Elseif Akcja = "0" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L2 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Elseif Akcja = "2" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L2 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Wait 30<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L2 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Elseif Linia = "3" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Akcja = "1" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L3 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Elseif Akcja = "0" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L3 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Elseif Akcja = "2" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L3 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Wait 30<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L3 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Elseif Linia = "4" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Akcja = "1" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L4 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Elseif Akcja = "0" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L4 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Elseif Akcja = "2" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L4 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Wait 30<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L4 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Elseif Linia = "5" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Akcja = "1" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L5 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Elseif Akcja = "0" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L5 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Elseif Akcja = "2" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L5 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Wait 30<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L5 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Elseif Linia = "6" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Akcja = "1" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L6 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Elseif Akcja = "0" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L6 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Elseif Akcja = "2" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L6 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Wait 30<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L6 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Elseif Linia = "9" Then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'obsluga wszystkich linii jednoczesnie<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Akcja = "1" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L1 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L2 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L3 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L4 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L5 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L6 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Elseif Akcja = "0" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L1 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L2 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L3 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L4 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L5 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L6 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Elseif Akcja = "2" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L1 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L2 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L3 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L4 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L5 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L6 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Wait 30<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L1 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L2 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L3 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L4 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L5 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L6 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Gosub Komendaok<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
&nbsp;&nbsp; Elseif Zmianapinu = 1 Then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'procedura zmiany pinu<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Len(kod) = 8 Then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'dlugosc dwoch pinow<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Pin = Left(kod , 4)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'stary pin<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Pin = Mypin Then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'jesli obecny pin zgadza sie z zapamietanym<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Temppin = Right(kod , 4)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Savedpin = Temppin<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mypin = Temppin<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
&nbsp;&nbsp; End If<br />
Return<br />
<br />
Komendaok:<br />
&nbsp;&nbsp; Funcled = 1<br />
&nbsp;&nbsp; Waitms 125<br />
&nbsp;&nbsp; Funcled = 0<br />
&nbsp;&nbsp; Waitms 50<br />
&nbsp;&nbsp; Funcled = 1<br />
&nbsp;&nbsp; Waitms 125<br />
&nbsp;&nbsp; Funcled = 0<br />
Return<br />
<br />
Komendaerr:<br />
&nbsp;&nbsp; Funcled = 1<br />
&nbsp;&nbsp; Waitms 300<br />
&nbsp;&nbsp; Funcled = 0<br />
Return<br />
<br />
Kody:<br />
Data "D" , "1" , "2" , "3" , "4" , "5" , "6" , "7" , "8" , "9" , "0" , "*" , "#" , "A" , "B" , "C"<br />
'-------------------------------------------------------------------------------</code></div></div><br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/pdf.png" title="Adobe Acrobat PDF" border="0" alt=".pdf" />
&nbsp;&nbsp;<a href="attachment.php?aid=2889" target="_blank" title="">dokumentacja-v.1.1.pdf</a> (Rozmiar: 2.19 MB / Pobrań: 3224)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/layout.jpg" title="" border="0" alt=".lay" />
&nbsp;&nbsp;<a href="attachment.php?aid=2890" target="_blank" title="">20110709-main.LAY</a> (Rozmiar: 140.4 KB / Pobrań: 1576)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/layout.jpg" title="" border="0" alt=".lay" />
&nbsp;&nbsp;<a href="attachment.php?aid=2891" target="_blank" title="">20110709-extend.LAY</a> (Rozmiar: 54.01 KB / Pobrań: 1596)
]]></description>
			<content:encoded><![CDATA[Na tegoroczny konkurs PUK, czyli przydatne urządzenie krótkofalarskie przygotowałem prosty sterownik DTMF. Sterownik ten może być wykorzystany do sterowania wszelkimi urządzeniami do których jest utrudniony dostęp. W zamierzeniu powstał jako urządzenie do kontrolowania przemiennika, oraz komputerów obsługujących Echolink i Igate w sieci APRS. Urządzenie jest prostym rozwiązaniem opartym o sprzętowe dekodowanie DTMF-u oraz najpopularniejszy procesor ATTiny 2313. Projekt jest udostępniany na licencji GPL.<br />
Sterownik może kontrolować maksymalnie do 6-ciu urządzeń i składa się z płytki podstawowej (3 linie) oraz płytki rozszerzeń (kolejne 3 linie). Funkcje sterowania są zabezpieczone cztero cyfrowym pinem. <br />
Sterownik ten dzięki udostępnieniu źródeł może posłużyć jako baza do konstruowania innych urządzeń, lub do zaimplementowania w swoim rozwiązaniu części funkcjonalności.<br />
<br />
<span style="color: #FF0000;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">W projekcie przewidziałem możliwość rozszerzenia funkcjonalności poprzez rozbudowę o port RS-232 i możliwość wyrzucania tam, zdekodowanych kodów DTMF, na przykład do sterowania Echolinkiem. Jeśli jest ktos chętny to zapraszam do rozbudowy i opisania tego na forum. </span></span><br />
<br />
Wszystkie pliki źródłowe można pobrać ze strony: <a href="http://home.safeland.org/~rysiek/index.php?action=slide&amp;where=003agb" target="_blank" rel="noopener" class="mycode_url">sq9mdd.qrz.pl</a><br />
<br />
Film prezentujący <a href="http://www.youtube.com/watch?v=_bMdbXwAIQc" target="_blank" rel="noopener" class="mycode_url">działanie sterownika</a>. <br />
<br />
Poniżej źródło programu a w załącznikach rysunki płytek w SprintLayout<br />
<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>'-------------------------------------------------------------------------------<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DTMF&nbsp;&nbsp;Controler DC1&nbsp;&nbsp;v.1.2 Stable<br />
'<br />
'<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SQ9MDD &lt;rlabus@luxmat.com&gt; 2011<br />
'<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This program is free software; you can redistribute it and/or modify<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;it under the terms of the GNU General Public License as published by<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the Free Software Foundation; either version 2 of the License, or<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(at your option) any later version.<br />
'<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This program is distributed in the hope that it will be useful,<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;but WITHOUT ANY WARRANTY; without even the implied warranty of<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&nbsp;&nbsp;See the<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GNU General Public License for more details.<br />
'<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;You should have received a copy of the GNU General Public License<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;along with this program; if not, write to the Free Software<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MA 02110-1301, USA.<br />
'-------------------------------------------------------------------------------<br />
' ustawienia kompilatora i konfiguracja<br />
&#36;regfile = "Attiny2313.dat"<br />
&#36;crystal = 4000000<br />
&#36;hwstack = 32<br />
&#36;swstack = 0<br />
&#36;framesize = 50<br />
'-------------------------------------------------------------------------------<br />
'konfiguracja portów, patrz schemat<br />
Config Portb.0 = Output&nbsp;&nbsp;'L6&nbsp;&nbsp;Conn 3<br />
Config Portb.1 = Output&nbsp;&nbsp;'L5<br />
Config Portb.2 = Output&nbsp;&nbsp;'L4<br />
Config Portb.3 = Output&nbsp;&nbsp;'func led<br />
Config Portb.4 = Input&nbsp;&nbsp; 'Q4<br />
Config Portb.5 = Input&nbsp;&nbsp; 'Q3<br />
Config Portb.6 = Input&nbsp;&nbsp; 'Q2<br />
Config Portb.7 = Input&nbsp;&nbsp; 'Q1<br />
<br />
Config Portd.0 = Output&nbsp;&nbsp;'RS 232<br />
Config Portd.1 = Output&nbsp;&nbsp;'RS 232<br />
Config Portd.2 = Input&nbsp;&nbsp; 'StD<br />
Config Portd.3 = Input&nbsp;&nbsp; 'ResetKey<br />
Config Portd.4 = Output&nbsp;&nbsp;'L1<br />
Config Portd.5 = Output&nbsp;&nbsp;'L2<br />
Config Portd.6 = Output&nbsp;&nbsp;'L3<br />
<br />
Config Porta.0 = Output&nbsp;&nbsp;'UNUSED<br />
Config Porta.1 = Output&nbsp;&nbsp;'UNUSED<br />
<br />
Portb = &amp;B00000000<br />
Portd = &amp;B0001000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'ResetKey domyślnie w stanie wysokim<br />
<br />
L1 Alias Portd.4<br />
L2 Alias Portd.5<br />
L3 Alias Portd.6<br />
L4 Alias Portb.2<br />
L5 Alias Portb.1<br />
L6 Alias Portb.0<br />
<br />
Q1 Alias Pinb.7<br />
Q2 Alias Pinb.6<br />
Q3 Alias Pinb.5<br />
Q4 Alias Pinb.4<br />
<br />
Funcled Alias Portb.3<br />
Resetkey Alias Pind.3<br />
<br />
Dim Cyfra As Integer<br />
Dim Kod As String * 8<br />
Dim Znak As String * 1<br />
Dim Pin As String * 4<br />
Dim Mypin As String * 4<br />
Dim Savedpin As Eram String * 4<br />
Dim Temppin As String * 4<br />
Dim Linia As String * 1<br />
Dim Akcja As String * 1<br />
Dim Zmianapinu As Bit<br />
<br />
Enable Interrupts&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'odpalam przerwania<br />
Config Int0 = Rising&nbsp;&nbsp;&nbsp;&nbsp; 'reagujemy na zbocze narastajace<br />
Enable Int0<br />
On Int0 Dtmfin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'jesli przyjdzie sygnal ze zdekodowano dtmf odpalamy procedure dtmfin<br />
'-------------------------------------------------------------------------------<br />
'inicjalizacja programu zczytuje zapisany pin<br />
Zmianapinu = 0<br />
Cyfra = 0<br />
Mypin = Savedpin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'wczytuje pin z eepromu<br />
Wait 5<br />
'wlasciwa petla<br />
&nbsp;&nbsp;Do<br />
&nbsp;&nbsp; If Resetkey = 0 Then&nbsp;&nbsp;'procedurk resetu i ustawienia domyslnego pinu<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Funcled = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Wait 5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'po pieciu sekundach od zwarcia zworki reset sprawdzam czy nadal jest zwarta jesli tak to wykonuje akcje.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Resetkey = 0 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Mypin = "2222"&nbsp;&nbsp;'ustawiamy domyslny pin w urzadzeniu<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Savedpin = "2222"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Funcled = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Wait 5<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
&nbsp;&nbsp; End If<br />
&nbsp;&nbsp;Loop<br />
<br />
End&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'koniec programu glównego<br />
'-------------------------------------------------------------------------------<br />
Dtmfin:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cyfra = 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' reset cyfry zaczynamy od zera<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Waitms 5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' czekamy czy nadal jest kod<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Q1 = 1 Then&nbsp;&nbsp;&nbsp;&nbsp; ' zamiana binarki z 8870 na dziesietne<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Cyfra = Cyfra + 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Q2 = 1 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Cyfra = Cyfra + 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Q3 = 1 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Cyfra = Cyfra + 4<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Q4 = 1 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Cyfra = Cyfra + 8<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Znak = Lookupstr(cyfra , Kody)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' zamiana cyferek na string z liczbami<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Znak = "#" Then ' znaki specjalne resetuja bufor<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Kod = ""<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Znak = ""<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Zmianapinu = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Znak = "*" Then ' znaki specjalne resetuja bufor<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Kod = ""<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Znak = ""<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Zmianapinu = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Kod = Kod + Znak&nbsp;&nbsp; ' tutaj sklejam stringa z poszczegolnych znakow<br />
<br />
&nbsp;&nbsp; If Zmianapinu = 0 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Len(kod) = 6 Then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' jesli string ma 6 znakow przystepujemy do analizy<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Pin = Left(kod , 4)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' wycinamy PIN<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Linia = Mid(kod , 5 , 1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' wycinamy ktora linia bedziemy sterowac<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Akcja = Right(kod , 1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' wycinamy jaka akcja<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Kod = ""<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Pin = Mypin Then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' jesli pin jest ok przystepujemy do dzialania<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Linia = "1" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Akcja = "1" Then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'wlacz<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L1 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Elseif Akcja = "0" Then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'wylacz<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L1 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Elseif Akcja = "2" Then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'reset<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L1 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Wait 30<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L1 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Elseif Linia = "2" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Akcja = "1" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L2 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Elseif Akcja = "0" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L2 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Elseif Akcja = "2" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L2 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Wait 30<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L2 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Elseif Linia = "3" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Akcja = "1" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L3 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Elseif Akcja = "0" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L3 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Elseif Akcja = "2" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L3 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Wait 30<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L3 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Elseif Linia = "4" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Akcja = "1" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L4 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Elseif Akcja = "0" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L4 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Elseif Akcja = "2" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L4 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Wait 30<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L4 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Elseif Linia = "5" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Akcja = "1" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L5 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Elseif Akcja = "0" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L5 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Elseif Akcja = "2" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L5 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Wait 30<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L5 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Elseif Linia = "6" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Akcja = "1" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L6 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Elseif Akcja = "0" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L6 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Elseif Akcja = "2" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L6 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Wait 30<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L6 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Elseif Linia = "9" Then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'obsluga wszystkich linii jednoczesnie<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Akcja = "1" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L1 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L2 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L3 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L4 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L5 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L6 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Elseif Akcja = "0" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L1 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L2 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L3 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L4 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L5 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L6 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Elseif Akcja = "2" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L1 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L2 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L3 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L4 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L5 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L6 = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Wait 30<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L1 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L2 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L3 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L4 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L5 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L6 = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Gosub Komendaok<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
&nbsp;&nbsp; Elseif Zmianapinu = 1 Then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'procedura zmiany pinu<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Len(kod) = 8 Then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'dlugosc dwoch pinow<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Pin = Left(kod , 4)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'stary pin<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Pin = Mypin Then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'jesli obecny pin zgadza sie z zapamietanym<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Temppin = Right(kod , 4)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Savedpin = Temppin<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mypin = Temppin<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
&nbsp;&nbsp; End If<br />
Return<br />
<br />
Komendaok:<br />
&nbsp;&nbsp; Funcled = 1<br />
&nbsp;&nbsp; Waitms 125<br />
&nbsp;&nbsp; Funcled = 0<br />
&nbsp;&nbsp; Waitms 50<br />
&nbsp;&nbsp; Funcled = 1<br />
&nbsp;&nbsp; Waitms 125<br />
&nbsp;&nbsp; Funcled = 0<br />
Return<br />
<br />
Komendaerr:<br />
&nbsp;&nbsp; Funcled = 1<br />
&nbsp;&nbsp; Waitms 300<br />
&nbsp;&nbsp; Funcled = 0<br />
Return<br />
<br />
Kody:<br />
Data "D" , "1" , "2" , "3" , "4" , "5" , "6" , "7" , "8" , "9" , "0" , "*" , "#" , "A" , "B" , "C"<br />
'-------------------------------------------------------------------------------</code></div></div><br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/pdf.png" title="Adobe Acrobat PDF" border="0" alt=".pdf" />
&nbsp;&nbsp;<a href="attachment.php?aid=2889" target="_blank" title="">dokumentacja-v.1.1.pdf</a> (Rozmiar: 2.19 MB / Pobrań: 3224)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/layout.jpg" title="" border="0" alt=".lay" />
&nbsp;&nbsp;<a href="attachment.php?aid=2890" target="_blank" title="">20110709-main.LAY</a> (Rozmiar: 140.4 KB / Pobrań: 1576)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/layout.jpg" title="" border="0" alt=".lay" />
&nbsp;&nbsp;<a href="attachment.php?aid=2891" target="_blank" title="">20110709-extend.LAY</a> (Rozmiar: 54.01 KB / Pobrań: 1596)
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Miernik częstotliwości skala cyfrowa.]]></title>
			<link>https://sp-hm.pl/thread-502.html</link>
			<pubDate>Wed, 11 May 2011 20:25:24 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://sp-hm.pl/member.php?action=profile&uid=5">SQ9MDD</a>]]></dc:creator>
			<guid isPermaLink="false">https://sp-hm.pl/thread-502.html</guid>
			<description><![CDATA[Wiem że projektów skal cyfrowych w sieci jest pełno i nawet jeszcze więcej. Pomimo to Wraz z kolegą z Koniakowa postanowiliśmy że stworzymy projekt który docelowo będzie zainstalowany w Taurusie. A także może być wykorzystany jako prosty miernik częstotliwości. Wspólnie ustaliliśmy że nasz wskaźnik będzie wyposażony w wyświetlacz LED 5 cyfr.<br />
Do tej pory (już kilka dni temat męczymy) Zaprojektowaliśmy płytkę wyświetlacza płytkę miernika, schemat i mamy wstępne propozycje programu.<br />
Przy tej okazji może ktoś popełni program w Assemblerze? będzie okazja porównać program robiący to samo.<br />
<br />
Rysunek płytki wyświetlacza<br />

<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=2296" target="_blank" title="">board_led.JPG</a> (Rozmiar: 186.71 KB / Pobrań: 5484)
<br />
<br />
Rysunek miernika<br />

<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=2297" target="_blank" title="">board_counter.JPG</a> (Rozmiar: 320.42 KB / Pobrań: 6259)
<br />
<br />
Schemat miernika<br />

<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
&nbsp;&nbsp;<a href="attachment.php?aid=2298" target="_blank" title="">miernik-czestotliwosci-skala.png</a> (Rozmiar: 218.97 KB / Pobrań: 6054)
<br />
<br />
Schemat wyświetlacza<br />

<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
&nbsp;&nbsp;<a href="attachment.php?aid=2306" target="_blank" title="">miernik-czestotliwosci-wyswietlacz.png</a> (Rozmiar: 144.11 KB / Pobrań: 6139)
<br />
<br />
Przed prasowaniem<br />

<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=2299" target="_blank" title="">IMG01139-20110508-1614.jpg</a> (Rozmiar: 301.84 KB / Pobrań: 5473)
<br />
<br />
Po wytrawieniu<br />

<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=2300" target="_blank" title="">IMG01142-20110508-1717.jpg</a> (Rozmiar: 316.81 KB / Pobrań: 2710)
<br />
<br />
Gotowy moduł, oczywiście prototypowy, bede zmieniał sposób wyprowadzenia goldpinów.<br />

<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=2301" target="_blank" title="">IMG01147-20110508-1830.jpg</a> (Rozmiar: 311.29 KB / Pobrań: 2846)
<br />
<br />
<a href="http://www.youtube.com/watch?v=hD7FHtQBC1k&amp;feature=player_profilepage" target="_blank" rel="noopener" class="mycode_url">Film z testu poprawności</a> wykonania wyświetlacza<br />
<span style="color: #FF0000;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b"><br />
UPDATE 20110514:</span></span><br />
<br />
Dzisiaj zmontowałem "trochę" płytki miernika,zamiast tranzystorów jak jest na schemacie, podłączyłem anody wyświetlaczy bezpośrednio z procesora.<br />
Wszystko działa poprawnie jasność jest zadowalająca.<br />
<br />
Pod tym <a href="http://www.youtube.com/watch?v=jyLfYxjLq98&amp;feature=player_profilepage" target="_blank" rel="noopener" class="mycode_url">linkiem</a> znajduje się film z testów. Na razie wrzucilem programik który odlicza cyferki prezentując sposób wyświetlania<br />
Oczywiście wszystkie źródła wrzucę gdy skończę.<br />
<br />
No panowie na razie tyle, reszta w drodze...<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/layout.jpg" title="" border="0" alt=".lay" />
&nbsp;&nbsp;<a href="attachment.php?aid=2302" target="_blank" title="">lcd_board.LAY</a> (Rozmiar: 44.58 KB / Pobrań: 1708)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/layout.jpg" title="" border="0" alt=".lay" />
&nbsp;&nbsp;<a href="attachment.php?aid=2303" target="_blank" title="">uc_board.LAY</a> (Rozmiar: 75.31 KB / Pobrań: 1427)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/unknown.png" title="Nie określono" border="0" alt=".sch" />
&nbsp;&nbsp;<a href="attachment.php?aid=2311" target="_blank" title="">miernik-czestotliwosci-skala.sch</a> (Rozmiar: 12.64 KB / Pobrań: 1811)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/unknown.png" title="Nie określono" border="0" alt=".sch" />
&nbsp;&nbsp;<a href="attachment.php?aid=2312" target="_blank" title="">miernik-czestotliwosci-wyswietlacz.sch</a> (Rozmiar: 5.68 KB / Pobrań: 1590)
]]></description>
			<content:encoded><![CDATA[Wiem że projektów skal cyfrowych w sieci jest pełno i nawet jeszcze więcej. Pomimo to Wraz z kolegą z Koniakowa postanowiliśmy że stworzymy projekt który docelowo będzie zainstalowany w Taurusie. A także może być wykorzystany jako prosty miernik częstotliwości. Wspólnie ustaliliśmy że nasz wskaźnik będzie wyposażony w wyświetlacz LED 5 cyfr.<br />
Do tej pory (już kilka dni temat męczymy) Zaprojektowaliśmy płytkę wyświetlacza płytkę miernika, schemat i mamy wstępne propozycje programu.<br />
Przy tej okazji może ktoś popełni program w Assemblerze? będzie okazja porównać program robiący to samo.<br />
<br />
Rysunek płytki wyświetlacza<br />

<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=2296" target="_blank" title="">board_led.JPG</a> (Rozmiar: 186.71 KB / Pobrań: 5484)
<br />
<br />
Rysunek miernika<br />

<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=2297" target="_blank" title="">board_counter.JPG</a> (Rozmiar: 320.42 KB / Pobrań: 6259)
<br />
<br />
Schemat miernika<br />

<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
&nbsp;&nbsp;<a href="attachment.php?aid=2298" target="_blank" title="">miernik-czestotliwosci-skala.png</a> (Rozmiar: 218.97 KB / Pobrań: 6054)
<br />
<br />
Schemat wyświetlacza<br />

<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
&nbsp;&nbsp;<a href="attachment.php?aid=2306" target="_blank" title="">miernik-czestotliwosci-wyswietlacz.png</a> (Rozmiar: 144.11 KB / Pobrań: 6139)
<br />
<br />
Przed prasowaniem<br />

<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=2299" target="_blank" title="">IMG01139-20110508-1614.jpg</a> (Rozmiar: 301.84 KB / Pobrań: 5473)
<br />
<br />
Po wytrawieniu<br />

<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=2300" target="_blank" title="">IMG01142-20110508-1717.jpg</a> (Rozmiar: 316.81 KB / Pobrań: 2710)
<br />
<br />
Gotowy moduł, oczywiście prototypowy, bede zmieniał sposób wyprowadzenia goldpinów.<br />

<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=2301" target="_blank" title="">IMG01147-20110508-1830.jpg</a> (Rozmiar: 311.29 KB / Pobrań: 2846)
<br />
<br />
<a href="http://www.youtube.com/watch?v=hD7FHtQBC1k&amp;feature=player_profilepage" target="_blank" rel="noopener" class="mycode_url">Film z testu poprawności</a> wykonania wyświetlacza<br />
<span style="color: #FF0000;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b"><br />
UPDATE 20110514:</span></span><br />
<br />
Dzisiaj zmontowałem "trochę" płytki miernika,zamiast tranzystorów jak jest na schemacie, podłączyłem anody wyświetlaczy bezpośrednio z procesora.<br />
Wszystko działa poprawnie jasność jest zadowalająca.<br />
<br />
Pod tym <a href="http://www.youtube.com/watch?v=jyLfYxjLq98&amp;feature=player_profilepage" target="_blank" rel="noopener" class="mycode_url">linkiem</a> znajduje się film z testów. Na razie wrzucilem programik który odlicza cyferki prezentując sposób wyświetlania<br />
Oczywiście wszystkie źródła wrzucę gdy skończę.<br />
<br />
No panowie na razie tyle, reszta w drodze...<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/layout.jpg" title="" border="0" alt=".lay" />
&nbsp;&nbsp;<a href="attachment.php?aid=2302" target="_blank" title="">lcd_board.LAY</a> (Rozmiar: 44.58 KB / Pobrań: 1708)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/layout.jpg" title="" border="0" alt=".lay" />
&nbsp;&nbsp;<a href="attachment.php?aid=2303" target="_blank" title="">uc_board.LAY</a> (Rozmiar: 75.31 KB / Pobrań: 1427)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/unknown.png" title="Nie określono" border="0" alt=".sch" />
&nbsp;&nbsp;<a href="attachment.php?aid=2311" target="_blank" title="">miernik-czestotliwosci-skala.sch</a> (Rozmiar: 12.64 KB / Pobrań: 1811)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/unknown.png" title="Nie określono" border="0" alt=".sch" />
&nbsp;&nbsp;<a href="attachment.php?aid=2312" target="_blank" title="">miernik-czestotliwosci-wyswietlacz.sch</a> (Rozmiar: 5.68 KB / Pobrań: 1590)
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Sterownik Rotora (Modernizacja AR-303)]]></title>
			<link>https://sp-hm.pl/thread-492.html</link>
			<pubDate>Wed, 20 Apr 2011 11:55:38 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://sp-hm.pl/member.php?action=profile&uid=5">SQ9MDD</a>]]></dc:creator>
			<guid isPermaLink="false">https://sp-hm.pl/thread-492.html</guid>
			<description><![CDATA[Witam. <br />
<br />
Na jednym z for nawiązała się dyskusja dotycząca Lekkiego rotora AR-303 i  w trakcie rozmowy padł pomysł modernizacji rotora. Rotor ten pomimo oczywistych wad (sterowanie, kalibracja) ma dwie niezaprzeczalne zalety. <br />
Te zalety to cena i możliwość łatwej modyfikacji.<br />
<br />
Rotor jest prosty, postanowiłem że sterownik do niego też będzie bardzo prosty i tani. W załączeniu pliki źródłowe wersji 1.0 beta sterownika. Kilka rzeczy wymaga jeszcze modyfikacji lub zdefiniowania wartości elementów.<br />
<br />

<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
&nbsp;&nbsp;<a href="attachment.php?aid=2207" target="_blank" title="">sterownik-rotora.png</a> (Rozmiar: 403.18 KB / Pobrań: 7591)
<br />

<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=2208" target="_blank" title="">plytka-sterownik.JPG</a> (Rozmiar: 591.75 KB / Pobrań: 7697)
<br />

<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=2209" target="_blank" title="">plytka-sterownik-face.JPG</a> (Rozmiar: 505.19 KB / Pobrań: 7346)
<br />
<br />
Na YouTube wrzuciłem kilka filmów obrazujących działanie sterownika.<br />
<a href="http://www.youtube.com/watch?v=F3c95_yE56M&amp;feature=player_profilepage" target="_blank" rel="noopener" class="mycode_url">Sterownik rotora pierwsze odpalenie.</a><br />
<br />
<a href="http://www.youtube.com/watch?v=tx3od7HRJ1E" target="_blank" rel="noopener" class="mycode_url">Test impulsatora</a><br />
<br />
<a href="http://www.youtube.com/watch?v=bfHmyS4P3Sw" target="_blank" rel="noopener" class="mycode_url">Zainstalowany impulsator</a><br />
<br />
<a href="http://www.youtube.com/watch?v=o-amTNZT1BE" target="_blank" rel="noopener" class="mycode_url">Mechanika krańcówki</a><br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/zip.gif" title="" border="0" alt=".rar" />
&nbsp;&nbsp;<a href="attachment.php?aid=2210" target="_blank" title="">sterownik-rotora-v.1.0-20110419.rar</a> (Rozmiar: 2.08 KB / Pobrań: 1996)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/layout.jpg" title="" border="0" alt=".lay" />
&nbsp;&nbsp;<a href="attachment.php?aid=2211" target="_blank" title="">sterownik-rotora.LAY</a> (Rozmiar: 111.09 KB / Pobrań: 2124)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/unknown.png" title="Nie określono" border="0" alt=".sch" />
&nbsp;&nbsp;<a href="attachment.php?aid=2212" target="_blank" title="">sterownik-rotora.sch</a> (Rozmiar: 17.48 KB / Pobrań: 2249)
]]></description>
			<content:encoded><![CDATA[Witam. <br />
<br />
Na jednym z for nawiązała się dyskusja dotycząca Lekkiego rotora AR-303 i  w trakcie rozmowy padł pomysł modernizacji rotora. Rotor ten pomimo oczywistych wad (sterowanie, kalibracja) ma dwie niezaprzeczalne zalety. <br />
Te zalety to cena i możliwość łatwej modyfikacji.<br />
<br />
Rotor jest prosty, postanowiłem że sterownik do niego też będzie bardzo prosty i tani. W załączeniu pliki źródłowe wersji 1.0 beta sterownika. Kilka rzeczy wymaga jeszcze modyfikacji lub zdefiniowania wartości elementów.<br />
<br />

<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
&nbsp;&nbsp;<a href="attachment.php?aid=2207" target="_blank" title="">sterownik-rotora.png</a> (Rozmiar: 403.18 KB / Pobrań: 7591)
<br />

<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=2208" target="_blank" title="">plytka-sterownik.JPG</a> (Rozmiar: 591.75 KB / Pobrań: 7697)
<br />

<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=2209" target="_blank" title="">plytka-sterownik-face.JPG</a> (Rozmiar: 505.19 KB / Pobrań: 7346)
<br />
<br />
Na YouTube wrzuciłem kilka filmów obrazujących działanie sterownika.<br />
<a href="http://www.youtube.com/watch?v=F3c95_yE56M&amp;feature=player_profilepage" target="_blank" rel="noopener" class="mycode_url">Sterownik rotora pierwsze odpalenie.</a><br />
<br />
<a href="http://www.youtube.com/watch?v=tx3od7HRJ1E" target="_blank" rel="noopener" class="mycode_url">Test impulsatora</a><br />
<br />
<a href="http://www.youtube.com/watch?v=bfHmyS4P3Sw" target="_blank" rel="noopener" class="mycode_url">Zainstalowany impulsator</a><br />
<br />
<a href="http://www.youtube.com/watch?v=o-amTNZT1BE" target="_blank" rel="noopener" class="mycode_url">Mechanika krańcówki</a><br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/zip.gif" title="" border="0" alt=".rar" />
&nbsp;&nbsp;<a href="attachment.php?aid=2210" target="_blank" title="">sterownik-rotora-v.1.0-20110419.rar</a> (Rozmiar: 2.08 KB / Pobrań: 1996)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/layout.jpg" title="" border="0" alt=".lay" />
&nbsp;&nbsp;<a href="attachment.php?aid=2211" target="_blank" title="">sterownik-rotora.LAY</a> (Rozmiar: 111.09 KB / Pobrań: 2124)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/unknown.png" title="Nie określono" border="0" alt=".sch" />
&nbsp;&nbsp;<a href="attachment.php?aid=2212" target="_blank" title="">sterownik-rotora.sch</a> (Rozmiar: 17.48 KB / Pobrań: 2249)
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Sterownik rotora - Bascom]]></title>
			<link>https://sp-hm.pl/thread-476.html</link>
			<pubDate>Sun, 27 Mar 2011 19:42:57 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://sp-hm.pl/member.php?action=profile&uid=26">SQ2EER</a>]]></dc:creator>
			<guid isPermaLink="false">https://sp-hm.pl/thread-476.html</guid>
			<description><![CDATA[Witam czytających - posiadając minimalną wiedzę o pisaniu programów w Bascom'ie - postanowiłem że spróbuje napisać taki program i przetestować go na mojej płytce uruchomieniowej EvB 4.3.<br />
Na tą chwile mam taki oto napisany program.<br />
<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>'zwiększanie ADC zapala PB1-LED,gasi PB0-LED<br />
'zmiejszanie ADC zapala PB0-LED,gasi PB1-LED<br />
'wyrównanie wartości gasi LED'y<br />
'czyszczenie znaku stopnia działa<br />
'przy zmiejszaniu zadanej - poniżej wartości<br />
'odczytanej zapalaja się na przemian obie LED'y<br />
'nie wiem czemu?<br />
&#36;regfile = "m644pdef.dat"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'informuje kompilator o typie mikrokontrolera<br />
'&#36;sim<br />
&#36;crystal = 16000000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'informuje kompilator<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'o częstotliwości oscylatora<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'taktującego mikrokontroler<br />
Config Lcd = 16 * 4<br />
<br />
Config Lcdpin = Pin , Db4 = Portc.5 , Db5 = Portc.4 , Db6 = Portc.3 , Db7 = Portc.2 , E = Portc.6 , Rs = Portc.7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'porty mikrokontrolera, do których dołączono wyświetlacz LCD<br />
Config Adc = Single , Prescaler = Auto , Reference = Avcc&nbsp;&nbsp; 'konfiguracja wewnętrznego przetwornika A/C<br />
<br />
Config Portd = &amp;B11111100 : Portd = &amp;B11111111<br />
Config Portb = &amp;B11111111 : Portb = &amp;B11111111<br />
<br />
Deflcdchar 1 , 31 , 31 , 4 , 4 , 4 , 4 , 4 , 4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' replace ? with number (0-7)<br />
Deflcdchar 2 , 31 , 31 , 32 , 32 , 32 , 32 , 32 , 32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' replace ? with number (0-7)<br />
Deflcdchar 3 , 31 , 31 , 4 , 4 , 4 , 32 , 32 , 32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' replace ? with number (0-7)<br />
Deflcdchar 4 , 4 , 4 , 4 , 4 , 14 , 14 , 31 , 31&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' replace ? with number (0-7)<br />
Deflcdchar 5 , 12 , 18 , 18 , 12 , 32 , 32 , 32 , 32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' replace ? with number (0-7)<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'Zmienne<br />
Dim Wart_ac1 As Word&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'zmienna na wartość odczytaną z przetwornika<br />
Dim V1 As Single<br />
Dim V2 As Integer<br />
Dim V3 As String * 3<br />
Dim V4 As Integer<br />
Dim V5 As Single<br />
Dim V6 As String * 3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'zmienna przechowująca obliczon<br />
<br />
Declare Sub Lewo<br />
Declare Sub Prawo<br />
Declare Sub Zatrz<br />
<br />
Start Adc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'uruchamia wbudowany przetwornik<br />
<br />
Wart_ac1 = Getadc(0)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'odczytanie wartości z wejści ADC0 mikrokontrolera<br />
V1 = Wart_ac1 / 2.841&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'zamiana odczytanej wartości z A/C na stopnie azymutu<br />
V2 = Int(v1)<br />
V3 = Str(v2)<br />
<br />
Cursor Off<br />
<br />
<br />
Cls<br />
Wait 1<br />
<br />
<br />
Locate 1 , 4 : Lcd "STEROWNIK"<br />
Waitms 500<br />
Locate 2 , 6 : Lcd "ROTORA"<br />
Wait 1<br />
Cls<br />
<br />
Locate 1 , 6 : Lcd "Azymut"<br />
Locate 2 , 1 : Lcd Chr(1) ; Chr(2) ; Chr(3) ; Chr(2) ; Chr(1) ; Chr(2) ; Chr(3) ; Chr(2) ; Chr(1) ; Chr(2) ; Chr(3) ; Chr(2) ; Chr(1) ; Chr(2) ; Chr(3) ; Chr(2)<br />
Locate 3 , 2 : Lcd V3 ; Chr(5)<br />
Locate 3 , 9 : Lcd Chr(4)<br />
Locate 3 , 12 : Lcd V2 ; Chr(5)<br />
<br />
V4 = V2<br />
<br />
Cls<br />
<br />
Do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'początek pętli programu<br />
Wart_ac1 = Getadc(0)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'odczytanie wartości z wejści ADC0 mikrokontrolera<br />
V1 = Wart_ac1 / 2.841&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'zamiana odczytanej wartości z A/C na stopnie azymutu<br />
V2 = Int(v1)<br />
V3 = Str(v2)<br />
<br />
<br />
Locate 1 , 6 : Lcd "Azymut"<br />
Locate 2 , 1 : Lcd Chr(1) ; Chr(2) ; Chr(3) ; Chr(2) ; Chr(1) ; Chr(2) ; Chr(3) ; Chr(2) ; Chr(1) ; Chr(2) ; Chr(3) ; Chr(2) ; Chr(1) ; Chr(2) ; Chr(3) ; Chr(2)<br />
Locate 3 , 2 : Lcd V3 ; Chr(5) ; "&nbsp;&nbsp;"<br />
Locate 3 , 9 : Lcd Chr(4)<br />
Locate 3 , 12 : Lcd V4 ; Chr(5) ; "&nbsp;&nbsp;"<br />
<br />
<br />
If Pind.0 = 0 Then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'zwiększanie zadanego azymutu<br />
&nbsp;&nbsp;Waitms 25<br />
&nbsp;&nbsp;&nbsp;&nbsp;If Pind.0 = 0 Then<br />
&nbsp;&nbsp; Incr V4<br />
&nbsp;&nbsp;If V4 =&gt; 360 Then<br />
&nbsp;&nbsp;V4 = 360<br />
&nbsp;&nbsp;End If<br />
&nbsp;&nbsp;End If<br />
&nbsp;&nbsp;End If<br />
<br />
If Pind.1 = 0 Then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'zmiejszanie zadanego azymutu<br />
 Waitms 25<br />
 If Pind.1 = 0 Then<br />
 Decr V4<br />
 If V4 &lt;= 0 Then<br />
 V4 = 0<br />
 End If<br />
 End If<br />
 End If<br />
<br />
Locate 3 , 12 : Lcd V4 ; Chr(5)<br />
<br />
<br />
V5 = Val(v3)<br />
V6 = Str(v4)<br />
<br />
If V3 &lt; V6 Then<br />
Gosub Lewo<br />
End If<br />
<br />
If V3 &gt; V6 Then<br />
Gosub Prawo<br />
End If<br />
<br />
If V3 = V6 Then<br />
Gosub Zatrz<br />
End If<br />
<br />
Loop&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'koniec pętli Do...Loop<br />
End&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'koniec programu<br />
<br />
Sub Lewo<br />
Portb = &amp;B11111111 : Portb = &amp;B11111110<br />
End Sub Lewo<br />
<br />
Sub Prawo<br />
Portb = &amp;B11111111 : Portb = &amp;B11111101<br />
End Sub Prawo<br />
<br />
Sub Zatrz<br />
Portb = &amp;B11111111 : Portb = &amp;B11111111<br />
End Sub Zatrz</code></div></div><br />
podczas zmieszania przyciskiem wartości zadanej ( tej po prawej stronie)<br />
podczas przechodzenia z setek na dziesiątki oraz z dziesiątek na jedności zapala mi się LED podłączona do PB0 - czy może ktoś podpowiedzieć co robie źle - pozdrawiam Jacek.<br />
<br />
P.S. załączam obrazek poglądowy sterownika<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=2112" target="_blank" title="">rotor-blokowy.JPG</a> (Rozmiar: 49.13 KB / Pobrań: 3848)
]]></description>
			<content:encoded><![CDATA[Witam czytających - posiadając minimalną wiedzę o pisaniu programów w Bascom'ie - postanowiłem że spróbuje napisać taki program i przetestować go na mojej płytce uruchomieniowej EvB 4.3.<br />
Na tą chwile mam taki oto napisany program.<br />
<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>'zwiększanie ADC zapala PB1-LED,gasi PB0-LED<br />
'zmiejszanie ADC zapala PB0-LED,gasi PB1-LED<br />
'wyrównanie wartości gasi LED'y<br />
'czyszczenie znaku stopnia działa<br />
'przy zmiejszaniu zadanej - poniżej wartości<br />
'odczytanej zapalaja się na przemian obie LED'y<br />
'nie wiem czemu?<br />
&#36;regfile = "m644pdef.dat"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'informuje kompilator o typie mikrokontrolera<br />
'&#36;sim<br />
&#36;crystal = 16000000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'informuje kompilator<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'o częstotliwości oscylatora<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'taktującego mikrokontroler<br />
Config Lcd = 16 * 4<br />
<br />
Config Lcdpin = Pin , Db4 = Portc.5 , Db5 = Portc.4 , Db6 = Portc.3 , Db7 = Portc.2 , E = Portc.6 , Rs = Portc.7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'porty mikrokontrolera, do których dołączono wyświetlacz LCD<br />
Config Adc = Single , Prescaler = Auto , Reference = Avcc&nbsp;&nbsp; 'konfiguracja wewnętrznego przetwornika A/C<br />
<br />
Config Portd = &amp;B11111100 : Portd = &amp;B11111111<br />
Config Portb = &amp;B11111111 : Portb = &amp;B11111111<br />
<br />
Deflcdchar 1 , 31 , 31 , 4 , 4 , 4 , 4 , 4 , 4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' replace ? with number (0-7)<br />
Deflcdchar 2 , 31 , 31 , 32 , 32 , 32 , 32 , 32 , 32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' replace ? with number (0-7)<br />
Deflcdchar 3 , 31 , 31 , 4 , 4 , 4 , 32 , 32 , 32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' replace ? with number (0-7)<br />
Deflcdchar 4 , 4 , 4 , 4 , 4 , 14 , 14 , 31 , 31&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' replace ? with number (0-7)<br />
Deflcdchar 5 , 12 , 18 , 18 , 12 , 32 , 32 , 32 , 32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' replace ? with number (0-7)<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'Zmienne<br />
Dim Wart_ac1 As Word&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'zmienna na wartość odczytaną z przetwornika<br />
Dim V1 As Single<br />
Dim V2 As Integer<br />
Dim V3 As String * 3<br />
Dim V4 As Integer<br />
Dim V5 As Single<br />
Dim V6 As String * 3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'zmienna przechowująca obliczon<br />
<br />
Declare Sub Lewo<br />
Declare Sub Prawo<br />
Declare Sub Zatrz<br />
<br />
Start Adc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'uruchamia wbudowany przetwornik<br />
<br />
Wart_ac1 = Getadc(0)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'odczytanie wartości z wejści ADC0 mikrokontrolera<br />
V1 = Wart_ac1 / 2.841&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'zamiana odczytanej wartości z A/C na stopnie azymutu<br />
V2 = Int(v1)<br />
V3 = Str(v2)<br />
<br />
Cursor Off<br />
<br />
<br />
Cls<br />
Wait 1<br />
<br />
<br />
Locate 1 , 4 : Lcd "STEROWNIK"<br />
Waitms 500<br />
Locate 2 , 6 : Lcd "ROTORA"<br />
Wait 1<br />
Cls<br />
<br />
Locate 1 , 6 : Lcd "Azymut"<br />
Locate 2 , 1 : Lcd Chr(1) ; Chr(2) ; Chr(3) ; Chr(2) ; Chr(1) ; Chr(2) ; Chr(3) ; Chr(2) ; Chr(1) ; Chr(2) ; Chr(3) ; Chr(2) ; Chr(1) ; Chr(2) ; Chr(3) ; Chr(2)<br />
Locate 3 , 2 : Lcd V3 ; Chr(5)<br />
Locate 3 , 9 : Lcd Chr(4)<br />
Locate 3 , 12 : Lcd V2 ; Chr(5)<br />
<br />
V4 = V2<br />
<br />
Cls<br />
<br />
Do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'początek pętli programu<br />
Wart_ac1 = Getadc(0)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'odczytanie wartości z wejści ADC0 mikrokontrolera<br />
V1 = Wart_ac1 / 2.841&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'zamiana odczytanej wartości z A/C na stopnie azymutu<br />
V2 = Int(v1)<br />
V3 = Str(v2)<br />
<br />
<br />
Locate 1 , 6 : Lcd "Azymut"<br />
Locate 2 , 1 : Lcd Chr(1) ; Chr(2) ; Chr(3) ; Chr(2) ; Chr(1) ; Chr(2) ; Chr(3) ; Chr(2) ; Chr(1) ; Chr(2) ; Chr(3) ; Chr(2) ; Chr(1) ; Chr(2) ; Chr(3) ; Chr(2)<br />
Locate 3 , 2 : Lcd V3 ; Chr(5) ; "&nbsp;&nbsp;"<br />
Locate 3 , 9 : Lcd Chr(4)<br />
Locate 3 , 12 : Lcd V4 ; Chr(5) ; "&nbsp;&nbsp;"<br />
<br />
<br />
If Pind.0 = 0 Then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'zwiększanie zadanego azymutu<br />
&nbsp;&nbsp;Waitms 25<br />
&nbsp;&nbsp;&nbsp;&nbsp;If Pind.0 = 0 Then<br />
&nbsp;&nbsp; Incr V4<br />
&nbsp;&nbsp;If V4 =&gt; 360 Then<br />
&nbsp;&nbsp;V4 = 360<br />
&nbsp;&nbsp;End If<br />
&nbsp;&nbsp;End If<br />
&nbsp;&nbsp;End If<br />
<br />
If Pind.1 = 0 Then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'zmiejszanie zadanego azymutu<br />
 Waitms 25<br />
 If Pind.1 = 0 Then<br />
 Decr V4<br />
 If V4 &lt;= 0 Then<br />
 V4 = 0<br />
 End If<br />
 End If<br />
 End If<br />
<br />
Locate 3 , 12 : Lcd V4 ; Chr(5)<br />
<br />
<br />
V5 = Val(v3)<br />
V6 = Str(v4)<br />
<br />
If V3 &lt; V6 Then<br />
Gosub Lewo<br />
End If<br />
<br />
If V3 &gt; V6 Then<br />
Gosub Prawo<br />
End If<br />
<br />
If V3 = V6 Then<br />
Gosub Zatrz<br />
End If<br />
<br />
Loop&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'koniec pętli Do...Loop<br />
End&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'koniec programu<br />
<br />
Sub Lewo<br />
Portb = &amp;B11111111 : Portb = &amp;B11111110<br />
End Sub Lewo<br />
<br />
Sub Prawo<br />
Portb = &amp;B11111111 : Portb = &amp;B11111101<br />
End Sub Prawo<br />
<br />
Sub Zatrz<br />
Portb = &amp;B11111111 : Portb = &amp;B11111111<br />
End Sub Zatrz</code></div></div><br />
podczas zmieszania przyciskiem wartości zadanej ( tej po prawej stronie)<br />
podczas przechodzenia z setek na dziesiątki oraz z dziesiątek na jedności zapala mi się LED podłączona do PB0 - czy może ktoś podpowiedzieć co robie źle - pozdrawiam Jacek.<br />
<br />
P.S. załączam obrazek poglądowy sterownika<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=2112" target="_blank" title="">rotor-blokowy.JPG</a> (Rozmiar: 49.13 KB / Pobrań: 3848)
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Sterownik przemiennika crossband]]></title>
			<link>https://sp-hm.pl/thread-89.html</link>
			<pubDate>Mon, 18 Oct 2010 22:06:38 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://sp-hm.pl/member.php?action=profile&uid=762">SQ5NBR</a>]]></dc:creator>
			<guid isPermaLink="false">https://sp-hm.pl/thread-89.html</guid>
			<description><![CDATA[Witam Forumowiczów!<br />
<br />
Od pewnego czasu chodził mi po głowie pomysł praktycznego zrealizowania dwukierunkowego przemiennika crossbandowego 2m/70cm, umożliwiającego łączność między użytkownikami radiotelefonów na różne pasma. Samo urządzenie w fazie testowej zostało przeze mnie już uruchomione i pracuje zadowalająco, jednak poczyniłem kroki zmierzające do jego formalnego zalegalizowania, co wiąże się z koniecznością nadawania znamiennika na obydwu częstotliwościach, a także roger beepa.<br />
<br />
Ponieważ charakter pracy takiego transpondera jest dwukierunkowy, opisany na forum sterownik nie nadaje się, gdyż konieczne jest monitorowanie stanu sygnałów SQUELCH w dwóch odbiornikach i załączanie jednego z dwóch nadajników zależnie od tego, który odbiornik został aktywowany.<br />
<br />
Urządzenie jest wykonane na bazie dwóch ręcznych radiotelefonów Motorola, tak więc konieczne było zastosowanie przekaźników dołączających transformatory audio do wejścia MIC, w celu aktywacji PTT.<br />
<br />
Sterownik taki powinien więc posiadać dwa wejścia monitorujące stan blokady szumów, oraz dwa wyjścia sterujące przekaźnikami poprzez odpowiednie tranzystory. Powinien również umożliwiać podanie sygnału znamiennika do obydwu wejść mikrofonowych, ale z odpowiednią separacją, tak aby nie powodował sprzężeń akustycznych podczas normalnej pracy transpondera.<br />
<br />
Tak mniej więcej wygląda skrócony opis urządzonka, ze swojej strony jestem w stanie wykonać montaż sterownika jak i jego uruchomienie, jednak już napisanie odpowiedniego programu przerasta moje możliwości, tak więc liczę w tej kwestii na pomoc Kolegów.<br />
<br />
73!<br />
Janek<br />
SQ5NBR]]></description>
			<content:encoded><![CDATA[Witam Forumowiczów!<br />
<br />
Od pewnego czasu chodził mi po głowie pomysł praktycznego zrealizowania dwukierunkowego przemiennika crossbandowego 2m/70cm, umożliwiającego łączność między użytkownikami radiotelefonów na różne pasma. Samo urządzenie w fazie testowej zostało przeze mnie już uruchomione i pracuje zadowalająco, jednak poczyniłem kroki zmierzające do jego formalnego zalegalizowania, co wiąże się z koniecznością nadawania znamiennika na obydwu częstotliwościach, a także roger beepa.<br />
<br />
Ponieważ charakter pracy takiego transpondera jest dwukierunkowy, opisany na forum sterownik nie nadaje się, gdyż konieczne jest monitorowanie stanu sygnałów SQUELCH w dwóch odbiornikach i załączanie jednego z dwóch nadajników zależnie od tego, który odbiornik został aktywowany.<br />
<br />
Urządzenie jest wykonane na bazie dwóch ręcznych radiotelefonów Motorola, tak więc konieczne było zastosowanie przekaźników dołączających transformatory audio do wejścia MIC, w celu aktywacji PTT.<br />
<br />
Sterownik taki powinien więc posiadać dwa wejścia monitorujące stan blokady szumów, oraz dwa wyjścia sterujące przekaźnikami poprzez odpowiednie tranzystory. Powinien również umożliwiać podanie sygnału znamiennika do obydwu wejść mikrofonowych, ale z odpowiednią separacją, tak aby nie powodował sprzężeń akustycznych podczas normalnej pracy transpondera.<br />
<br />
Tak mniej więcej wygląda skrócony opis urządzonka, ze swojej strony jestem w stanie wykonać montaż sterownika jak i jego uruchomienie, jednak już napisanie odpowiedniego programu przerasta moje możliwości, tak więc liczę w tej kwestii na pomoc Kolegów.<br />
<br />
73!<br />
Janek<br />
SQ5NBR]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Mini komputer do urządzeń QRP]]></title>
			<link>https://sp-hm.pl/thread-306.html</link>
			<pubDate>Thu, 14 Oct 2010 21:39:29 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://sp-hm.pl/member.php?action=profile&uid=11">SP5FCS</a>]]></dc:creator>
			<guid isPermaLink="false">https://sp-hm.pl/thread-306.html</guid>
			<description><![CDATA[Wielu Kolegów budując proste urządzenia QRP umieszcza w nich skalę do pomiaru częstotliwości. Dostępnych jest wiele ciekawych rozwiązań bazujących najczęściej na procesorze. Zastosowanie mikroprocesora oraz wyświetlacza LCD w takim module pozwala na realizację dodatkowych funkcji przydatnych podczas obsługi urządzenia takich jak:<br />
- cyfrowy S_metr;<br />
- cyfrowy SWR oraz pomiar mocy;<br />
- konfiguracja radia (f.pcz., emisje, filtry,N/O, itd.);<br />
<br />
W tym wątku proponuję dyskusję i realizację mini komputera pokładowego do urządzeń QRP wykonującego podstawowe pomiary oraz sterowanie całym radiem.<br />
Konfiguracja sterownika:<br />
- procesor ATmega8, LCD 2*16 znaków;<br />
- 7 klawiszy sterujących, możliwość podłączenia enkodera;<br />
- druk jednostronny pod termotransfer;<br />
<br />
Na zdjęciach prototyp komputerka, schemat ideowy oraz projekt druku do wyprasowania. Sterownik może być wykorzystany do innych celów jako uniwersalny moduł mikroprocesorowy np nauki pisania programów.<br />
<br />
<span style="color: #FF0000;" class="mycode_color">Na schemacie była zła wartość rezystora R2, ma być 2k7. </span>   Przy wartości 1 k źle rozpoznawał klawisze funkcyjne.<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=1252" target="_blank" title="">AT8_comp_all.JPG</a> (Rozmiar: 259.89 KB / Pobrań: 10228)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=1253" target="_blank" title="">AT8comp_elementy.JPG</a> (Rozmiar: 265.37 KB / Pobrań: 10718)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=1254" target="_blank" title="">AT8comp_druk.JPG</a> (Rozmiar: 297.54 KB / Pobrań: 10230)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=1255" target="_blank" title="">AT8comp_sch_2.jpg</a> (Rozmiar: 102.86 KB / Pobrań: 10429)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/pdf.png" title="Adobe Acrobat PDF" border="0" alt=".pdf" />
&nbsp;&nbsp;<a href="attachment.php?aid=1256" target="_blank" title="">AT8comp_schemat.pdf</a> (Rozmiar: 47.45 KB / Pobrań: 2736)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/pdf.png" title="Adobe Acrobat PDF" border="0" alt=".pdf" />
&nbsp;&nbsp;<a href="attachment.php?aid=1257" target="_blank" title="">AT8comp_pcb.pdf</a> (Rozmiar: 25.86 KB / Pobrań: 2483)
]]></description>
			<content:encoded><![CDATA[Wielu Kolegów budując proste urządzenia QRP umieszcza w nich skalę do pomiaru częstotliwości. Dostępnych jest wiele ciekawych rozwiązań bazujących najczęściej na procesorze. Zastosowanie mikroprocesora oraz wyświetlacza LCD w takim module pozwala na realizację dodatkowych funkcji przydatnych podczas obsługi urządzenia takich jak:<br />
- cyfrowy S_metr;<br />
- cyfrowy SWR oraz pomiar mocy;<br />
- konfiguracja radia (f.pcz., emisje, filtry,N/O, itd.);<br />
<br />
W tym wątku proponuję dyskusję i realizację mini komputera pokładowego do urządzeń QRP wykonującego podstawowe pomiary oraz sterowanie całym radiem.<br />
Konfiguracja sterownika:<br />
- procesor ATmega8, LCD 2*16 znaków;<br />
- 7 klawiszy sterujących, możliwość podłączenia enkodera;<br />
- druk jednostronny pod termotransfer;<br />
<br />
Na zdjęciach prototyp komputerka, schemat ideowy oraz projekt druku do wyprasowania. Sterownik może być wykorzystany do innych celów jako uniwersalny moduł mikroprocesorowy np nauki pisania programów.<br />
<br />
<span style="color: #FF0000;" class="mycode_color">Na schemacie była zła wartość rezystora R2, ma być 2k7. </span>   Przy wartości 1 k źle rozpoznawał klawisze funkcyjne.<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=1252" target="_blank" title="">AT8_comp_all.JPG</a> (Rozmiar: 259.89 KB / Pobrań: 10228)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=1253" target="_blank" title="">AT8comp_elementy.JPG</a> (Rozmiar: 265.37 KB / Pobrań: 10718)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=1254" target="_blank" title="">AT8comp_druk.JPG</a> (Rozmiar: 297.54 KB / Pobrań: 10230)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=1255" target="_blank" title="">AT8comp_sch_2.jpg</a> (Rozmiar: 102.86 KB / Pobrań: 10429)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/pdf.png" title="Adobe Acrobat PDF" border="0" alt=".pdf" />
&nbsp;&nbsp;<a href="attachment.php?aid=1256" target="_blank" title="">AT8comp_schemat.pdf</a> (Rozmiar: 47.45 KB / Pobrań: 2736)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/pdf.png" title="Adobe Acrobat PDF" border="0" alt=".pdf" />
&nbsp;&nbsp;<a href="attachment.php?aid=1257" target="_blank" title="">AT8comp_pcb.pdf</a> (Rozmiar: 25.86 KB / Pobrań: 2483)
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Interfejs USB_TRX]]></title>
			<link>https://sp-hm.pl/thread-298.html</link>
			<pubDate>Sat, 09 Oct 2010 07:17:08 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://sp-hm.pl/member.php?action=profile&uid=11">SP5FCS</a>]]></dc:creator>
			<guid isPermaLink="false">https://sp-hm.pl/thread-298.html</guid>
			<description><![CDATA[Moduł interfejsu do komunikacji pomiędzy komputerem, złącze USB a i procesorem syntezy np Oleg 9. Moduł posiada optoizolację na transoptorach oraz rozdzielone zasilania od strony PC i radia .<br />
Widok modułu i schemat na zdjęciach. Transoptory SMD PC817C, da się zamontować również przewlekane.<br />
<br />
Projekt druku w Sprint Layout 5.0<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=1156" target="_blank" title="">usb_trx_sch.jpg</a> (Rozmiar: 67.55 KB / Pobrań: 4536)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=1185" target="_blank" title="">usb_trx_up.JPG</a> (Rozmiar: 398.62 KB / Pobrań: 4560)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=1213" target="_blank" title="">usb_trx_down.JPG</a> (Rozmiar: 523.05 KB / Pobrań: 4326)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/layout.jpg" title="" border="0" alt=".lay" />
&nbsp;&nbsp;<a href="attachment.php?aid=1214" target="_blank" title="">usb_trx.LAY</a> (Rozmiar: 56.94 KB / Pobrań: 1788)
]]></description>
			<content:encoded><![CDATA[Moduł interfejsu do komunikacji pomiędzy komputerem, złącze USB a i procesorem syntezy np Oleg 9. Moduł posiada optoizolację na transoptorach oraz rozdzielone zasilania od strony PC i radia .<br />
Widok modułu i schemat na zdjęciach. Transoptory SMD PC817C, da się zamontować również przewlekane.<br />
<br />
Projekt druku w Sprint Layout 5.0<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=1156" target="_blank" title="">usb_trx_sch.jpg</a> (Rozmiar: 67.55 KB / Pobrań: 4536)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=1185" target="_blank" title="">usb_trx_up.JPG</a> (Rozmiar: 398.62 KB / Pobrań: 4560)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=1213" target="_blank" title="">usb_trx_down.JPG</a> (Rozmiar: 523.05 KB / Pobrań: 4326)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/layout.jpg" title="" border="0" alt=".lay" />
&nbsp;&nbsp;<a href="attachment.php?aid=1214" target="_blank" title="">usb_trx.LAY</a> (Rozmiar: 56.94 KB / Pobrań: 1788)
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[HMGARST]]></title>
			<link>https://sp-hm.pl/thread-280.html</link>
			<pubDate>Sun, 19 Sep 2010 10:26:55 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://sp-hm.pl/member.php?action=profile&uid=5">SQ9MDD</a>]]></dc:creator>
			<guid isPermaLink="false">https://sp-hm.pl/thread-280.html</guid>
			<description><![CDATA[Proszę o pomoc w projekcie Nadajnika do Amatorskiej Radiolokacji Sportowej w skrócie HMGARST.<br />
W tej chwili jest już gotowy i przetestowany program, oraz rozrysowany schemat części cyfrowej. Potrzebuje by ktoś z kolegów wrysował w ten schemat część nadawczą na 80m o mocy 1-5W z możliwością skokowego odstrajania układu. Oraz pomocy podczas rysowania płytki w layoucie (doświadczenie z w.cz).<br />
W załączeniu wszystkie pliki konieczne do przyłączenia się do projektu.<br />
<br />
Zasady oczywiście takie same jak dla wszystkich otwartych projektów, wszystko publikujemy w  postaci źródłowej na licencji GPL.<br />
<br />
<br />

<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=1125" target="_blank" title="">ardf-beacon.jpg</a> (Rozmiar: 124.39 KB / Pobrań: 2220)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/unknown.png" title="Nie określono" border="0" alt=".odt" />
&nbsp;&nbsp;<a href="attachment.php?aid=1126" target="_blank" title="">HMGARST.odt</a> (Rozmiar: 6.99 KB / Pobrań: 1469)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/pdf.png" title="Adobe Acrobat PDF" border="0" alt=".pdf" />
&nbsp;&nbsp;<a href="attachment.php?aid=1127" target="_blank" title="">HMGARST.pdf</a> (Rozmiar: 47.32 KB / Pobrań: 1484)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/zip.gif" title="" border="0" alt=".rar" />
&nbsp;&nbsp;<a href="attachment.php?aid=1128" target="_blank" title="">ardf-beacon.rar</a> (Rozmiar: 2.09 KB / Pobrań: 1331)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/zip.gif" title="" border="0" alt=".rar" />
&nbsp;&nbsp;<a href="attachment.php?aid=1129" target="_blank" title="">ardf-beacon.sch.rar</a> (Rozmiar: 1.95 KB / Pobrań: 1282)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/zip.gif" title="" border="0" alt=".rar" />
&nbsp;&nbsp;<a href="attachment.php?aid=1130" target="_blank" title="">20100919-HMGARST-complet-files.rar</a> (Rozmiar: 375.74 KB / Pobrań: 1407)
]]></description>
			<content:encoded><![CDATA[Proszę o pomoc w projekcie Nadajnika do Amatorskiej Radiolokacji Sportowej w skrócie HMGARST.<br />
W tej chwili jest już gotowy i przetestowany program, oraz rozrysowany schemat części cyfrowej. Potrzebuje by ktoś z kolegów wrysował w ten schemat część nadawczą na 80m o mocy 1-5W z możliwością skokowego odstrajania układu. Oraz pomocy podczas rysowania płytki w layoucie (doświadczenie z w.cz).<br />
W załączeniu wszystkie pliki konieczne do przyłączenia się do projektu.<br />
<br />
Zasady oczywiście takie same jak dla wszystkich otwartych projektów, wszystko publikujemy w  postaci źródłowej na licencji GPL.<br />
<br />
<br />

<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=1125" target="_blank" title="">ardf-beacon.jpg</a> (Rozmiar: 124.39 KB / Pobrań: 2220)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/unknown.png" title="Nie określono" border="0" alt=".odt" />
&nbsp;&nbsp;<a href="attachment.php?aid=1126" target="_blank" title="">HMGARST.odt</a> (Rozmiar: 6.99 KB / Pobrań: 1469)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/pdf.png" title="Adobe Acrobat PDF" border="0" alt=".pdf" />
&nbsp;&nbsp;<a href="attachment.php?aid=1127" target="_blank" title="">HMGARST.pdf</a> (Rozmiar: 47.32 KB / Pobrań: 1484)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/zip.gif" title="" border="0" alt=".rar" />
&nbsp;&nbsp;<a href="attachment.php?aid=1128" target="_blank" title="">ardf-beacon.rar</a> (Rozmiar: 2.09 KB / Pobrań: 1331)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/zip.gif" title="" border="0" alt=".rar" />
&nbsp;&nbsp;<a href="attachment.php?aid=1129" target="_blank" title="">ardf-beacon.sch.rar</a> (Rozmiar: 1.95 KB / Pobrań: 1282)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/zip.gif" title="" border="0" alt=".rar" />
&nbsp;&nbsp;<a href="attachment.php?aid=1130" target="_blank" title="">20100919-HMGARST-complet-files.rar</a> (Rozmiar: 375.74 KB / Pobrań: 1407)
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Sterownik przemiennika]]></title>
			<link>https://sp-hm.pl/thread-268.html</link>
			<pubDate>Mon, 16 Aug 2010 09:33:40 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://sp-hm.pl/member.php?action=profile&uid=5">SQ9MDD</a>]]></dc:creator>
			<guid isPermaLink="false">https://sp-hm.pl/thread-268.html</guid>
			<description><![CDATA[Ależ się nam offtop zrobił, ale to dobrze, może będzie można wątek pociachać i fajny dział o programowaniu wyjdzie.<br />
<br />
Jak obiecałem usiadłem w niedzielę do nauki bascoma. <br />
I oto co mi wyszło z pod palców:<br />
<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>'-------------------------------------------------------------------------------<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;REPEATER CONTROLER v.2.0.L<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L - obsługa LCD<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;N - brak sygnalizacji zewnętrznej<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;D - sygnalizacja diodowa<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SQ9MDD &lt;rlabus@luxmat.com&gt; 2010<br />
'<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This program is free software; you can redistribute it and/or modify<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;it under the terms of the GNU General Public License as published by<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the Free Software Foundation; either version 2 of the License, or<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(at your option) any later version.<br />
'<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This program is distributed in the hope that it will be useful,<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;but WITHOUT ANY WARRANTY; without even the implied warranty of<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&nbsp;&nbsp;See the<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GNU General Public License for more details.<br />
'<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;You should have received a copy of the GNU General Public License<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;along with this program; if not, write to the Free Software<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MA 02110-1301, USA.<br />
'-------------------------------------------------------------------------------<br />
&#36;regfile = Attiny2313.def<br />
&#36;crystal = 4000000<br />
&#36;baud = 9600<br />
&#36;hwstack = 24<br />
&#36;swstack = 0<br />
&#36;framesize = 32<br />
<br />
Config Portb = &amp;B11111111<br />
Config Portd = &amp;B1001101<br />
<br />
Portb = &amp;B00000000<br />
Portd = &amp;B0110010<br />
<br />
Rx_signal Alias Pind.1<br />
Morsepin Alias Portb.0<br />
Ptt Alias Portd.6<br />
<br />
Beep_option_jumper Alias Pind.4<br />
Ident_after_jumper Alias Pind.5<br />
<br />
<br />
'zegar on<br />
Enable Interrupts<br />
Config Timer1 = Timer , Prescale = 64<br />
Enable Timer1<br />
<br />
'definicje stałych<br />
Const Speed = 12<br />
Const Czestotliwosc = 450<br />
Const Kropka = Czestotliwosc / Speed<br />
Const Kreska = 3 * Kropka<br />
<br />
'definicje zmiennych<br />
Dim Sendchar As String * 1<br />
Dim Charcode As Byte<br />
Dim Dataindex As Byte<br />
Dim Charindex As Byte<br />
Dim Nextcharindex As Byte<br />
Dim Charstring As String * 12<br />
Dim Stringlength As Byte<br />
Dim Codelength As Byte<br />
Dim Codeindex As Byte<br />
Dim Codeelement As String * 1<br />
Dim Sendcw As Bit<br />
Dim Tx_flag As Bit<br />
Dim Rx_flag As Bit<br />
Dim Beep_flag As Bit<br />
Dim Podtrzymanie_flag As Bit<br />
Dim Rx As Bit<br />
Dim Rxa As Bit<br />
Dim Sekunda As Byte<br />
Dim Minuta As Byte<br />
Dim Countdown As Byte<br />
Dim Beep_option As Bit<br />
Dim Inputtekst As String * 6<br />
Dim Ident_after_tx As Bit<br />
Dim Sendcwinterwal As Byte<br />
Dim Czaspodtrzymania As Byte<br />
<br />
'konfiguracja zmiennych sterownika<br />
Inputtekst = "SR5WM"&nbsp;&nbsp;&nbsp;&nbsp; 'znamiennik max 6 znaków jesli chcesz wiekszy zmien rozmiar zmiennej Inputtekst<br />
Sendcwinterwal = 5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'czas automatycznego wysyłania znamiennika w minutach<br />
Czaspodtrzymania = 4&nbsp;&nbsp;&nbsp;&nbsp; 'czas podtrzymania nosnej w sekundach<br />
'Beep_option = 1<br />
'Ident_after_tx = 1<br />
<br />
'-------------------------------------------------------------------------------<br />
'tutaj zaczynamy prace programu<br />
'tutaj uruchamiam timer do odliczania wyłączania flag<br />
On Timer1 Liczmy<br />
Wait 3<br />
'Uruchomienie Przemiennika Wysyłamy znamiennik<br />
Sendcw = 1<br />
<br />
If Beep_option_jumper = 1 Then<br />
&nbsp;&nbsp; Beep_option = 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '0/1 beepek na koniec RX<br />
Else<br />
&nbsp;&nbsp; Beep_option = 1<br />
End If<br />
<br />
If Ident_after_jumper = 1 Then<br />
&nbsp;&nbsp; Ident_after_tx = 0&nbsp;&nbsp;&nbsp;&nbsp;'0/1 czy nadawac znamiennik na koniec kazdego tx-a&nbsp;&nbsp;czy tylko co ustalony interwał czasowy<br />
Else<br />
&nbsp;&nbsp; Ident_after_tx = 1<br />
End If<br />
<br />
<br />
'główna pętla programu<br />
'-------------------------------------------------------------------------------<br />
Do<br />
<br />
'obsługa sygnału RX i ustawianie flagi RX i Beep<br />
'-------------------------------------------------------------------------------<br />
'jesli pin RX zwarty do masy<br />
&nbsp;&nbsp; If Rx_signal = 0 Then<br />
'ustawiam bit pomocniczy<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Rx = 1<br />
'jeśli po 20ms nadal wciśnięty<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Rx = 1 And Rxa = 0 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Rxa = 1<br />
'ustawiamy flage jest RX<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Rx_flag = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
'jeśli sygnał braku zajętości znika to<br />
&nbsp;&nbsp; Elseif Rxa = 1 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Beep_flag = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Rx_flag = 0<br />
'zeruj obydwa bity pomocnicze<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Rx = 0 : Rxa = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
<br />
<br />
'ustawianie flagi TX jesli ustawione flagi RX lub podtrzymanie<br />
'-------------------------------------------------------------------------------<br />
<br />
'ustawianie flagi podtrzymanie jesli zapalony RX<br />
If Rx_flag = 1 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Podtrzymanie_flag = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Countdown = 0<br />
End If<br />
<br />
'ustawiamy flage TX jesli mamy RX-a lub dziala podtrzymanie<br />
 If Rx_flag = 1 Or Podtrzymanie_flag = 1 Then<br />
&nbsp;&nbsp; Tx_flag = 1<br />
 Else<br />
&nbsp;&nbsp; Tx_flag = 0<br />
 End If<br />
<br />
'ustawiamy port PTT jesli mamy flage tx<br />
 If Tx_flag = 1 Then<br />
 'wysterowanie nadajnika<br />
&nbsp;&nbsp;&nbsp;&nbsp;Ptt = 1<br />
 'tutaj beep jesli koniec nadawania i beep_option enabled<br />
&nbsp;&nbsp;&nbsp;&nbsp;If Beep_flag = 1 And Rx_flag = 0 And Beep_option = 1 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;Waitms 150<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sound Morsepin , Kropka , Czestotliwosc<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Beep_flag = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
 Else<br />
 'wysterowanie nadajnika<br />
&nbsp;&nbsp;&nbsp;&nbsp;Ptt = 0<br />
 End If<br />
<br />
'procedura wysylania znamiennika<br />
'-------------------------------------------------------------------------------<br />
If Sendcw = 1 Then<br />
'uruchamiam sobie TX<br />
Ptt = 1<br />
'blokujemy timer na czas wysylania znamiennikabo chrypi2<br />
 Stop Timer1<br />
 Waitms 300<br />
&nbsp;&nbsp; Stringlength = Len(inputtekst)<br />
'wlaczyc pin PTT tutaj<br />
'tutaj przesuwamy się po ciągu znaków i będziemy odtwarzać każdą literę z osobna<br />
&nbsp;&nbsp; For Charindex = 1 To Stringlength<br />
&nbsp;&nbsp; Sendchar = Mid(inputtekst , Charindex , 1)<br />
&nbsp;&nbsp; Charcode = Asc(sendchar)<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;Dataindex = Charcode - 48<br />
&nbsp;&nbsp;&nbsp;&nbsp;Charstring = Lookupstr(dataindex , Alfabet)<br />
&nbsp;&nbsp;&nbsp;&nbsp;Codelength = Len(charstring)<br />
<br />
'ta pętla generuje kazda litere znaku<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For Codeindex = 1 To Codelength<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Codeelement = Mid(charstring , Codeindex , 1)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Codeelement = "." Then<br />
'Zagraj kropke<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Sound Morsepin , Kropka , Czestotliwosc<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else<br />
'Zagraj kreske<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Sound Morsepin , Kreska , Czestotliwosc<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Codeindex &lt; Codelength Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Waitms Kropka<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Next Codeelement<br />
'odstęp pomiedzy znakami 3 x kropka<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Waitms Kreska<br />
'i wracamy do początku pętli po następną literę<br />
&nbsp;&nbsp; Next Charindex<br />
'skonczylismy gasimy flaga nadawania znamiennika<br />
'resetujemy lflagi<br />
&nbsp;&nbsp; Sendcw = 0<br />
&nbsp;&nbsp; Tx_flag = 0<br />
&nbsp;&nbsp; Sekunda = 0<br />
'skonczylismy nadawac znamiennik odpalamy timer 1<br />
&nbsp;&nbsp; Start Timer1<br />
&nbsp;&nbsp; End If<br />
<br />
'koniec pętli<br />
Loop<br />
'koniec programu<br />
End<br />
<br />
<br />
'obsługa<br />
'-------------------------------------------------------------------------------<br />
<br />
Liczmy:<br />
Timer1 = 0<br />
'tutaj proste naliczanie w sekundzie i cos (dla uproszczenia i skrocenia kodu uzyłem timera tc1/64 to daje 1s = 1,05S)<br />
&nbsp;&nbsp; Sekunda = Sekunda + 1<br />
&nbsp;&nbsp; If Sekunda = 60 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Minuta = Minuta + 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Minuta = 60 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Minuta = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sekunda = 0<br />
&nbsp;&nbsp; End If<br />
<br />
'jesli podtrzymanie na 1 a rx spadl zczynamy odliczanie do wylaczenia<br />
&nbsp;&nbsp; If Podtrzymanie_flag = 1 And Rx_flag = 0 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp; Countdown = Countdown + 1<br />
'jesli doszlismy do konca gas flagi<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Countdown &gt;= Czaspodtrzymania Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Podtrzymanie_flag = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Tx_flag = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Countdown = 0<br />
'jesli zaznaczona flaga identylfikacji po odpuszczeniu tx to zagraj znamiennik<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Ident_after_tx = 1 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Minuta = Sendcwinterwal<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
'reset licznika jesli pojawi sie flaga rx w trakcie podtrzymania<br />
&nbsp;&nbsp; Elseif Podtrzymanie_flag = 1 And Rx_flag = 1 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Countdown = 0<br />
&nbsp;&nbsp; End If<br />
<br />
'okresowe wysyłanie znamiennika jesli przekroczono czas i nikt nie nadaje<br />
&nbsp;&nbsp; If Minuta &gt;= Sendcwinterwal And Rx_flag = 0 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tx_flag = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sendcw = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Minuta = 0<br />
&nbsp;&nbsp; End If<br />
<br />
Return<br />
'-------------------------------------------------------------------------------<br />
<br />
Alfabet:<br />
Data "-----"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '0&nbsp;&nbsp;Znaki pokolei tak jak są ustawione w tablicy ASCII<br />
Data ".----"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '1&nbsp;&nbsp;przy wywoływaniu musimy tylko przestawić indeks o 48<br />
Data "..---"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '2&nbsp;&nbsp;ponieważ cyfra 0 ma kod ASCII 48<br />
Data "...--"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '3<br />
Data "....-"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '4<br />
Data "....."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '5<br />
Data "-...."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '6<br />
Data "--..."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '7<br />
Data "---.."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '8<br />
Data "----."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '9<br />
Data "."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ': do generowania znamienników znaki specjalne nie są potrzebne<br />
Data "."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ';<br />
Data "."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '&lt;<br />
Data "."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '=<br />
Data "."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '&gt;<br />
Data "."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '?<br />
Data "."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '@<br />
Data ".-"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'A&nbsp;&nbsp;Literki<br />
Data "-..."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'B<br />
Data "-.-."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'C<br />
Data "-.."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'D<br />
Data "."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'E<br />
Data "..-."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'F<br />
Data "--."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'G<br />
Data "...."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'H<br />
Data ".."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'I<br />
Data ".---"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'J<br />
Data "-.-"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'K<br />
Data ".-.."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'L<br />
Data "--"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'M<br />
Data "-."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'N<br />
Data "---"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'O<br />
Data ".--."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'P<br />
Data "--.-"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'Q<br />
Data ".-."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'R<br />
Data "..."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'S<br />
Data "-"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'T<br />
Data "..-"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'U<br />
Data "...-"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'V<br />
Data ".--"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'W<br />
Data "-..-"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'X<br />
Data "-.--"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'Y<br />
Data "--.."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'Z</code></div></div><br />
Jest to bardzo prosty sterownik przemiennika, zrealizowany na ATTiny2313.<br />
Funkcje które posiada:<br />
<br />
- opcje konfigurujemy przed kompilacją programu<br />
- podtrzymanie nośnej w sekundach<br />
- beep po zdjęciu sygnału RX jako opcja <br />
- identyfikacja cw co zadany okres czasu w minutach<br />
- identyfikacja cw po każdym tx jako opcja<br />
<br />
Obsługę czasów zrealizowałem na zegarze i przerwaniu od tegoż zegara.<br />
Źródło które tutaj wkleiłem starałem się mocno skomentować by umożliwić kolegom szybką analizę i ewentualne poprawki. Całość została skompilowana i przetestowana na płytce testowej. W tym tygodniu uruchomię układ z tym programem w realnych warunkach.<br />
<br />
Kod jest na licencji GPL, można kopiować modyfikować, umieszczać we własnych projektach sprzedawać itd...<br />
<br />
<br />
2010.08.18 UPDATE<br />
<br />
Poprawiłem w kodzie kilka oczywistych błędów, zmieniłem opcję beep i identyfikacja cw na obsługiwaną z dipswitcha.<br />
<br />
Pracujący sterownik wersja bardzo mocno testowa:<br />

<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=1000" target="_blank" title="">IMG00372-20100818-0013.jpg</a> (Rozmiar: 364.68 KB / Pobrań: 6017)
<br />
<br />
<br />
2010.08.19 UPDATE<br />
<br />
Kolega narysował schemat do mojego programu. W załączeniu poniżej.<br />
 <br />

<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=1007" target="_blank" title="">Sterownik_przemiennika.jpg</a> (Rozmiar: 88.57 KB / Pobrań: 6520)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/zip.png" title="ZIP File" border="0" alt=".zip" />
&nbsp;&nbsp;<a href="attachment.php?aid=1001" target="_blank" title="">repeater-controler-v2.0.N.zip</a> (Rozmiar: 3.08 KB / Pobrań: 2033)
]]></description>
			<content:encoded><![CDATA[Ależ się nam offtop zrobił, ale to dobrze, może będzie można wątek pociachać i fajny dział o programowaniu wyjdzie.<br />
<br />
Jak obiecałem usiadłem w niedzielę do nauki bascoma. <br />
I oto co mi wyszło z pod palców:<br />
<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>'-------------------------------------------------------------------------------<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;REPEATER CONTROLER v.2.0.L<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L - obsługa LCD<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;N - brak sygnalizacji zewnętrznej<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;D - sygnalizacja diodowa<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SQ9MDD &lt;rlabus@luxmat.com&gt; 2010<br />
'<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This program is free software; you can redistribute it and/or modify<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;it under the terms of the GNU General Public License as published by<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the Free Software Foundation; either version 2 of the License, or<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(at your option) any later version.<br />
'<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This program is distributed in the hope that it will be useful,<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;but WITHOUT ANY WARRANTY; without even the implied warranty of<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&nbsp;&nbsp;See the<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GNU General Public License for more details.<br />
'<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;You should have received a copy of the GNU General Public License<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;along with this program; if not, write to the Free Software<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MA 02110-1301, USA.<br />
'-------------------------------------------------------------------------------<br />
&#36;regfile = Attiny2313.def<br />
&#36;crystal = 4000000<br />
&#36;baud = 9600<br />
&#36;hwstack = 24<br />
&#36;swstack = 0<br />
&#36;framesize = 32<br />
<br />
Config Portb = &amp;B11111111<br />
Config Portd = &amp;B1001101<br />
<br />
Portb = &amp;B00000000<br />
Portd = &amp;B0110010<br />
<br />
Rx_signal Alias Pind.1<br />
Morsepin Alias Portb.0<br />
Ptt Alias Portd.6<br />
<br />
Beep_option_jumper Alias Pind.4<br />
Ident_after_jumper Alias Pind.5<br />
<br />
<br />
'zegar on<br />
Enable Interrupts<br />
Config Timer1 = Timer , Prescale = 64<br />
Enable Timer1<br />
<br />
'definicje stałych<br />
Const Speed = 12<br />
Const Czestotliwosc = 450<br />
Const Kropka = Czestotliwosc / Speed<br />
Const Kreska = 3 * Kropka<br />
<br />
'definicje zmiennych<br />
Dim Sendchar As String * 1<br />
Dim Charcode As Byte<br />
Dim Dataindex As Byte<br />
Dim Charindex As Byte<br />
Dim Nextcharindex As Byte<br />
Dim Charstring As String * 12<br />
Dim Stringlength As Byte<br />
Dim Codelength As Byte<br />
Dim Codeindex As Byte<br />
Dim Codeelement As String * 1<br />
Dim Sendcw As Bit<br />
Dim Tx_flag As Bit<br />
Dim Rx_flag As Bit<br />
Dim Beep_flag As Bit<br />
Dim Podtrzymanie_flag As Bit<br />
Dim Rx As Bit<br />
Dim Rxa As Bit<br />
Dim Sekunda As Byte<br />
Dim Minuta As Byte<br />
Dim Countdown As Byte<br />
Dim Beep_option As Bit<br />
Dim Inputtekst As String * 6<br />
Dim Ident_after_tx As Bit<br />
Dim Sendcwinterwal As Byte<br />
Dim Czaspodtrzymania As Byte<br />
<br />
'konfiguracja zmiennych sterownika<br />
Inputtekst = "SR5WM"&nbsp;&nbsp;&nbsp;&nbsp; 'znamiennik max 6 znaków jesli chcesz wiekszy zmien rozmiar zmiennej Inputtekst<br />
Sendcwinterwal = 5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'czas automatycznego wysyłania znamiennika w minutach<br />
Czaspodtrzymania = 4&nbsp;&nbsp;&nbsp;&nbsp; 'czas podtrzymania nosnej w sekundach<br />
'Beep_option = 1<br />
'Ident_after_tx = 1<br />
<br />
'-------------------------------------------------------------------------------<br />
'tutaj zaczynamy prace programu<br />
'tutaj uruchamiam timer do odliczania wyłączania flag<br />
On Timer1 Liczmy<br />
Wait 3<br />
'Uruchomienie Przemiennika Wysyłamy znamiennik<br />
Sendcw = 1<br />
<br />
If Beep_option_jumper = 1 Then<br />
&nbsp;&nbsp; Beep_option = 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '0/1 beepek na koniec RX<br />
Else<br />
&nbsp;&nbsp; Beep_option = 1<br />
End If<br />
<br />
If Ident_after_jumper = 1 Then<br />
&nbsp;&nbsp; Ident_after_tx = 0&nbsp;&nbsp;&nbsp;&nbsp;'0/1 czy nadawac znamiennik na koniec kazdego tx-a&nbsp;&nbsp;czy tylko co ustalony interwał czasowy<br />
Else<br />
&nbsp;&nbsp; Ident_after_tx = 1<br />
End If<br />
<br />
<br />
'główna pętla programu<br />
'-------------------------------------------------------------------------------<br />
Do<br />
<br />
'obsługa sygnału RX i ustawianie flagi RX i Beep<br />
'-------------------------------------------------------------------------------<br />
'jesli pin RX zwarty do masy<br />
&nbsp;&nbsp; If Rx_signal = 0 Then<br />
'ustawiam bit pomocniczy<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Rx = 1<br />
'jeśli po 20ms nadal wciśnięty<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Rx = 1 And Rxa = 0 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Rxa = 1<br />
'ustawiamy flage jest RX<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Rx_flag = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
'jeśli sygnał braku zajętości znika to<br />
&nbsp;&nbsp; Elseif Rxa = 1 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Beep_flag = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Rx_flag = 0<br />
'zeruj obydwa bity pomocnicze<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Rx = 0 : Rxa = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
<br />
<br />
'ustawianie flagi TX jesli ustawione flagi RX lub podtrzymanie<br />
'-------------------------------------------------------------------------------<br />
<br />
'ustawianie flagi podtrzymanie jesli zapalony RX<br />
If Rx_flag = 1 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Podtrzymanie_flag = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Countdown = 0<br />
End If<br />
<br />
'ustawiamy flage TX jesli mamy RX-a lub dziala podtrzymanie<br />
 If Rx_flag = 1 Or Podtrzymanie_flag = 1 Then<br />
&nbsp;&nbsp; Tx_flag = 1<br />
 Else<br />
&nbsp;&nbsp; Tx_flag = 0<br />
 End If<br />
<br />
'ustawiamy port PTT jesli mamy flage tx<br />
 If Tx_flag = 1 Then<br />
 'wysterowanie nadajnika<br />
&nbsp;&nbsp;&nbsp;&nbsp;Ptt = 1<br />
 'tutaj beep jesli koniec nadawania i beep_option enabled<br />
&nbsp;&nbsp;&nbsp;&nbsp;If Beep_flag = 1 And Rx_flag = 0 And Beep_option = 1 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;Waitms 150<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sound Morsepin , Kropka , Czestotliwosc<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Beep_flag = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
 Else<br />
 'wysterowanie nadajnika<br />
&nbsp;&nbsp;&nbsp;&nbsp;Ptt = 0<br />
 End If<br />
<br />
'procedura wysylania znamiennika<br />
'-------------------------------------------------------------------------------<br />
If Sendcw = 1 Then<br />
'uruchamiam sobie TX<br />
Ptt = 1<br />
'blokujemy timer na czas wysylania znamiennikabo chrypi2<br />
 Stop Timer1<br />
 Waitms 300<br />
&nbsp;&nbsp; Stringlength = Len(inputtekst)<br />
'wlaczyc pin PTT tutaj<br />
'tutaj przesuwamy się po ciągu znaków i będziemy odtwarzać każdą literę z osobna<br />
&nbsp;&nbsp; For Charindex = 1 To Stringlength<br />
&nbsp;&nbsp; Sendchar = Mid(inputtekst , Charindex , 1)<br />
&nbsp;&nbsp; Charcode = Asc(sendchar)<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;Dataindex = Charcode - 48<br />
&nbsp;&nbsp;&nbsp;&nbsp;Charstring = Lookupstr(dataindex , Alfabet)<br />
&nbsp;&nbsp;&nbsp;&nbsp;Codelength = Len(charstring)<br />
<br />
'ta pętla generuje kazda litere znaku<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For Codeindex = 1 To Codelength<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Codeelement = Mid(charstring , Codeindex , 1)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Codeelement = "." Then<br />
'Zagraj kropke<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Sound Morsepin , Kropka , Czestotliwosc<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else<br />
'Zagraj kreske<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Sound Morsepin , Kreska , Czestotliwosc<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Codeindex &lt; Codelength Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Waitms Kropka<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Next Codeelement<br />
'odstęp pomiedzy znakami 3 x kropka<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Waitms Kreska<br />
'i wracamy do początku pętli po następną literę<br />
&nbsp;&nbsp; Next Charindex<br />
'skonczylismy gasimy flaga nadawania znamiennika<br />
'resetujemy lflagi<br />
&nbsp;&nbsp; Sendcw = 0<br />
&nbsp;&nbsp; Tx_flag = 0<br />
&nbsp;&nbsp; Sekunda = 0<br />
'skonczylismy nadawac znamiennik odpalamy timer 1<br />
&nbsp;&nbsp; Start Timer1<br />
&nbsp;&nbsp; End If<br />
<br />
'koniec pętli<br />
Loop<br />
'koniec programu<br />
End<br />
<br />
<br />
'obsługa<br />
'-------------------------------------------------------------------------------<br />
<br />
Liczmy:<br />
Timer1 = 0<br />
'tutaj proste naliczanie w sekundzie i cos (dla uproszczenia i skrocenia kodu uzyłem timera tc1/64 to daje 1s = 1,05S)<br />
&nbsp;&nbsp; Sekunda = Sekunda + 1<br />
&nbsp;&nbsp; If Sekunda = 60 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Minuta = Minuta + 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Minuta = 60 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Minuta = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sekunda = 0<br />
&nbsp;&nbsp; End If<br />
<br />
'jesli podtrzymanie na 1 a rx spadl zczynamy odliczanie do wylaczenia<br />
&nbsp;&nbsp; If Podtrzymanie_flag = 1 And Rx_flag = 0 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp; Countdown = Countdown + 1<br />
'jesli doszlismy do konca gas flagi<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Countdown &gt;= Czaspodtrzymania Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Podtrzymanie_flag = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Tx_flag = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Countdown = 0<br />
'jesli zaznaczona flaga identylfikacji po odpuszczeniu tx to zagraj znamiennik<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Ident_after_tx = 1 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Minuta = Sendcwinterwal<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
'reset licznika jesli pojawi sie flaga rx w trakcie podtrzymania<br />
&nbsp;&nbsp; Elseif Podtrzymanie_flag = 1 And Rx_flag = 1 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Countdown = 0<br />
&nbsp;&nbsp; End If<br />
<br />
'okresowe wysyłanie znamiennika jesli przekroczono czas i nikt nie nadaje<br />
&nbsp;&nbsp; If Minuta &gt;= Sendcwinterwal And Rx_flag = 0 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tx_flag = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sendcw = 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Minuta = 0<br />
&nbsp;&nbsp; End If<br />
<br />
Return<br />
'-------------------------------------------------------------------------------<br />
<br />
Alfabet:<br />
Data "-----"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '0&nbsp;&nbsp;Znaki pokolei tak jak są ustawione w tablicy ASCII<br />
Data ".----"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '1&nbsp;&nbsp;przy wywoływaniu musimy tylko przestawić indeks o 48<br />
Data "..---"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '2&nbsp;&nbsp;ponieważ cyfra 0 ma kod ASCII 48<br />
Data "...--"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '3<br />
Data "....-"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '4<br />
Data "....."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '5<br />
Data "-...."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '6<br />
Data "--..."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '7<br />
Data "---.."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '8<br />
Data "----."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '9<br />
Data "."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ': do generowania znamienników znaki specjalne nie są potrzebne<br />
Data "."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ';<br />
Data "."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '&lt;<br />
Data "."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '=<br />
Data "."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '&gt;<br />
Data "."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '?<br />
Data "."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '@<br />
Data ".-"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'A&nbsp;&nbsp;Literki<br />
Data "-..."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'B<br />
Data "-.-."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'C<br />
Data "-.."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'D<br />
Data "."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'E<br />
Data "..-."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'F<br />
Data "--."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'G<br />
Data "...."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'H<br />
Data ".."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'I<br />
Data ".---"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'J<br />
Data "-.-"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'K<br />
Data ".-.."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'L<br />
Data "--"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'M<br />
Data "-."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'N<br />
Data "---"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'O<br />
Data ".--."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'P<br />
Data "--.-"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'Q<br />
Data ".-."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'R<br />
Data "..."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'S<br />
Data "-"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'T<br />
Data "..-"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'U<br />
Data "...-"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'V<br />
Data ".--"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'W<br />
Data "-..-"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'X<br />
Data "-.--"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'Y<br />
Data "--.."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'Z</code></div></div><br />
Jest to bardzo prosty sterownik przemiennika, zrealizowany na ATTiny2313.<br />
Funkcje które posiada:<br />
<br />
- opcje konfigurujemy przed kompilacją programu<br />
- podtrzymanie nośnej w sekundach<br />
- beep po zdjęciu sygnału RX jako opcja <br />
- identyfikacja cw co zadany okres czasu w minutach<br />
- identyfikacja cw po każdym tx jako opcja<br />
<br />
Obsługę czasów zrealizowałem na zegarze i przerwaniu od tegoż zegara.<br />
Źródło które tutaj wkleiłem starałem się mocno skomentować by umożliwić kolegom szybką analizę i ewentualne poprawki. Całość została skompilowana i przetestowana na płytce testowej. W tym tygodniu uruchomię układ z tym programem w realnych warunkach.<br />
<br />
Kod jest na licencji GPL, można kopiować modyfikować, umieszczać we własnych projektach sprzedawać itd...<br />
<br />
<br />
2010.08.18 UPDATE<br />
<br />
Poprawiłem w kodzie kilka oczywistych błędów, zmieniłem opcję beep i identyfikacja cw na obsługiwaną z dipswitcha.<br />
<br />
Pracujący sterownik wersja bardzo mocno testowa:<br />

<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=1000" target="_blank" title="">IMG00372-20100818-0013.jpg</a> (Rozmiar: 364.68 KB / Pobrań: 6017)
<br />
<br />
<br />
2010.08.19 UPDATE<br />
<br />
Kolega narysował schemat do mojego programu. W załączeniu poniżej.<br />
 <br />

<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=1007" target="_blank" title="">Sterownik_przemiennika.jpg</a> (Rozmiar: 88.57 KB / Pobrań: 6520)
<br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/zip.png" title="ZIP File" border="0" alt=".zip" />
&nbsp;&nbsp;<a href="attachment.php?aid=1001" target="_blank" title="">repeater-controler-v2.0.N.zip</a> (Rozmiar: 3.08 KB / Pobrań: 2033)
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Monitor ramek APRS]]></title>
			<link>https://sp-hm.pl/thread-269.html</link>
			<pubDate>Mon, 09 Aug 2010 10:30:03 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://sp-hm.pl/member.php?action=profile&uid=5">SQ9MDD</a>]]></dc:creator>
			<guid isPermaLink="false">https://sp-hm.pl/thread-269.html</guid>
			<description><![CDATA[Witam, po miesiącach obijania się w temacie hobby (praca mnie zaabsorbowała), postanowiłem powalczyć z programowaniem AVR-ów w Bascomie. <br />
To moje pierwsze podejście do programowania AVR, napisałem monitor ramek do ARPS. Urządzenie ma za zadanie wyświetlać na panelu lcd 20x4 ramki które wyrzuca MiniTNC za pomocą łącza szeregowego. <br />
Jako środowisko testowe użyłem kitu AVT 3500 i procesora 2313. Oczywiście 2kb miejsca na procesorze i kod w baskomie to straszna bieda. Ale na początek wystarcza. <br />
<br />
Może koledzy podzielą się jakimiś ciekawymi programami (własnego autorstwa). Gdzie na przykładzie będzie można się czegoś nauczyć. <br />
<br />
Środowisko testowe na zdjęciu.<br />
<br />
<br />
A tutaj kod.<br />
<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SQ9MDD &lt;rlabus@luxmat.com&gt; 2010<br />
'<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This program is free software; you can redistribute it and/or modify<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;it under the terms of the GNU General Public License as published by<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the Free Software Foundation; either version 2 of the License, or<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(at your option) any later version.<br />
'<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This program is distributed in the hope that it will be useful,<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;but WITHOUT ANY WARRANTY; without even the implied warranty of<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&nbsp;&nbsp;See the<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GNU General Public License for more details.<br />
'<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;You should have received a copy of the GNU General Public License<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;along with this program; if not, write to the Free Software<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MA 02110-1301, USA.<br />
Config Serialin = Buffered , Size = 15<br />
<br />
Dim Na As String * 15<br />
Dim Nb As String * 9<br />
Dim Nc As String * 9<br />
Dim Nd As String * 9<br />
Dim Ma As String * 7<br />
Dim Mb As String * 7<br />
Dim Mc As String * 7<br />
Dim Md As String * 7<br />
Dim Whereis As Integer<br />
Dim Zstart As Bit<br />
Enable Interrupts<br />
Cursor Off<br />
'-----------------------------------------------------------------<br />
Cls<br />
Locate 1 , 1<br />
Lcd "APRS MONITOR.v.0.02a"<br />
Locate 2 , 1<br />
Lcd "-------SQ9MDD-------"<br />
Wait 5<br />
Locate 4 , 1<br />
Lcd "waiting for data..."<br />
'-----------------------------------------------------------------<br />
Do<br />
<br />
&nbsp;&nbsp;If Ischarwaiting() = 1 Then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'jesli bufor nie jest pusty<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;Input Na Noecho&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'wczytuje dane z bufora znak stacji<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' jesli bufor dluzszy niz 14 znakow to!<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Len(na) &gt; 14 And Zstart = 1 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Whereis = Instr(na , "&gt;" )&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' tutaj sprawdzam gdzie jest znak "&gt;"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Whereis = Whereis + 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'gmeranie kursorem na prawo i lewo<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ma = Mid(na , Whereis , 4)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'co ramke sprodukowalo wyciagam tu<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Whereis = Whereis - 3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'wywalam jakies smieci z poczatku stringa nie wiem jak sie tam znalazly<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Na = Mid(na , 2 , Whereis)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' a tutaj wycinam caly znak bo wiem gdzie jest &gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'obsluga typu trakera<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Ma = "APK1" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ma = "TM-D700"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Elseif Ma = "APND" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ma = "DIGINed"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Elseif Ma = "APNU" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ma = "UIDigi"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Elseif Ma = "APOT" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ma = "OT"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Elseif Ma = "APNX" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ma = "TNC-X"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Elseif Ma = "APU2" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ma = "UiView"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Elseif Ma = "URQU" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ma = "VX-8"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Elseif Ma = "APJI" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ma = "jAPRSI"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Elseif Ma = "APJS" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ma = "javAPR"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Elseif Ma = "APZW" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ma = "MAP27"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Elseif Ma = "APN3" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ma = "KPC-3"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Elseif Ma = "APK0" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ma = "TH-D7"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Elseif Ma = "APTT" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ma = "TT.v.1"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Nb &lt;&gt; Na And Nb &lt;&gt; Na And Nc &lt;&gt; Na And Nd &lt;&gt; Na Then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' jesli string dla drugiej lini inny niz dla pierwszej dodaj na szczyt listy zabezpieczenie przed wyswietlaniem tych samych powtorzonych ramek<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cls&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'czysc wyswietlacz<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Locate 1 , 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'kursr do gory<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Lcd Na<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Locate 1 , 11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'przesuwamy kursor o 6 znakow prze koniec lcd w pierwszym wierszu<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Lcd Ma&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'Wyswietl Biezacy Znak Stacji<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Locate 2 , 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'ustawianie kursora<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Lcd Nb ;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Locate 2 , 11<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Lcd Mb&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Locate 3 , 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Lcd Nc<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Locate 3 , 11<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Lcd Mc<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Locate 4 , 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Lcd Nd<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Locate 4 , 11<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Lcd Md<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Nd = Nc<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Nc = Nb<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Nb = Na<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Md = Mc<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mc = Mb<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mb = Ma<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'przepisz biezacy znak do drogiej zmiennej<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Zstart = 1<br />
&nbsp;&nbsp;End If<br />
<br />
Waitms 5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'1,5msec potrzebuje wyswietlacz na realizacje &#36;home<br />
Loop<br />
<br />
'-----------------------------------------------------------------<br />
End</code></div></div><br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=984" target="_blank" title="">sq9mdd_monitor_1.jpg</a> (Rozmiar: 101.8 KB / Pobrań: 3547)
]]></description>
			<content:encoded><![CDATA[Witam, po miesiącach obijania się w temacie hobby (praca mnie zaabsorbowała), postanowiłem powalczyć z programowaniem AVR-ów w Bascomie. <br />
To moje pierwsze podejście do programowania AVR, napisałem monitor ramek do ARPS. Urządzenie ma za zadanie wyświetlać na panelu lcd 20x4 ramki które wyrzuca MiniTNC za pomocą łącza szeregowego. <br />
Jako środowisko testowe użyłem kitu AVT 3500 i procesora 2313. Oczywiście 2kb miejsca na procesorze i kod w baskomie to straszna bieda. Ale na początek wystarcza. <br />
<br />
Może koledzy podzielą się jakimiś ciekawymi programami (własnego autorstwa). Gdzie na przykładzie będzie można się czegoś nauczyć. <br />
<br />
Środowisko testowe na zdjęciu.<br />
<br />
<br />
A tutaj kod.<br />
<br />
<div class="codeblock"><div class="title">Kod:</div><div class="body" dir="ltr"><code>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SQ9MDD &lt;rlabus@luxmat.com&gt; 2010<br />
'<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This program is free software; you can redistribute it and/or modify<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;it under the terms of the GNU General Public License as published by<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the Free Software Foundation; either version 2 of the License, or<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(at your option) any later version.<br />
'<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This program is distributed in the hope that it will be useful,<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;but WITHOUT ANY WARRANTY; without even the implied warranty of<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&nbsp;&nbsp;See the<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GNU General Public License for more details.<br />
'<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;You should have received a copy of the GNU General Public License<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;along with this program; if not, write to the Free Software<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,<br />
'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MA 02110-1301, USA.<br />
Config Serialin = Buffered , Size = 15<br />
<br />
Dim Na As String * 15<br />
Dim Nb As String * 9<br />
Dim Nc As String * 9<br />
Dim Nd As String * 9<br />
Dim Ma As String * 7<br />
Dim Mb As String * 7<br />
Dim Mc As String * 7<br />
Dim Md As String * 7<br />
Dim Whereis As Integer<br />
Dim Zstart As Bit<br />
Enable Interrupts<br />
Cursor Off<br />
'-----------------------------------------------------------------<br />
Cls<br />
Locate 1 , 1<br />
Lcd "APRS MONITOR.v.0.02a"<br />
Locate 2 , 1<br />
Lcd "-------SQ9MDD-------"<br />
Wait 5<br />
Locate 4 , 1<br />
Lcd "waiting for data..."<br />
'-----------------------------------------------------------------<br />
Do<br />
<br />
&nbsp;&nbsp;If Ischarwaiting() = 1 Then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'jesli bufor nie jest pusty<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;Input Na Noecho&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'wczytuje dane z bufora znak stacji<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' jesli bufor dluzszy niz 14 znakow to!<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Len(na) &gt; 14 And Zstart = 1 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Whereis = Instr(na , "&gt;" )&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' tutaj sprawdzam gdzie jest znak "&gt;"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Whereis = Whereis + 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'gmeranie kursorem na prawo i lewo<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ma = Mid(na , Whereis , 4)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'co ramke sprodukowalo wyciagam tu<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Whereis = Whereis - 3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'wywalam jakies smieci z poczatku stringa nie wiem jak sie tam znalazly<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Na = Mid(na , 2 , Whereis)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' a tutaj wycinam caly znak bo wiem gdzie jest &gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'obsluga typu trakera<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Ma = "APK1" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ma = "TM-D700"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Elseif Ma = "APND" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ma = "DIGINed"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Elseif Ma = "APNU" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ma = "UIDigi"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Elseif Ma = "APOT" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ma = "OT"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Elseif Ma = "APNX" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ma = "TNC-X"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Elseif Ma = "APU2" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ma = "UiView"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Elseif Ma = "URQU" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ma = "VX-8"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Elseif Ma = "APJI" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ma = "jAPRSI"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Elseif Ma = "APJS" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ma = "javAPR"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Elseif Ma = "APZW" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ma = "MAP27"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Elseif Ma = "APN3" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ma = "KPC-3"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Elseif Ma = "APK0" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ma = "TH-D7"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Elseif Ma = "APTT" Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ma = "TT.v.1"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Nb &lt;&gt; Na And Nb &lt;&gt; Na And Nc &lt;&gt; Na And Nd &lt;&gt; Na Then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' jesli string dla drugiej lini inny niz dla pierwszej dodaj na szczyt listy zabezpieczenie przed wyswietlaniem tych samych powtorzonych ramek<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cls&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'czysc wyswietlacz<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Locate 1 , 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'kursr do gory<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Lcd Na<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Locate 1 , 11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'przesuwamy kursor o 6 znakow prze koniec lcd w pierwszym wierszu<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Lcd Ma&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'Wyswietl Biezacy Znak Stacji<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Locate 2 , 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'ustawianie kursora<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Lcd Nb ;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Locate 2 , 11<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Lcd Mb&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Locate 3 , 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Lcd Nc<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Locate 3 , 11<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Lcd Mc<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Locate 4 , 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Lcd Nd<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Locate 4 , 11<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Lcd Md<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Nd = Nc<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Nc = Nb<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Nb = Na<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Md = Mc<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mc = Mb<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mb = Ma<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'przepisz biezacy znak do drogiej zmiennej<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Zstart = 1<br />
&nbsp;&nbsp;End If<br />
<br />
Waitms 5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'1,5msec potrzebuje wyswietlacz na realizacje &#36;home<br />
Loop<br />
<br />
'-----------------------------------------------------------------<br />
End</code></div></div><br />
<br />
<img src="https://sp-hm.pl/images/attachtypes/image.png" title="JPG Image" border="0" alt=".jpg" />
&nbsp;&nbsp;<a href="attachment.php?aid=984" target="_blank" title="">sq9mdd_monitor_1.jpg</a> (Rozmiar: 101.8 KB / Pobrań: 3547)
]]></content:encoded>
		</item>
	</channel>
</rss>