<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=4&amp;t=24152&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2022-02-23T09:47:22+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=24152&amp;mode</id>
<entry>
<author><name><![CDATA[Acade]]></name></author>
<updated>2022-02-23T09:47:22+01:00</updated>
<published>2022-02-23T09:47:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24152&amp;p=235092#p235092</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24152&amp;p=235092#p235092"/>
<title type="html"><![CDATA[Re: Multipleksowanie LED cd.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24152&amp;p=235092#p235092"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent">Chodzi o to że licznik nie odpowiada dokładnie temu co jest podpięte do portu?<br />PortA: 2,1,5,7<br />Licznik: 1,3,5,7?<br /></div><br />oczywiście że licznik nie odpowiada <br />proszę sobie spojrzeć BITOWO na liczby 1,3,5,7 i BITOWO na piny 2,1,5,7 na PORTA</div><br /><br />Faktycznie prześledziłem jeszcze raz wszystko i ustawiłem licznik dokładnie tak jak są podpięte anody i faktycznie jest znaczna poprawa. Ale dalej pozostaje problem &quot;coś&quot; biega na pozostałych pinach portu A. <br /><br />Może tu rację ma kolega xentis, że zeruję cału port w ten sposób:<br />[syntax=c]volatile uint8_t tab&#91;&#93;={0,4,0,2,0,1,0,128,0};[/syntax]<br /><br />Generalnie jak skasuję &quot;0&quot; to wyświetlacz już nie działa poprawnie i za bardzo nie wiem dlaczego  <img src="https://forum.atnel.pl/images/smilies/icon_e_confused.gif" alt=":?" title="Boi się" /> Ale mimo wszystko coś pojawia się na innych pinach  <img src="https://forum.atnel.pl/images/smilies/icon_mad.gif" alt=":x" title="Wściekły" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21799">Acade</a> — 23 lut 2022, o 09:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2022-02-19T22:12:18+01:00</updated>
<published>2022-02-19T22:12:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24152&amp;p=235076#p235076</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24152&amp;p=235076#p235076"/>
<title type="html"><![CDATA[Re: Multipleksowanie LED cd.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24152&amp;p=235076#p235076"><![CDATA[
<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Chodzi o to że licznik nie odpowiada dokładnie temu co jest podpięte do portu?<br />PortA: 2,1,5,7<br />Licznik: 1,3,5,7?<br /></div><br />oczywiście że licznik nie odpowiada <br />proszę sobie spojrzeć BITOWO na liczby 1,3,5,7 i BITOWO na piny 2,1,5,7 na PORTA<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 19 lut 2022, o 22:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Acade]]></name></author>
<updated>2022-02-19T21:05:27+01:00</updated>
<published>2022-02-19T21:05:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24152&amp;p=235075#p235075</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24152&amp;p=235075#p235075"/>
<title type="html"><![CDATA[Re: Multipleksowanie LED cd.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24152&amp;p=235075#p235075"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />anody są ustawione tak<br /><br />[syntax=c]#define         CA1     (1&lt;&lt;PA2)                // CA1 oznacza bit nr.0 portu C<br />#define         CA2     (1&lt;&lt;PA1)                // CA2 oznacza bit nr.1 portu C<br />#define         CA3     (1&lt;&lt;PA5)                // CA3 oznacza bit nr.2 portu C<br />#define         CA4     (1&lt;&lt;PA7)                // CA4 oznacza bit nr.3 portu C[/syntax]<br /><br />a licznik biega tak ? <br /><br />[syntax=c]if (licznik == 1 ) LED_DATA = pgm_read_byte( &amp;cyfry&#91;cy1&#93;);<br />                if (licznik == 3 ) LED_DATA = pgm_read_byte( &amp;cyfry&#91;cy2&#93;);<br />                if (licznik == 5 ) LED_DATA = pgm_read_byte( &amp;cyfry&#91;cy3&#93;);<br />                if (licznik == 7 ) LED_DATA = pgm_read_byte( &amp;cyfry&#91;cy4&#93;);[/syntax]<br /><br />od 1,3,5,7 ? No przecież tu już podstawowy babol<br /></div><br /><br />Panie Mirku, a na czym ten babol polega? Bo jakoś nie mogę go dostrzec <img src="https://forum.atnel.pl/images/smilies/icon_rolleyes.gif" alt=":roll:" title="Udaje, że to nie on" /> <br />Chodzi o to że licznik nie odpowiada dokładnie temu co jest podpięte do portu? <br />PortA: 2,1,5,7<br />Licznik: 1,3,5,7?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21799">Acade</a> — 19 lut 2022, o 21:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xentis]]></name></author>
<updated>2022-02-18T19:06:27+01:00</updated>
<published>2022-02-18T19:06:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24152&amp;p=235074#p235074</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24152&amp;p=235074#p235074"/>
<title type="html"><![CDATA[Re: Multipleksowanie LED cd.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24152&amp;p=235074#p235074"><![CDATA[
<div class="quotetitle">Acade napisał(a):</div><div class="quotecontent"><br />Wyświetlacz mam również ze wspólną anodą ale układ na płytce jest inny, anody są podpięte bezpośrednio do procesora natomiast segmenty przez tranzystory npn. I tu jest problem nie potrafię dostosować kodu do innego układu elektronicznego...<br /></div>Przecież to powinno być odwrotnie, anody, jako że wspólne, powinny być przez tranzystory, a katody mogą być bezpośrednio do pinów, oczywiście z dodatkiem rezystora ograniczającego prąd.<br />Pomyśl, sam pin procka ma ograniczoną wydajność prądową, typowo 20mA, a każdy segment w wyświetlaczu może pobierać ~15-20mA, w momencie wysterowania wszystkich segmentów masz 7*15=105mA i tyle będzie chciał szarpnąć wyświetlacz wspólną anodą z pinu procka w momencie próby wyświetlenia cyfry 8. Właśnie dla tego na wspólnej anodzie powinien być tranzystor, bo sam pin uC temu nie podoła.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 4 minutach ]</span></strong><br /><br /><div class="quotetitle">Acade napisał(a):</div><div class="quotecontent"><br />Druga sprawa, gdy napisałem sobie inną obsługę multipleksowania to gdy podłącze np. przycisk do PINU PA3 to przycisk nie działa. Anody wyświetlacza podpięte są właśnie do portu A. Co może być przyczyną, że nie działają inne PINY poru A ??<br /></div><br /><div class="quotetitle">Acade napisał(a):</div><div class="quotecontent"><br />Nigdzie więcej nie używam Portu A.<br /></div><br />A zobacz co robisz tu:<br /><div class="quotetitle">Acade napisał(a):</div><div class="quotecontent"><br />Składnia: [ Pobierz ] [ Ukryj ]<br />język c<br /><br />    volatile uint8_t tab[]={0,4,0,2,0,1,0,128,0};<br />...<br />    ANODY_PORT = tab[licznik];<br /><br />GeSHi<br /></div><br />Przecież cały czas zerujesz m.in. pin PA3 bo wysyłasz wartość tab[] bez maskowania czyli zapisujesz cały port, a pewnie podciągnięcie przycisku masz tylko programowe (bo przecież to się załącza zapisując jedynkę do portu pod dany pin) więc stan na tym pinie sobie pływa, dla tego oscyloskop pokazuje co pokazuje.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6265">xentis</a> — 18 lut 2022, o 19:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2022-02-18T18:55:27+01:00</updated>
<published>2022-02-18T18:55:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24152&amp;p=235073#p235073</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24152&amp;p=235073#p235073"/>
<title type="html"><![CDATA[Re: Multipleksowanie LED cd.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24152&amp;p=235073#p235073"><![CDATA[
anody są ustawione tak<br /><br />[syntax=c]#define         CA1     (1&lt;&lt;PA2)                // CA1 oznacza bit nr.0 portu C<br />#define         CA2     (1&lt;&lt;PA1)                // CA2 oznacza bit nr.1 portu C<br />#define         CA3     (1&lt;&lt;PA5)                // CA3 oznacza bit nr.2 portu C<br />#define         CA4     (1&lt;&lt;PA7)                // CA4 oznacza bit nr.3 portu C[/syntax]<br /><br />a licznik biega tak ? <br /><br />[syntax=c]if (licznik == 1 ) LED_DATA = pgm_read_byte( &amp;cyfry&#91;cy1&#93;);<br />                if (licznik == 3 ) LED_DATA = pgm_read_byte( &amp;cyfry&#91;cy2&#93;);<br />                if (licznik == 5 ) LED_DATA = pgm_read_byte( &amp;cyfry&#91;cy3&#93;);<br />                if (licznik == 7 ) LED_DATA = pgm_read_byte( &amp;cyfry&#91;cy4&#93;);[/syntax]<br /><br />od 1,3,5,7 ? No przecież tu już podstawowy babol<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 18 lut 2022, o 18:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Acade]]></name></author>
<updated>2022-02-18T11:36:17+01:00</updated>
<published>2022-02-18T11:36:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24152&amp;p=235072#p235072</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24152&amp;p=235072#p235072"/>
<title type="html"><![CDATA[Re: Multipleksowanie LED cd.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24152&amp;p=235072#p235072"><![CDATA[
No właśnie nie... <img src="https://forum.atnel.pl/images/smilies/icon_e_confused.gif" alt=":?" title="Boi się" /> <br /><br />[syntax=c]#define ANODY_PORT PORTA// port z podłączonymi anodami- 4 bity najmłodsze<br />#define ANODY_DIR DDRA// rejestr kierunku portu anod wyświetlaczy,<br /><br />#define CA1 (1&lt;&lt;PA2)// CA1 oznacza bit nr.0 portu C<br />#define CA2 (1&lt;&lt;PA1)// CA2 oznacza bit nr.1 portu C<br />#define CA3 (1&lt;&lt;PA5)// CA3 oznacza bit nr.2 portu C<br />#define CA4 (1&lt;&lt;PA7)// CA4 oznacza bit nr.3 portu C[/syntax]<br /><br />[syntax=c]ANODY_DIR |= CA1 | CA2 | CA3 | CA4;// 4 piny portu A jako WYJŚCIA (anody wyświetlaczy)<br />ANODY_PORT |= CA1 | CA2 | CA3  | CA4;// wygaszenie wszystkich wyświetlaczy - anody[/syntax]<br /><br />Nigdzie więcej nie używam Portu A.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 7 minutach ]</span></strong><br /><br />Chyba, że tu jest problem:<br /><br /><br />[syntax=c]volatile uint8_t tab&#91;&#93;={0,4,0,2,0,1,0,128,0};[/syntax]<br /><br />[syntax=c]// ================= PROCEDURA OBSŁUGI PRZERWANIA – COMPARE MATCH<br />ISR(TIMER0_COMP_vect)<br />{<br />uint8_t static licznik=0;<br /><br />licznik++;<br /><br />ANODY_PORT = tab&#91;licznik&#93;;<br /><br /><br />if (licznik == 1 ) LED_DATA = pgm_read_byte( &amp;cyfry&#91;cy1&#93;);<br />if (licznik == 3 ) LED_DATA = pgm_read_byte( &amp;cyfry&#91;cy2&#93;);<br />if (licznik == 5 ) LED_DATA = pgm_read_byte( &amp;cyfry&#91;cy3&#93;);<br />if (licznik == 7 ) LED_DATA = pgm_read_byte( &amp;cyfry&#91;cy4&#93;);<br /><br /><br /><br />if(licznik == 9) licznik =0;<br />}[/syntax]<br /><br />Bo jak podepnę się pod oscyloskop na wolny pin portu A to coś tam biega, co jakiś czas pojawia się szpilka  <img src="https://forum.atnel.pl/images/smilies/icon_eek.gif" alt=":shock:" title="Zaszokowany" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21799">Acade</a> — 18 lut 2022, o 11:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Szofer]]></name></author>
<updated>2022-02-18T10:27:20+01:00</updated>
<published>2022-02-18T10:27:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24152&amp;p=235068#p235068</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24152&amp;p=235068#p235068"/>
<title type="html"><![CDATA[Re: Multipleksowanie LED cd.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24152&amp;p=235068#p235068"><![CDATA[
A czasem cały port nie ustawiłeś na wyjsciowy<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7664">Szofer</a> — 18 lut 2022, o 10:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Acade]]></name></author>
<updated>2022-02-18T09:33:00+01:00</updated>
<published>2022-02-18T09:33:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24152&amp;p=235067#p235067</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24152&amp;p=235067#p235067"/>
<title type="html"><![CDATA[Multipleksowanie LED cd.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24152&amp;p=235067#p235067"><![CDATA[
Cześć,<br /><br />moja walka z wyświetlaczem 7 segmentowym dalej trwa. Już włosy wyrywam  <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /> <br /><br />Zrobiłem sobie multipleksowanie trochę inaczej niż Pan Mirek, mianowicie:<br /><br />[syntax=c]volatile uint8_t tab&#91;&#93;={0,4,0,2,0,1,0,128,0};[/syntax]<br /><br />[syntax=c]ISR(TIMER0_COMP_vect)<br />{<br />uint8_t static licznik=0;<br /><br />licznik++;<br /><br />ANODY_PORT = tab&#91;licznik&#93;;<br /><br /><br />if (licznik == 1 ) LED_DATA = pgm_read_byte( &amp;cyfry&#91;cy1&#93;);<br />if (licznik == 3 ) LED_DATA = pgm_read_byte( &amp;cyfry&#91;cy2&#93;);<br />if (licznik == 5 ) LED_DATA = pgm_read_byte( &amp;cyfry&#91;cy3&#93;);<br />if (licznik == 7 ) LED_DATA = pgm_read_byte( &amp;cyfry&#91;cy4&#93;);<br /><br /><br /><br />if(licznik == 9) licznik =0;<br />}[/syntax]<br /><br />Jakoś to działa, ale nie do końca jestem zadowolony. Wyświetlacz nie świeci równomiernie na każdym segmencie i nie wiem dlaczego  <img src="https://forum.atnel.pl/images/smilies/icon_rolleyes.gif" alt=":roll:" title="Udaje, że to nie on" /> <br /><br />Nie używam mulipleksowania od Pana Mirka bo mam inny wyświetlacz i za nic świecie nie potrafię zmienić tego kodu tak, żeby to działało na moim wyświetlaczu  <img src="https://forum.atnel.pl/images/smilies/icon_cry.gif" alt=":cry:" title="Płacze" /><br /><br />Może ktoś z Was pomoże. Wyświetlacz mam również ze wspólną anodą ale układ na płytce jest inny, anody są podpięte bezpośrednio do procesora natomiast segmenty przez tranzystory npn. I tu jest problem nie potrafię dostosować kodu do innego układu elektronicznego...<br /><br />Druga sprawa, gdy napisałem sobie inną obsługę multipleksowania to gdy podłącze np. przycisk do PINU PA3 to przycisk nie działa. Anody wyświetlacza podpięte są właśnie do portu A. Co może być przyczyną, że nie działają inne PINY poru A ??<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21799">Acade</a> — 18 lut 2022, o 09:33</p><hr />
]]></content>
</entry>
</feed>