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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-08-14T10:01:29+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=8&amp;t=15968&amp;mode</id>
<entry>
<author><name><![CDATA[kejza]]></name></author>
<updated>2016-08-14T10:01:29+01:00</updated>
<published>2016-08-14T10:01:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15968&amp;p=166008#p166008</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15968&amp;p=166008#p166008"/>
<title type="html"><![CDATA[Re: multipleksowanie led - przerwania bluebook ćwiczenie 4.5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15968&amp;p=166008#p166008"><![CDATA[
Witam, program z pendrive działał od razu. Przeanalizowałem więc oryginalny kod i ten mój i okazało się, że brakowało mi tablicy zawierającej definicje bitowe cyfr LED. Po ich dopisaniu i kilku poprawkach w kodzie na wyświetlaczu pojawiła się liczba 1495. <br />Niby nic wielkiego a cieszy <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> heh<br /><br />Dziękuję za Waszą pomoc,  pewnie nie raz będę jej jeszcze potrzebował <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14284">kejza</a> — 14 sie 2016, o 10:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kicajek]]></name></author>
<updated>2016-08-10T17:42:17+01:00</updated>
<published>2016-08-10T17:42:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15968&amp;p=165817#p165817</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15968&amp;p=165817#p165817"/>
<title type="html"><![CDATA[Re: multipleksowanie led - przerwania bluebook ćwiczenie 4.5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15968&amp;p=165817#p165817"><![CDATA[
Witam<br />Program działa tak jak go napisałeś.<br />Ponieważ masz:<br />[syntax=c]#define LED_DATA PORTC // porty z podłączonymi segmentami[/syntax]<br />oraz<br />[syntax=c]if(licznik == 1) LED_DATA = cy1;<br />   // gdy zapolony wyświetlacz 2 podaj stan zmennej c2<br />  else if( licznik == 2 ) LED_DATA = cy2;<br />...<br />...[/syntax]<br />to podstawiając cy1=1 .....itd. na wyświetlaczu otrzymujesz zawartość PORTC; ponieważ jest to wyświetlacz wsp.A otrzymujesz odwrócony (zanegowany) obraz.<br />N.p dla cy1=249 będziesz miał (chyba) obraz jedynki, dwójka to 164.<br />Tak jak pisali przedmówcy - kod trochę niekompletny.<br /><br />Pozdr.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=826">kicajek</a> — 10 sie 2016, o 17:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[anshar]]></name></author>
<updated>2016-08-10T13:15:44+01:00</updated>
<published>2016-08-10T13:15:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15968&amp;p=165797#p165797</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15968&amp;p=165797#p165797"/>
<title type="html"><![CDATA[Re: multipleksowanie led - przerwania bluebook ćwiczenie 4.5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15968&amp;p=165797#p165797"><![CDATA[
Masz zamienione przewody PA2 -&gt; DIG3, PA3 -&gt; DIG4.<br />Brakuje ci kodu:<br />1. gdzie masz definicje poszczególnych segmentów?<br />2. gdzie masz definicję tablicy zawierającej definicje bitowe cyfr LED?<br />3. masz namieszane w procedurze obsługi przerwania<br /><br /><div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />A czemu nie sprawdzisz kodu który masz na Pendrive albo DVD dołączonym do książki ?<br /></div><br />Sprawdź czy działa gotowy projekt.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7157">anshar</a> — 10 sie 2016, o 13:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kejza]]></name></author>
<updated>2016-08-10T12:49:13+01:00</updated>
<published>2016-08-10T12:49:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15968&amp;p=165795#p165795</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15968&amp;p=165795#p165795"/>
<title type="html"><![CDATA[Re: multipleksowanie led - przerwania bluebook ćwiczenie 4.5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15968&amp;p=165795#p165795"><![CDATA[
Witam, sprawdziłem jeszcze raz kolejność podłączonych pinów portu C i A i mam tak:<br />PC0 -&gt; A, PC1 -&gt; B, PC2 -&gt; C, PC3 -&gt; D, PC4 -&gt;E, PC5 -&gt; F, PC6 -&gt; G, PC7 -&gt; H<br />PA0 -&gt; DIG1, PA1 -&gt; DIG2, PA2 -&gt; DIG3, PA3 -&gt; DIG4.<br />JTAG jest domyślnie wyłączony. Więc problem musi tkwić pewnie w kodzie.<br /><br />[syntax=c]#include &lt;avr/io.h&gt; // dołączenie głównego systemu pliku nagłówkowego<br />#include &lt;avr/interrupt.h&gt; // dołączenie pliku nagłówkowego do obsłubi przerwań<br />#include &quot;d_led.h&quot; // dołączenie naszego pliku nagłówkowego (obsługa led)<br /><br />int main(void)<br />{<br />d_led_init ();<br />cy1 = 1;<br />cy2 = 4;<br />cy3 = 9;<br />cy4 = 5;<br /><br />sei ();<br />while(1)<br />{<br /><br />}<br />}[/syntax]<br /><br />[syntax=c]#ifndef _d_led_h<br />#define _d_led_h<br /><br />#define LED_DATA PORTC // porty z podłączonymi segmentami<br />#define LED_DATA_DIR DDRC<br />#define ANODY_PORT PORTA<br />#define ANODY_DIR DDRA<br /><br />#define CA1 (1&lt;&lt;PA0)  // CA1 oznacza bit nr 0 portu A<br />#define CA2 (1&lt;&lt;PA1)  // CA1 oznacza bit nr 1 portu A<br />#define CA3 (1&lt;&lt;PA2)  // CA1 oznacza bit nr 2 portu A<br />#define CA4 (1&lt;&lt;PA3)  // CA1 oznacza bit nr 3 portu A<br /><br />extern volatile uint8_t cy1;<br />extern volatile uint8_t cy2;<br />extern volatile uint8_t cy3;<br />extern volatile uint8_t cy4;<br /><br />void d_led_init(void);<br /><br /><br />#endif[/syntax]<br /><br />[syntax=c]#include &lt;avr/io.h&gt; // dołączenie głównego systemu pliku nagłówkowego<br />#include &lt;avr/interrupt.h&gt; // dołączenie pliku nagłówkowego do obsłubi przerwań<br />#include &quot;d_led.h&quot; // dołączenie naszego pliku nagłówkowego (obsługa led)<br /><br />//definicja zmiennych globalnych przechowująca cyfry do wyświetlenia w przerwaniu jak i programie głównym.<br />// Trzeba więc wyłączyc optymalizację dostępu do nich<br /><br />volatile uint8_t cy1;<br />volatile uint8_t cy2;<br />volatile uint8_t cy3;<br />volatile uint8_t cy4;<br /><br />// definicja funkcji inicjalizujacej prace z wyświetlaczem multipleksowym<br /><br />void d_led_init(void)<br /><br />{<br />LED_DATA_DIR = 0xFF; // wszystkie piny portu c - wy (katody)<br />LED_DATA = 0xFF; // wygaszenie wszystkich katod stan wysoki<br />ANODY_DIR |= CA1 | CA2 | CA3 | CA4; // 4 piny portu a jako wy<br />ANODY_PORT |= CA1 | CA2 | CA3 | CA4; // wygaszenie wszystkich wyświetlaczy<br /><br />//ustawienie TIMER0<br /><br />TCCR0 |= (1&lt;&lt;WGM01); // tryb CTC<br />TCCR0 |= (1&lt;&lt;CS02) | (1&lt;&lt;CS00); // preskaler = 1024<br />OCR0 = 38; // dodatkowy podział przez 38<br />TIMSK |= (1&lt;&lt;OCIE0); // zezwolenie na przerwanie COMPARE MATCH<br /><br />}<br />ISR( TIMER0_COMP_vect )<br />{<br />// zmienna do przełączenia kolejno anod wyświetlacza<br />   static uint8_t licznik = 1;<br />   // cykliczne przełączanie  w każdym przerwaniu anod wyświetlacza ( wartośc negowana aby krażylo zero<br />   ANODY_PORT = ~licznik;<br /><br />   // gdy zapolony wyświetlacz 1 podaj stan zmniennej c1<br />   if(licznik == 1) LED_DATA = cy1;<br />   // gdy zapolony wyświetlacz 2 podaj stan zmennej c2<br />  else if( licznik == 2 ) LED_DATA = cy2;<br />  else if( licznik == 4 ) LED_DATA = cy3;<br />  else if( licznik == 8 ) LED_DATA = cy4;<br /><br />   // operacja cyklicznego przesuwania bitu zapalającego anody w zmiennej licznik<br />   licznik &lt;&lt;= 1;<br />   if(licznik&gt;8) licznik = 1; // jeśli licznik większy niż 8 ustaw 1<br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14284">kejza</a> — 10 sie 2016, o 12:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[karolen]]></name></author>
<updated>2016-08-09T18:47:38+01:00</updated>
<published>2016-08-09T18:47:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15968&amp;p=165749#p165749</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15968&amp;p=165749#p165749"/>
<title type="html"><![CDATA[Re: multipleksowanie led - przerwania bluebook ćwiczenie 4.5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15968&amp;p=165749#p165749"><![CDATA[
Powiem Ci tak, najprawdopodobniej masz pomyloną kolejność przewodów między PORTC a pinami wejściowymi od segmentów (A - H).<br />Niezależnie czy masz w prawidłowej kolejności czy w przeciwnej cyfra &quot;4&quot; i tak powinna być w pełni czytelna (właśnie sprawdzałem to na swoim zestawie). Jeśli byłby załączony JTAG świeciłoby się mniej segmentów na wszystkich wyświetlaczach ( to też przed chwilą zrobiłem).<br />Mówiąc krótko: PC0 -&gt; A ... PC7 -&gt; H; PA0 -&gt; DIG1 ...  PA4 -&gt; DIG4 i bata nie ma żeby nie działało. <br />Poza tym masz jeszcze jakieś byki w kodzie, ponieważ zbyt wiele segmentów Ci się świeci: powinno Ci się świecić (ilość segmentów) 2, 4, 6, 5 a u Ciebie jest 7, 7, 6, 6 - licząc z kropkami.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6210">karolen</a> — 9 sie 2016, o 18:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Marhef]]></name></author>
<updated>2016-08-09T17:32:23+01:00</updated>
<published>2016-08-09T17:32:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15968&amp;p=165744#p165744</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15968&amp;p=165744#p165744"/>
<title type="html"><![CDATA[Re: multipleksowanie led - przerwania bluebook ćwiczenie 4.5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15968&amp;p=165744#p165744"><![CDATA[
A czy część portu C nie jest domyślnie używana jako JTAG? Może wystarczy wyłączyć?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12752">Marhef</a> — 9 sie 2016, o 17:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2016-08-09T15:24:47+01:00</updated>
<published>2016-08-09T15:24:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15968&amp;p=165739#p165739</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15968&amp;p=165739#p165739"/>
<title type="html"><![CDATA[Re: multipleksowanie led - przerwania bluebook ćwiczenie 4.5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15968&amp;p=165739#p165739"><![CDATA[
<div class="quotetitle">kejza napisał(a):</div><div class="quotecontent"><br />Kod przepisałem z książki<br /></div><br />A czemu nie sprawdzisz kodu który masz na Pendrive albo DVD dołączonym do książki ?<br /><br />Po drugie nawet jeśli przepisałeś kod z książki to czy sprawdziłeś gdzie w kodzie masz podłączone anody a gdzie katody? jak to jest skonfigurowane w pliku *.h ? No przecież tak na czuja to wiesz ...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 9 sie 2016, o 15:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[lobowilk]]></name></author>
<updated>2016-08-09T15:12:56+01:00</updated>
<published>2016-08-09T15:12:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15968&amp;p=165738#p165738</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15968&amp;p=165738#p165738"/>
<title type="html"><![CDATA[Re: multipleksowanie led - przerwania bluebook ćwiczenie 4.5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15968&amp;p=165738#p165738"><![CDATA[
PA na PC i nazad zamień<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11382">lobowilk</a> — 9 sie 2016, o 15:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kejza]]></name></author>
<updated>2016-08-09T15:05:24+01:00</updated>
<published>2016-08-09T15:05:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15968&amp;p=165737#p165737</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15968&amp;p=165737#p165737"/>
<title type="html"><![CDATA[multipleksowanie led - przerwania bluebook ćwiczenie 4.5]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15968&amp;p=165737#p165737"><![CDATA[
Witam kolegów, podczas realizacji ćwiczeń z bluebook'a napotkałem na problem nad którym siedzę już jakiś czas. Chodzi o ćwiczenie 4.5. Kod przepisałem z książki, wyświetlacz na zestawie podłączyłem począwszy od PC0-PC6 do segmentów A-G, DP - PC7, anody wyświetlaczy do PA3-PA0. Po wgraniu programu do uC na wyświetlaczu pojawiają się przypadkowo zapalone segmenty zamiast cyfry 1495. Próbowałem podłączać wyświetlacz w różnych konfiguracjach lecz bez efektu.<br />Proszę o pomoc bardziej doświadczonych.<br /><br /><br /> <a href="https://obrazkiforum.atnel.pl/14284/9c5a620ae0036a3d870fd266a97f88e6.jpg"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/14284/9c5a620ae0036a3d870fd266a97f88e6.jpg" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14284">kejza</a> — 9 sie 2016, o 15:05</p><hr />
]]></content>
</entry>
</feed>