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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-11-30T17:02:13+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=9497&amp;mode</id>
<entry>
<author><name><![CDATA[Darek254]]></name></author>
<updated>2014-11-30T17:02:13+01:00</updated>
<published>2014-11-30T17:02:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9497&amp;p=106798#p106798</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9497&amp;p=106798#p106798"/>
<title type="html"><![CDATA[Re: Wyświetlacz 7 segmentowy - prośba o kod]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9497&amp;p=106798#p106798"><![CDATA[
Ok dzięki już sobie poradziłem.<br /><br />Temat do zamknięcia <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /><br /><br />Wstawię swój kod (jest trochę chaotyczny itp) ale może komuś pomoże.<br />Wiem, że definicje są niepotrzebne ale zostawiłem je (po prostu nie wiedziałem jak je wstawić do tablicy aby ich użyć)<br />ale jak ktoś pozmienia porty w programie na swoje to przy 8MHz powinien mieć zegarek w formacie GG:MM(dałem wersję bez kropki między godzinami a minutami bo jest czytelniejszy kod).<br />i jak jest to if(cnt&gt;1856) to tam można zmienić szybkość(preskaler jest 1024).<br /><br />main.c<br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 16-11-2014<br /> *      Author: Darek<br /> */<br /><br />//################################UWAGA! PROGRAM ZALEŻNY OD TAKTOWANIA PROCESORA!################################<br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />//#################################################################################################<br />#define SEG_ZERO 0b11111100;//Definicje liczb 1-9 bez kropek<br />#define SEG_JEDEN 0b00110000;<br />#define SEG_DWA0b01101101;<br />#define SEG_TRZY 0b01110101;<br />#define SEG_CZTERY0b10110001;<br />#define SEG_PIEC 0b11010101;<br />#define SEG_SZESC 0b11011101;<br />#define SEG_SIEDEM 0b01110000;<br />#define SEG_OSIEM 0b11111101;<br />#define SEG_DZIEWIEC 0b11110101;<br />#define SEG_KROPKA 0b00000010;//Definicje liczb 1-9 z kropkami i samej kropki<br />#define SEG_ZERO_K 0b11111110;<br />#define SEG_JEDEN_K 0b00110010;<br />#define SEG_DWA_K0b01101111;<br />#define SEG_TRZY_K 0b01110111;<br />#define SEG_CZTERY_K0b10110011;<br />#define SEG_PIEC_K 0b11010111;<br />#define SEG_SZESC_K 0b11011111;<br />#define SEG_SIEDEM_K 0b01110010;<br />#define SEG_OSIEM_K 0b11111111;<br />#define SEG_DZIEWIEC_K 0b11110111;<br />#define WYS1 0b00000010;//definicja wyswietlaczy<br />#define WYS2 0b00000001;<br />#define WYS3 0b10000000;<br />#define WYS4 0b01000000;<br />//#################################################################################################<br /><br />//definicja LED1 (do którego pinu podłączony LED1)<br />#define LED1 PC5<br /><br />//definicja LED2 (do którego pinu podłączony LED2)<br />#define LED2 PC4<br /><br />//definicja początkowej wartości timera<br />#define timer_start 6<br /><br />//zmienna pomocnicza-licznik używana w przerwaniu<br />volatile uint8_t a = 6, b=0, c=6, d=1;<br />volatile uint16_t cnt = 0;<br /><br />volatile uint8_t TAB_WYS&#91; 4 &#93; = { 0b00000010, 0b00000001, 0b10000000, 0b01000000 };<br /><br />volatile uint8_t TAB_LICZBA&#91; 10 &#93; = { 0b11111100, 0b00110000, 0b01101101, 0b01110101, 0b10110001, 0b11010101, 0b11011101, 0b01110000, 0b11111101, 0b11110101};<br /><br />int main(void)<br />{<br /><br />PORTB = 0x00;//Ustawienie portów B na wyjscia<br />PORTD = 0x00;//Ustawienie portów D na wyjscia<br /><br /> //######## konfiguracja timera ##############<br /> TIMSK |= (1&lt;&lt;TOIE0);           //Przerwanie overflow (przepełnienie timera)<br /> TCCR0 |= (1&lt;&lt;CS02) | (1&lt;&lt;CS00); // źródłem CLK, preskaler 1024<br /> TCNT0 = timer_start;//          //Początkowa wartość licznika<br /> //###########################################<br /><br /> sei();//Globalne uruchomienie przerwań<br /><br /> while(1)//główna pętla programu(pusta)<br /> {<br /><br />   DDRB = WYS1;//Uruchomienie 1. wyswietlacza<br />   DDRD = TAB_LICZBA&#91;d&#93;;//definicja liczby 1<br />   _delay_ms(1);<br /><br /><br />   DDRB = WYS2;//Uruchomienie 2. wyswietlacza<br />   DDRD = TAB_LICZBA&#91;c&#93;;//definicja liczby 2<br />   _delay_ms(1);<br /><br /><br />   DDRB = WYS3;//Uruchomienie 3. wyswietlacza<br />   DDRD = TAB_LICZBA&#91;b&#93;;//definicja liczby 3<br />   _delay_ms(1);<br /><br /><br />   DDRB = WYS4;//Uruchomienie 4. wyswietlacza<br />   DDRD = TAB_LICZBA&#91;a&#93;;//definicja liczby 4<br />   _delay_ms(1);<br /><br /> }<br />}<br /><br />//############ Procedura obsługi przerwania od przepełnienia timera ############<br />ISR(TIMER0_OVF_vect)<br />{<br />  TCNT0 = timer_start;          //Początkowa wartość licznika<br /><br />  cnt++;     //zwiększa zmienną licznik<br />  if(cnt&gt;1856)  //32 przerwania około 1s<br />  {<br />  cnt = 0;<br />  a++;<br />  if(10 == a)<br />  {<br />  a=0;<br />  b++;<br />  if(6 == b)<br />  {<br />  b=0;<br />  c++;<br />  if(10 == c)<br />  {<br />  c=0;<br />  d++;<br />  }<br />  if(2 == d)<br />  {<br />  if(4 == c)<br />  {<br />  a = 0;<br />  b = 0;<br />  c = 0;<br />  d = 0;<br />  }<br />  }<br />  }<br />  }<br /><br />  }<br />}<br />//##############################################################################[/syntax]<br /><br />A tu drugi program, który wyświetla 1234<br /><br />main.c<br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 16-11-2014<br /> *      Author: Darek<br /> */<br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />//#################################################################################################<br />#define SEG_ZERO 0b11111100;//Definicje liczb 1-9 bez kropek<br />#define SEG_JEDEN 0b00110000;<br />#define SEG_DWA0b01101101;<br />#define SEG_TRZY 0b01110101;<br />#define SEG_CZTERY0b10110001;<br />#define SEG_PIEC 0b11010101;<br />#define SEG_SZESC 0b11011101;<br />#define SEG_SIEDEM 0b01110000;<br />#define SEG_OSIEM 0b11111101;<br />#define SEG_DZIEWIEC 0b11110101;<br />#define SEG_KROPKA 0b00000010;//Definicje liczb 1-9 z kropkami i samej kropki<br />#define SEG_ZERO_K 0b11111110;<br />#define SEG_JEDEN_K 0b00110010;<br />#define SEG_DWA_K0b01101111;<br />#define SEG_TRZY_K 0b01110111;<br />#define SEG_CZTERY_K0b10110011;<br />#define SEG_PIEC_K 0b11010111;<br />#define SEG_SZESC_K 0b11011111;<br />#define SEG_SIEDEM_K 0b01110010;<br />#define SEG_OSIEM_K 0b11111111;<br />#define SEG_DZIEWIEC_K 0b11110111;<br />#define WYS1 0b00000010;//definicja wyswietlaczy<br />#define WYS2 0b00000001;<br />#define WYS3 0b10000000;<br />#define WYS4 0b01000000;<br />//#################################################################################################<br /><br />/////////////////DIODY///////////////////////<br />//0b00000001 srodkowa kreska (dioda G)   //<br />//0b00000010 kropka (dioda H)   //<br />//0b00000100 dolna kreska (dioda D)   //<br />//0b00001000 lewa dolna kreska (dioda E)   //<br />//0b00010000 prawa dolna kreska (dioda C)  //<br />//0b00100000 prawa górna kreska (dioda B)  //<br />//0b01000000 górna kreska (dioda A)   //<br />//0b10000000 lewa górna kreska (dioda F)   //<br />/////////////////////////////////////////////<br /><br />///////////LICZBY////BEZ////KROPEK///////////<br />//0b11111100 ZERO (diody A;B;C;D;E;F)   //<br />//0b00110000 JEDEN (diody B;C)   //<br />//0b01101101 DWA (diody A;B;G;E;D)   //<br />//0b01110101 TRZY (diody A;B;G;C;D)   //<br />//0b10110001 CZTERY (diody F;G;B;C)   //<br />//0b11010101 PIĘĆ (diody A;F;G;C;D)   //<br />//0b11011101 SZEŚĆ (diody A;F;G;C;D;E)   //<br />//0b01110000 SIEDEM (diody A;B;C)   //<br />//0b11111101 OSIEM (diody A;B;C;D;E;F;G)   //<br />//0b11110101 DZIEWIĘĆ (diody A;B;C;D;F;G)  //<br />/////////////////////////////////////////////<br /><br />////////////WYŚWIETLACZE/////////////////////<br />//0b01000000 pierwszy wyswietlacz od prawej//<br />//0b10000000 drugi -||-   //<br />//0b00000001 trzeci -||-   //<br />//0b00000010 czwarty -||-   //<br />/////////////////////////////////////////////<br /><br />int main(void)<br />{<br /><br />   PORTB = 0x00;//Ustawienie portów B na wyjscia<br />   PORTD = 0x00;//Ustawienie portów D na wyjscia<br /><br />   while(1)<br />   {<br /><br />   DDRB = WYS1;//Uruchomienie 1. wyswietlacza<br />   DDRD = SEG_JEDEN;//definicja liczby 1<br />   _delay_ms(1);<br /><br />   //_delay_ms(1000);//pozwala zobaczyć działanie programu w spowolnieniu<br /><br />   DDRB = WYS2;//Uruchomienie 2. wyswietlacza<br />   DDRD = SEG_DWA;//definicja liczby 2<br />   _delay_ms(1);<br /><br />   //_delay_ms(1000);//pozwala -||-<br /><br />   DDRB = WYS3;//Uruchomienie 3. wyswietlacza<br />   DDRD = SEG_TRZY;//definicja liczby 3<br />   _delay_ms(1);<br /><br />   //_delay_ms(1000);//pozwala zobaczyć działanie programu w spowolnieniu<br /><br />   DDRB = WYS4;//Uruchomienie 4. wyswietlacza<br />   DDRD = SEG_CZTERY;//definicja liczby 4<br />   _delay_ms(1);<br /><br />   //_delay_ms(1000);//pozwala -||-<br /><br />   }<br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6974">Darek254</a> — 30 lis 2014, o 17:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Elektronik]]></name></author>
<updated>2014-11-30T14:45:53+01:00</updated>
<published>2014-11-30T14:45:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9497&amp;p=106746#p106746</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9497&amp;p=106746#p106746"/>
<title type="html"><![CDATA[Re: Wyświetlacz 7 segmentowy - prośba o kod]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9497&amp;p=106746#p106746"><![CDATA[
Witam<br /><br />Tutaj masz przykładowy program autorstwa kolegi z forum:<br /><a href="http://forum.atnel.pl/topic3288.html"  class="postlink">http://forum.atnel.pl/topic3288.html</a><br /><br />Pozdrawiam<br />Elektronik<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=858">Elektronik</a> — 30 lis 2014, o 14:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tomekm]]></name></author>
<updated>2014-11-30T14:44:02+01:00</updated>
<published>2014-11-30T14:44:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9497&amp;p=106745#p106745</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9497&amp;p=106745#p106745"/>
<title type="html"><![CDATA[Re: Wyświetlacz 7 segmentowy - prośba o kod]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9497&amp;p=106745#p106745"><![CDATA[
Tu znajdziesz informacje na temat obsługi wyświetlacza siedmiosegmentowego: <!-- m --><a class="postlink" href="http://hobby.abxyz.bplaced.net/index.php?pid=4&amp;aid=4" >http://hobby.abxyz.bplaced.net/index.php?pid=4&amp;aid=4</a><!-- m --><br /><br />Idea jest generalnie taka.<br /><br /><a href="http://forum.atnel.pl/_obrazki/o/6492/f9a7242f25b345a6e7270490da113486.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/6492/f9a7242f25b345a6e7270490da113486.jpg" alt="Obrazek" /></a><br /><br />Masz tego typu układ, jak na obrazku.<br /><br />D1, D2, D3 i D4 - za pomocą tych pinów wybierasz aktywny wyświetlacz (1 z 4)<br />Następnie wybierasz, które segmenty mają być aktywne. W danej chwili, która może być bardzo krótka, może być aktywny tylko jeden wyświetlacz, ale...<br />Przełączając się pomiędzy wyświetlaczami z dużą częstotliwością uzyskamy &quot;złudzenie&quot; stałego obrazu.<br /><br />Poza tym rzeczywiście - więcej znajdziesz na ten temat np. w książce Mirka, pewne w innych też, a i w Internecie jest mnóstwo wiedzy.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6492">tomekm</a> — 30 lis 2014, o 14:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kaka0204]]></name></author>
<updated>2014-11-30T14:33:46+01:00</updated>
<published>2014-11-30T14:33:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9497&amp;p=106742#p106742</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9497&amp;p=106742#p106742"/>
<title type="html"><![CDATA[Re: Wyświetlacz 7 segmentowy - prośba o kod]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9497&amp;p=106742#p106742"><![CDATA[
Wiesz na czym polega multipleksowanie? Jak ono działa? Pokaż co już napisałeś, a na pewno znajdzie się ktoś, kto Ci pomoże <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=889">kaka0204</a> — 30 lis 2014, o 14:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-11-30T14:04:51+01:00</updated>
<published>2014-11-30T14:04:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9497&amp;p=106740#p106740</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9497&amp;p=106740#p106740"/>
<title type="html"><![CDATA[Re: Wyświetlacz 7 segmentowy - prośba o kod]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9497&amp;p=106740#p106740"><![CDATA[
Może jednak warto zacząć od książki ?<br /><br /><!-- m --><a class="postlink" href="http://atnel.pl/mikrokontrolery-avr-jezyk-c.html" >http://atnel.pl/mikrokontrolery-avr-jezyk-c.html</a><!-- m --><br /><br />masz w niej wszystko krok po kroku wyjaśnione i to nie tylko o multipleksowaniu - bo skoro z multipleksowaniem masz kłopot to podejrzewam, że jeszcze z wieloma innymi podstawami C masz kłopoty.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 30 lis 2014, o 14:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Darek254]]></name></author>
<updated>2014-11-30T13:53:01+01:00</updated>
<published>2014-11-30T13:53:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9497&amp;p=106738#p106738</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9497&amp;p=106738#p106738"/>
<title type="html"><![CDATA[Wyświetlacz 7 segmentowy - prośba o kod]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9497&amp;p=106738#p106738"><![CDATA[
Nie umiem multipleksować ale postanowiłem się nauczyć. Z tego powodu podłączyłem cztery wyświetlacze ze wspólną anodą (połączone po 2) według schematu, ale problem tkwi w tym, że nie umiem napisać programu który pozwoli mi sprawdzić czy wszytko poprawnie działa. Proszę, więc o prosty program, który wyświetli cokolwiek byleby na każdym wyświetlaczu było co innego. Wyprowadzenia diod z wyświetlacza podłączyłem do ATmega8 do wszystkich portów D (a-PD6; b-PD5,c-PD4,d-PD2,e-PD3,f-PD7,g-PD0,dp-PD1) a wyprowadzenia z tranzystorów do portów PB0, PB1, PB6, PB7(jeśli komuś nie pasuje kolejność portów itp. to mogę ją zmienić).<br /><br />Z góry dzięki i pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6974">Darek254</a> — 30 lis 2014, o 13:53</p><hr />
]]></content>
</entry>
</feed>