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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-11-28T19:26:30+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=4941&amp;mode</id>
<entry>
<author><name><![CDATA[mustang01]]></name></author>
<updated>2013-11-28T19:26:30+01:00</updated>
<published>2013-11-28T19:26:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4941&amp;p=58952#p58952</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4941&amp;p=58952#p58952"/>
<title type="html"><![CDATA[Re: Ćwiczenie 3 - Multipleksowanie Led - Przerywania - Probl]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4941&amp;p=58952#p58952"><![CDATA[
Potwierdza, problem tkwił zarówno w kodzie jak i połączeniach tranzystorów (źle przerysowałem schemat).<br />Dziś już wszystko mi działa i mogę przejść do następnego ćwiczenia. Dziękuje.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2105">mustang01</a> — 28 lis 2013, o 19:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-11-27T23:46:50+01:00</updated>
<published>2013-11-27T23:46:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4941&amp;p=58832#p58832</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4941&amp;p=58832#p58832"/>
<title type="html"><![CDATA[Re: Ćwiczenie 3 - Multipleksowanie Led - Przerywania - Probl]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4941&amp;p=58832#p58832"><![CDATA[
<div class="quotetitle">mustang01 napisał(a):</div><div class="quotecontent"><br />Takie proste, a tak cieszy<br /></div><br /><br />Kurczę ja też mam wciąż takie same objawy, i lekarz mi powiedział że tego już się nie da zoperować <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /> ... więc muszę się nauczyć z tym jakoś żyć <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /><br /><br />powodzenia<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 27 lis 2013, o 23:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mustang01]]></name></author>
<updated>2013-11-27T23:40:42+01:00</updated>
<published>2013-11-27T23:40:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4941&amp;p=58829#p58829</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4941&amp;p=58829#p58829"/>
<title type="html"><![CDATA[Re: Ćwiczenie 3 - Multipleksowanie Led - Przerywania - Probl]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4941&amp;p=58829#p58829"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />pokaż teraz kod po przeróbkach no i sprawdź połączenia .....<br /></div><br />Sprawdziłem jeszcze raz połączenia, schematy i datascheety. Na pierwszy rzut oka widać jak byk, że przy przerysowywaniu schematu pomyliłem bazę z źródłem tranzystora i na odwrót przylutowałem wszystkie tranzystory. Jutro sprawdzę i zdam relacje. <br />Następnym razem będę kupował tusz do drukarki regularnie i drukował wszelkie dokumenty zamiast przepisywał z komputera, albo jeden dzień przeznaczał na ponowne patrzenie w schematy z świeżym umysłem.<br />Dziękuje wszystkim za liczne odpowiedzi. Wasza aktywność wzmocniła moją chęć do zabawy z mikrokontrolerami. To już moje trzecie podejście do tego ćwiczenia i przyznam się, że zaczynałem już tracić wiarę w swoje możliwości i zacząłem się rozleniwiać. A zabawa to świetna, nigdy nie przepuszczałem, że będę tak dumny z mrugania diodami za pomocą mikrokontrolera dopóty, dopóki tego sam nie zarobiłem. Takie proste, a tak cieszy.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2105">mustang01</a> — 27 lis 2013, o 23:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[adamekp]]></name></author>
<updated>2013-11-27T23:00:13+01:00</updated>
<published>2013-11-27T23:00:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4941&amp;p=58825#p58825</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4941&amp;p=58825#p58825"/>
<title type="html"><![CDATA[Re: Ćwiczenie 3 - Multipleksowanie Led - Przerywania - Probl]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4941&amp;p=58825#p58825"><![CDATA[
Tu bardziej chyba chodzi o to ze maskujesz caly czas ta sama wartosc F0<br /> [syntax=c]ANODY_PORT = (ANODY_PORT &amp; 0xF0) | (~licznik &amp; 0xF0)[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1298">adamekp</a> — 27 lis 2013, o 23:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-11-27T22:53:40+01:00</updated>
<published>2013-11-27T22:53:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4941&amp;p=58824#p58824</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4941&amp;p=58824#p58824"/>
<title type="html"><![CDATA[Re: Ćwiczenie 3 - Multipleksowanie Led - Przerywania - Probl]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4941&amp;p=58824#p58824"><![CDATA[
pokaż teraz kod po przeróbkach no i sprawdź połączenia .....<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 27 lis 2013, o 22:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mustang01]]></name></author>
<updated>2013-11-27T22:31:59+01:00</updated>
<published>2013-11-27T22:31:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4941&amp;p=58820#p58820</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4941&amp;p=58820#p58820"/>
<title type="html"><![CDATA[Re: Ćwiczenie 3 - Multipleksowanie Led - Przerywania - Probl]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4941&amp;p=58820#p58820"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />... (~licznik &amp; 0xF0);<br /><br />tu masz błąd<br /></div><br />Zdefiniowałem dyrektywę MASKA_ANODY i zastosowałem sposób z wygaszaniem (czyszczeniem) wyświetlacza i przełączaniem katod z kodu errata pobranego z uaktualnień do dvd. Brak efektu, nadal cztery dziewiątki. Poprzednio miałem tam ANODY_PORT |= ~licznik; i tez nie działało.<br /><br /><div class="quotetitle">kurnachatka napisał(a):</div><div class="quotecontent"><br />Tu masz uaktualnienie<br /><!-- m --><a class="postlink" href="http://atnel.pl/uaktualnienia-programow-do-dvd.html" >http://atnel.pl/uaktualnienia-programow-do-dvd.html</a><!-- m --><br /></div><br /><br />Przerobiłem to uaktualnienie, zmieniając port Anod, modyfikując nazwy definicji bitów timera pod atmegę 88p i dodając znacznik const przed tablicą cyfry. <br />Efekt bardzo szybkie miganie segmentów równomierne na wszystkich czterech cyfrach, niemal zlewa to się w zapalną całą ósemkę.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2105">mustang01</a> — 27 lis 2013, o 22:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kurnachatka]]></name></author>
<updated>2013-11-27T21:15:18+01:00</updated>
<published>2013-11-27T21:15:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4941&amp;p=58814#p58814</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4941&amp;p=58814#p58814"/>
<title type="html"><![CDATA[Re: Ćwiczenie 3 - Multipleksowanie Led - Przerywania - Probl]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4941&amp;p=58814#p58814"><![CDATA[
Tu masz uaktualnienie<br /><!-- m --><a class="postlink" href="http://atnel.pl/uaktualnienia-programow-do-dvd.html" >http://atnel.pl/uaktualnienia-programow-do-dvd.html</a><!-- m --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=930">kurnachatka</a> — 27 lis 2013, o 21:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-11-27T20:40:46+01:00</updated>
<published>2013-11-27T20:40:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4941&amp;p=58803#p58803</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4941&amp;p=58803#p58803"/>
<title type="html"><![CDATA[Re: Ćwiczenie 3 - Multipleksowanie Led - Przerywania - Probl]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4941&amp;p=58803#p58803"><![CDATA[
... (~licznik &amp; 0xF0);<br /><br />tu masz błąd<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 27 lis 2013, o 20:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mustang01]]></name></author>
<updated>2013-11-27T20:23:26+01:00</updated>
<published>2013-11-27T20:23:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4941&amp;p=58799#p58799</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4941&amp;p=58799#p58799"/>
<title type="html"><![CDATA[Ćwiczenie 3 - Multipleksowanie Led - Przerywania - Problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4941&amp;p=58799#p58799"><![CDATA[
Witam,<br />mam problem ze znalezieniem błędu w wykonywaniu trzeciego ćwiczenia z niebieskiej książki.<br />Programuje mikrokontroler Atmega88p z ustawionym wewnętrznym oscylatorem 8MHz. W Atmedze przestawiłem fusebity, a w projekcie wybrałem zadaną częstotliwość i programator.<br />Korzystam z prostego programatora SKT200 własnej roboty ( schemat -&gt; <!-- m --><a class="postlink" href="http://www.qsl.net/ba1fb/avrisp.gif" >http://www.qsl.net/ba1fb/avrisp.gif</a><!-- m --> ) i środowiska programistycznego Eclipse Indigo z wgranym pluginem avr wraz z najnowszym toolchainem Atmela.<br />Układ wyświetlacza LED siedmosegmentowego zbudowałem w oparciu o schemat z ATB lutując go na &quot;pająka&quot; i podłączyłem taśmą do płytki stykowej z Atmegą.<br />Na płytce stykowej pozostawiłem przyciski i diody led z poprzednich ćwiczeń, które udało mi się wykonać bez większych problemów. Nie montowałem kwarcu narysowano na schemacie. Całość zasilam z zewnętrznego zasilacza opartego o stabilizator LM7805 i transformator 12V 5VA.<br /><a href="http://forum.atnel.pl/_obrazki/o/2105/6c4cfeeed41eef09fa35474a984a1527.png"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/2105/6c4cfeeed41eef09fa35474a984a1527.png" alt="Obrazek" /></a><br />Zamiast tranzystorów BC807 użyłem zmieników BC327 w wersji do montażu przewlekanego z grupy 40.<br /><br />Kod programu przepisałem z niebieskiej książki dodając tabele z cyframi z programu MkAvrKalkulator i przerabiając pod swój mikrokontroler zgodnie z jego Datascheetem.<br />Main.c<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &quot;d_led.h&quot;<br /><br />int main(void)<br />{<br /><br />d_led_init();<br /><br />cy1 = 1;<br />cy2 = 4;<br />cy3 = 9;<br />cy4 = 5;<br /><br />sei();<br /><br />while(1)<br />{<br />//...<br />}<br /><br />}[/syntax]<br />D_LED.h<br />[syntax=c]#ifndef D_LED_H_<br />#define D_LED_H_<br /><br />#define LED_DATA PORTD // segmenty PD0 - PD7<br />#define LED_DATA_DIR DDRD<br />#define ANODY_PORT PORTC // anody PC0 - PC3<br />#define ANODY_DIR DDRC<br />// bity portu z podłączonymi anodami<br />#define CA1 (1&lt;&lt;PC3)<br />#define CA2 (1&lt;&lt;PC2)<br />#define CA3 (1&lt;&lt;PC1)<br />#define CA4 (1&lt;&lt;PC0)<br />// deklaracja globalna, z możliwością korzystania w wszytskich plikach programu<br />extern volatile uint8_t cy1, cy2, cy3, cy4;<br /><br />void d_led_init(void);<br /><br />#endif /* D_LED_H_ */[/syntax]<br /><br />D_LED.c<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &quot;d_led.h&quot;<br />#include &lt;avr/pgmspace.h&gt;<br /><br />volatile uint8_t cy1, cy2, cy3, cy4;<br /><br />const uint8_t data&#91;&#93; PROGMEM = {<br />0xC0,// 0<br />0xF9,// 1<br />0xA4,// 2<br />0xB0,// 3<br />0x99,// 4<br />0x92,// 5<br />0x82,// 6<br />0xD8,// 7<br />0x80,// 8<br />0x90,// 9<br />};<br /><br />void d_led_init(void) {<br /><br />LED_DATA_DIR = 0xFF;<br />LED_DATA = 0xFF;<br />ANODY_DIR |= CA1 | CA2 | CA3 | CA4;<br />ANODY_PORT |= CA1 | CA2 | CA3 | CA4;<br />//Timer0<br />//Tryb TCT<br />TCCR0A |= (1&lt;&lt;WGM01);<br />//Preskaler 1024<br />TCCR0B |=  (1&lt;&lt;CS02) | (1&lt;&lt;CS00);<br /><br />OCR0A = 39; //rejestr przepełnienia<br />TIMSK0 |= (1&lt;&lt;OCIE0A); // zezwolenie na porównywanie z rejestrem przepełnienia<br />}<br /><br />//funkcja obsługi przerywań - compare march<br />ISR(TIMER0_COMPA_vect) {<br /><br />static uint8_t licznik = 1;<br /><br />ANODY_PORT = (ANODY_PORT &amp; 0xF0) | (~licznik &amp; 0xF0);<br /><br />if(1 == licznik) LED_DATA = pgm_read_byte(&amp;data&#91;cy1&#93;);<br />else if(2 == licznik) LED_DATA = pgm_read_byte(&amp;data&#91;cy2&#93;);<br />else if(4 == licznik) LED_DATA = pgm_read_byte(&amp;data&#91;cy3&#93;);<br />else if(8 == licznik) LED_DATA = pgm_read_byte(&amp;data&#91;cy4&#93;);<br /><br />licznik &lt;&lt;= 1;<br />if(licznik &gt; 8) licznik = 1;<br />}[/syntax]<br /><br />Objawy problemu. Brak multipeksowania led. Na wyświetlaczu po wgraniu programu widnieją cztery dziewiątki. Gdy odłączę anody z płytki stykowej, wyświetlacz nadal wyświetla swoje cztery dziewiątki. Poprawnie wyświetlają się inne segmenty na wszystkich cyfrach po wgraniu programu testowego, który bez pomocy przerywań (_delay_ms(1000);) co sekundę wyświetlał na wszystkich czterech cyfrach jednocześnie kolejno ten same znaki zdefiniowane w tabelce.<br /><br />Proszę o wyjaśnienie mi na którym etapie popełniłem błąd. Za wszelkie odpowiedzi szczerze dziękuje.<br />Pozdrawiam<br />Łukasz<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2105">mustang01</a> — 27 lis 2013, o 20:23</p><hr />
]]></content>
</entry>
</feed>