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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-07-30T11:47:22+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=6602&amp;mode</id>
<entry>
<author><name><![CDATA[kicajek]]></name></author>
<updated>2014-07-30T11:47:22+01:00</updated>
<published>2014-07-30T11:47:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6602&amp;p=89460#p89460</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6602&amp;p=89460#p89460"/>
<title type="html"><![CDATA[Re: Wyświetlacz 7 seg problem z kodem pomocy.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6602&amp;p=89460#p89460"><![CDATA[
Witam<br /><div class="quotetitle">grochal7 napisał(a):</div><div class="quotecontent"><br />Dość prosty błąd popełniłem. Aż wstyd xD<br /></div><br />...wstyd jest wtedy, gdy zainteresowany twierdzi że wszystko ma u siebie OK, program wgrywa - nie działa. <br />Obraża się na kolegów że nie chcą pomóc a na koniec naduty jak balon opuszcza ( lub czasem trzeba mu w tym pomóc ) forum.<br />Tylko ten co nic nie robi nigdy się nie pomyli  <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> .<br /><br />Pozdr.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=826">kicajek</a> — 30 lip 2014, o 11:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[grochal7]]></name></author>
<updated>2014-07-30T08:18:06+01:00</updated>
<published>2014-07-30T08:18:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6602&amp;p=89428#p89428</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6602&amp;p=89428#p89428"/>
<title type="html"><![CDATA[Re: Wyświetlacz 7 seg problem z kodem pomocy.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6602&amp;p=89428#p89428"><![CDATA[
Masz rację, lepiej jak sam poszukałem - więcej się nauczę <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br />Dość prosty błąd popełniłem. Aż wstyd xD <br />W moim przykładzie używałem PC4 i PC5 a działałem na bitach odpowiadających PC0 i PC1....<br />Polecam uważnie analizować kod, żeby nie popełniać takich błędów jakie ja popełniłem ;p<br />Dzięki wszystkim <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=5293">grochal7</a> — 30 lip 2014, o 08:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kicajek]]></name></author>
<updated>2014-07-30T00:39:16+01:00</updated>
<published>2014-07-30T00:39:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6602&amp;p=89419#p89419</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6602&amp;p=89419#p89419"/>
<title type="html"><![CDATA[Re: Wyświetlacz 7 seg problem z kodem pomocy.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6602&amp;p=89419#p89419"><![CDATA[
Witam<br /><div class="quotetitle">grochal7 napisał(a):</div><div class="quotecontent"><br />...dzięki za każdą pomoc...<br /></div><br />[syntax=c]ISR(TIMER2_COMP_vect)<br />{<br />   //zmienna do przelaczania kolejno anod wyswietacza<br />   static uint8_t licznik=16;<br />   //cykliczne przelaczanie w kazdym przerwaniu<br />   //anod każdego wyswietlacza (wartosc jest negowana ay krazylo zero)<br />   ANODY_PORT= (ANODY_PORT &amp; 0b001111) | (~licznik &amp; 0b110000);<br /><br />   //gdy zapalony wyswietlacz nr 1 podaj stan zmiennej c1<br />   if(licznik==16) LED_DATA = pgm_read_byte( &amp;cyfry&#91;cy1&#93;);<br />   //gdy zapalony wyswietlacz 2 podaj stan zmiennej c2<br />   else if(licznik==32) LED_DATA = pgm_read_byte( &amp;cyfry&#91;cy2&#93;);<br /><br />   //operacje cyklicznego przesuwania bitu zapalajacego anody w zmiennej licznik<br /><br />   licznik&lt;&lt;=1; //przesuniecie zawartosci bitow licznika o 1 w lewo<br />   if(licznik&gt;32) licznik =16;//jesli licznik wiekszy od 2 to ustaw na 1<br />}[/syntax]<br />Myślę, że pomocą będzie &quot;niekomentowanie&quot; - może sam zaskoczysz, gdzie popełniałeś błąd  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br /><br />Pozdr.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=826">kicajek</a> — 30 lip 2014, o 00:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[grochal7]]></name></author>
<updated>2014-07-29T23:21:55+01:00</updated>
<published>2014-07-29T23:21:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6602&amp;p=89416#p89416</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6602&amp;p=89416#p89416"/>
<title type="html"><![CDATA[Re: Wyświetlacz 7 seg problem z kodem pomocy.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6602&amp;p=89416#p89416"><![CDATA[
Sprawdzam wszystko na płytce stykowej.<br />Na PC4 i PC5 jest stan wysoki. Diodę anodą podpinam do PC5 lub PC4 katodą podpinam do masy. (oczywiście stosuję też rezystor)<br />Dioda ŚWIECI. <br />Zastosowałem Atmege8.<br />Używam wyświetlacza podwójnego ze wspólną anodą. Anoda sterowana przez tranzystor. Bramki tranzystorów podpięte poprzez rezystory do PC4 i PC5. Emiter do VCC (5V) colektor bezpośrednio do anody wyświetlacza.<br />Katody wyświetlacza podpięte przez rezystor do PORTD od 0 do 7.<br />W momencie gdy zwieram bramkę tranzystora do masy na wyświetlaczu pojawia mi się cyfra. <br /><br />Pzdr i dzięki za każdą pomoc<br /><br />main.c<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;avr/eeprom.h&gt;<br /><br />#include &quot;wyswietlacz.h&quot; //dolaczenie pliku nagłówkowego<br /><br />int main(void){<br /> //      inicjalizacja<br />d_led_init(); //inicjalizacja wyswietlacza multipleksowego<br />cy1=5;<br />cy2=10;<br /><br />sei();//włączenie globalnego zezwolenia na przerwania<br /><br />//   ******   pętla główna programu    *****<br /><br />while(1){<br /><br />}<br /><br />}[/syntax]<br />wyswietlacz.h<br />[syntax=c]#ifndef _wyswietlacz_h //dyrektywy zabezpieczaja przed dolaczeniem tego samego pliku naglowkowego jesli bedzie dolaczany w wielu roznych plikach programu<br />#define _wyswietlacz_h<br /><br />//definicje portow i pinow wyswietlacza uzywanych w programie<br /><br />#define LED_DATA PORTD<br />#define LED_DATA_DIR DDRD<br />#define ANODY_PORT PORTC<br />#define ANODY_DIR DDRC<br /><br />#define CA1 (1&lt;&lt;PC5) //numer wyswietlacza<br />#define CA2 (1&lt;&lt;PC4) //numer wyswietlacza<br /><br />#define SEG_A (1&lt;&lt;0)<br />#define SEG_B (1&lt;&lt;1)<br />#define SEG_C (1&lt;&lt;2)<br />#define SEG_D (1&lt;&lt;3)<br />#define SEG_E (1&lt;&lt;4)<br />#define SEG_F (1&lt;&lt;5)<br />#define SEG_G (1&lt;&lt;6)<br />#define SEG_DP (1&lt;&lt;7)<br /><br />//extern powoduje ze zmienne te beda widoczne we wszystkich modulach, ktore dolacza ten plik za pomoca dyrektywy include<br /><br />extern volatile uint8_t cy1;<br />extern volatile uint8_t cy2;<br /><br />extern uint8_t cyfry&#91;&#93; PROGMEM;<br /><br />//funkcja<br /><br />void d_led_init(void);<br /><br />#endif //koniec wyswietlacz.h[/syntax]<br /><br /><br />wyswietlacz.c<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt; //obsluga przerwan<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/eeprom.h&gt;<br /><br />#include &quot;wyswietlacz.h&quot; //dolaczenie pliku nagłówkowego<br /><br />volatile uint8_t cy1;<br />volatile uint8_t cy2;<br /><br />//definicja tablic zawierajacej bitowe cyfry lde<br />uint8_t cyfry&#91;15&#93; PROGMEM = {<br />~(SEG_A|SEG_B|SEG_C|SEG_D|SEG_E|SEG_F),// 0<br />~(SEG_B|SEG_C),// 1<br />~(SEG_A|SEG_B|SEG_D|SEG_E|SEG_G),// 2<br />~(SEG_A|SEG_B|SEG_C|SEG_D|SEG_G),// 3<br />~(SEG_B|SEG_C|SEG_F|SEG_G),// 4<br />~(SEG_A|SEG_C|SEG_D|SEG_F|SEG_G),// 5<br />~(SEG_A|SEG_C|SEG_D|SEG_E|SEG_F|SEG_G),// 6<br />~(SEG_A|SEG_B|SEG_C|SEG_F),// 7<br />~(SEG_A|SEG_B|SEG_C|SEG_D|SEG_E|SEG_F|SEG_G),// 8<br />~(SEG_A|SEG_B|SEG_C|SEG_D|SEG_F|SEG_G),// 9<br />0xFF// NIC (puste miejsce)<br />};<br /><br />//**********  funkcja inicjalizujaca prace z wyswietlaczem multipleksowym    *************<br />void d_led_init(void)<br />{<br />LED_DATA_DIR = 0xFF; //piny portu D jako wyjscia<br />LED_DATA =0xFF; //wygaszenie wszystkich katod -stan wysoki<br />//2 piny portu c jako wyjscia (anody)<br />ANODY_DIR |= CA1 | CA2;<br />//wygaszenie wszystkich wyswietlaczy<br />ANODY_PORT |= CA1 | CA2;<br /><br /><br />//ustawienie timera2<br />TCCR2 |= (1&lt;&lt;WGM21);//tryb ctc<br />//ustawienie preskalera<br />//musze uzyskac 100Hz bo mam 2 wyswietlacze ledowe. kazdy musi zapalac diode z czestotliwoscia powiedzmy 50Hz aby nie bylo widac migotania.<br />TCCR2 |=(1&lt;&lt;CS20)|(1&lt;&lt;CS21)|(1&lt;&lt;CS22); //preskaler 1024<br />OCR2 =78;//podział przez 78 (rejestr porównania)<br />TIMSK |=(1&lt;&lt;OCIE2); //zezwolenie na przerwanie compare match<br /><br />}<br /><br />//procedura obslugi przerwania<br /><br />ISR(TIMER2_COMP_vect)<br />{<br />//zmienna do przelaczania kolejno anod wyswietacza<br />static uint8_t licznik=1;<br />//cykliczne przelaczanie w kazdym przerwaniu<br />//anod każdego wyswietlacza (wartosc jest negowana ay krazylo zero)<br />ANODY_PORT=  (ANODY_PORT &amp; 0xF0) | (~licznik &amp; 0x0F);<br /><br /><br /><br /><br /><br />//gdy zapalony wyswietlacz nr 1 podaj stan zmiennej c1<br />if(licznik==1) LED_DATA = pgm_read_byte( &amp;cyfry&#91;cy1&#93;);<br />//gdy zapalony wyswietlacz 2 podaj stan zmiennej c2<br />else if(licznik==2) LED_DATA = pgm_read_byte( &amp;cyfry&#91;cy2&#93;);<br /><br />//operacje cyklicznego przesuwania bitu zapalajacego anody w zmiennej licznik<br /><br />licznik&lt;&lt;=1; //przesuniecie zawartosci bitow licznika o 1 w lewo<br />if(licznik&gt;2) licznik =1;//jesli licznik wiekszy od 2 to ustaw na 1<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5293">grochal7</a> — 29 lip 2014, o 23:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kicajek]]></name></author>
<updated>2014-07-29T22:42:42+01:00</updated>
<published>2014-07-29T22:42:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6602&amp;p=89412#p89412</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6602&amp;p=89412#p89412"/>
<title type="html"><![CDATA[Re: Wyświetlacz 7 seg problem z kodem pomocy.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6602&amp;p=89412#p89412"><![CDATA[
Witam<br />Na czym sprawdzasz ( płytka stykowa, gotowe urz. )? -  może jednak masz coś innego niż kol.<strong>mileksk8</strong> - np. inny uC.<br />Porty &quot;anodowe&quot; zgodne z programem?<br />Nie wiem czy tutaj czy w nowym temacie, ale opisz jak to masz podłączone; przy okazji porównaj z programem. Na próbę podłącz LED'a do sprawdzenia wyjścia.<br /><br />Pozdr.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=826">kicajek</a> — 29 lip 2014, o 22:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[grochal7]]></name></author>
<updated>2014-07-29T22:20:15+01:00</updated>
<published>2014-07-29T22:20:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6602&amp;p=89410#p89410</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6602&amp;p=89410#p89410"/>
<title type="html"><![CDATA[Re: Wyświetlacz 7 seg problem z kodem pomocy.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6602&amp;p=89410#p89410"><![CDATA[
Szkoda, że nie napisałeś GDZIE był błąd. Mam dokładnie ten sam problem. Wszystko identycznie jednak timer i preskaler dobrze ustawione.<br />Nic nie wyświetla. <br />Podłączenie wyświetlaczy jest prawidłowe.<br />Wydaje mi się, że problem występuje po stronie sterowania tranzystorami bo jak zwieram z masą bazę tranzystora to wyświetlacz się zapala. Więc problem z pinami sterującymi anodami wyświetlacza.<br /><br />(Tak wiem, trochę odkopuję temat, ale wydaje mi się że lepiej odkopać i dokończyć niż zakładać nowy o niemal tej samej treści)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5293">grochal7</a> — 29 lip 2014, o 22:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mileksk8]]></name></author>
<updated>2014-04-01T21:32:53+01:00</updated>
<published>2014-04-01T21:32:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6602&amp;p=76671#p76671</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6602&amp;p=76671#p76671"/>
<title type="html"><![CDATA[Re: Wyświetlacz 7 seg problem z kodem pomocy.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6602&amp;p=76671#p76671"><![CDATA[
dalej to samo nic zero reakcji wyświetlacza preskaler 1024<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 2 minutach ]</span></strong><br /><br />wyświetlacz działa bo jak robię zwykły licznik do 9 to n trzech wyświetlaczach działa<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 3 minutach ]</span></strong><br /><br />żadnych błędów nie ma podczas kompilacji<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 5 minutach ]</span></strong><br /><br />znalazłem błąd jednak działa dzięki wielkie za pomoc <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3540">mileksk8</a> — 1 kwi 2014, o 21:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kaka0204]]></name></author>
<updated>2014-04-01T20:36:42+01:00</updated>
<published>2014-04-01T20:36:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6602&amp;p=76659#p76659</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6602&amp;p=76659#p76659"/>
<title type="html"><![CDATA[Re: Wyświetlacz 7 seg problem z kodem pomocy.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6602&amp;p=76659#p76659"><![CDATA[
Błędna inicjalizacja timera<br /><br />[syntax=c]TCCR2 |= (1&lt;&lt;WGM12);[/syntax]<br /><br />Zmień na:<br /><br />[syntax=c]TCCR2 |= (1&lt;&lt;WGM21);[/syntax]<br /><br /><br /><br />[syntax=c]TCCR2 |= (1&lt;&lt;CS12)|(1&lt;&lt;CS10);[/syntax]<br /><br />Zamień na:<br />(Nie wiem jaki chcesz mieć preskaler)<br /><br />[syntax=c]TCCR2 |= (1&lt;&lt;CS21)|(1&lt;&lt;CS20);[/syntax]<br /><br /><br /><br />[syntax=c]TIMSK |= (1&lt;&lt;OCIE1A);[/syntax]<br /><br /><br />Zamień na:<br /><br />[syntax=c]TIMSK |= (1&lt;&lt;OCIE2);[/syntax]<br /><br />Powinno śmigać.<br /><br />Pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=889">kaka0204</a> — 1 kwi 2014, o 20:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kicajek]]></name></author>
<updated>2014-04-01T20:30:31+01:00</updated>
<published>2014-04-01T20:30:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6602&amp;p=76655#p76655</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6602&amp;p=76655#p76655"/>
<title type="html"><![CDATA[Re: Wyświetlacz 7 seg problem z kodem pomocy.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6602&amp;p=76655#p76655"><![CDATA[
Witam<br /><div class="quotetitle">mileksk8 napisał(a):</div><div class="quotecontent"><br />nic nie wyświetla<br /></div><br />...nic jako ciemność czy coś tam mruga ale źle.<br />Kompilacja prawidłowa? Wyświetlacze sprawdziłeś &quot;na sucho&quot;?<br /><br />Pozdr.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=826">kicajek</a> — 1 kwi 2014, o 20:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mileksk8]]></name></author>
<updated>2014-04-01T20:07:11+01:00</updated>
<published>2014-04-01T20:07:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6602&amp;p=76651#p76651</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6602&amp;p=76651#p76651"/>
<title type="html"><![CDATA[Wyświetlacz 7 seg problem z kodem pomocy.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6602&amp;p=76651#p76651"><![CDATA[
Cześć programuje amtega8 i mam problem z wyświetlaczami niżej kod nic nie wyświetla, może mam jakiś głupi błąd ale nie mogę sam go znaleźć proszę o pomoc. Schemat podłączenia identycznie jak z książki Mirka. PORTD katody PORTC anody kolejnych wyświetlaczy.<br />Już od kilku dni mecze się z tym i nic nie mogę zrobić.<br /><a href="http://forum.atnel.pl/_obrazki/o/3540/e30254f381983782630cb88073a2560b.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/3540/e30254f381983782630cb88073a2560b.jpg" alt="Obrazek" /></a><br /><br />main.c<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include&lt;avr/pgmspace.h&gt;<br />#include &lt;avr/delay.h&gt;<br />#include &quot;d_led.h&quot;<br />int main(void)<br />{<br />       d_led_init();<br />cy1=1;<br />cy2=4;<br />cy3=9;<br />sei();<br />while(1)<br />{<br />}<br />}[/syntax]<br /><br />d_led.h<br />[syntax=c]#ifndef _d_led_h<br />#define _d_led_h<br /><br />#define LED_DATA PORTD<br />#defineLED_DATA_DIR DDRD<br />#define ANODY_PORT PORTC<br />#define ANODY_DIR DDRC<br /><br /><br />#define CA1 (1&lt;&lt;PC0)<br />#define CA2 (1&lt;&lt;PC1)<br />#define CA3 (1&lt;&lt;PC2)<br /><br />#define SEG_A (1&lt;&lt;0)<br />#define SEG_B (1&lt;&lt;1)<br />#define SEG_C (1&lt;&lt;2)<br />#define SEG_D (1&lt;&lt;3)<br />#define SEG_E (1&lt;&lt;4)<br />#define SEG_F (1&lt;&lt;5)<br />#define SEG_G (1&lt;&lt;6)<br />#define SEG_DP (1&lt;&lt;7)<br /><br />extern volatile uint8_t cy1;<br />extern volatile uint8_t cy2;<br />extern volatile uint8_t cy3;<br /><br />void d_led_init(void);<br /><br />#endif[/syntax]<br /><br />d_led.c<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;until/delay.h&gt;<br />#include &quot;d_led.h&quot;<br /><br />volatile uint8_t cy1;<br />volatile uint8_t cy2;<br />volatile uint8_t cy3;<br /><br />const uint8_t cyfry&#91;15&#93; PROGMEM = {<br />~(SEG_A|SEG_B|SEG_C|SEG_D|SEG_E|SEG_F),<br />~(SEG_B|SEG_C),<br />~(SEG_A|SEG_B|SEG_D|SEG_E|SEG_G),<br />~(SEG_A|SEG_B|SEG_C|SEG_D|SEG_G),<br />~(SEG_B|SEG_C|SEG_F|SEG_G),<br />~(SEG_A|SEG_C|SEG_D|SEG_F|SEG_G),<br />~(SEG_A|SEG_C|SEG_D|SEG_E|SEG_F|SEG_G),<br />~(SEG_A|SEG_B|SEG_C|SEG_F),<br />~(SEG_A|SEG_B|SEG_C|SEG_D|SEG_E|SEG_F|SEG_G),<br />~(SEG_A|SEG_B|SEG_C|SEG_D|SEG_F|SEG_G),<br />0xFF<br />};<br />void d_led_init(void)<br />{<br />LED_DATA_DIR =0xFF;   <br />LED_DATA = 0xFF;<br />ANODY_DIR |= CA1 | CA2 | CA3;<br />ANODY_PORT |= CA1 | CA2 | CA3;<br /><br />// ustawienie TIMER0<br />TCCR2 |= (1&lt;&lt;WGM12);<br />TCCR2 |= (1&lt;&lt;CS12)|(1&lt;&lt;CS10);<br />OCR2 = 85;<br />TIMSK |= (1&lt;&lt;OCIE1A);<br />}<br /><br />ISR(TIMER2_COMP_vect)<br />{<br />static uint8_t licznik=1;<br /><br />ANODY_PORT = (ANODY_PORT &amp; 0xF0);<br /><br /><br />    if(licznik==1)       LED_DATA = pgm_read_byte( &amp;cyfry&#91;cy1&#93; );<br />else if(licznik==2) LED_DATA = pgm_read_byte( &amp;cyfry&#91;cy2&#93; );<br />else if(licznik==4) LED_DATA = pgm_read_byte( &amp;cyfry&#91;cy3&#93; );<br /><br />ANODY_PORT = (ANODY_PORT &amp; 0xF0) | (~licznik &amp; 0x0F);<br /><br />licznik &lt;&lt;= 1;<br />if(licznik&gt;4) licznik = 1;<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3540">mileksk8</a> — 1 kwi 2014, o 20:07</p><hr />
]]></content>
</entry>
</feed>