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

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

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=5509&amp;mode</id>
<entry>
<author><name><![CDATA[jacekk232]]></name></author>
<updated>2014-01-11T23:59:59+01:00</updated>
<published>2014-01-11T23:59:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5509&amp;p=64687#p64687</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5509&amp;p=64687#p64687"/>
<title type="html"><![CDATA[Re: Chęć wyświetlania po kolei liczb na wyświetlaczu LED]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5509&amp;p=64687#p64687"><![CDATA[
Stwórz dwie zmienne globalne opatrzone przydomkiem volatile<br />[syntax=c]volatile uint8_t cyfra1, cyfra2[/syntax]<br />Podstaw je w przerwaniu w miejsce indeksu tablicy cyfry[]<br />[syntax=c]if (licznik == 1) {<br />                Katoda2_OFF;<br />                Katoda1_ON;<br />                LED_DATA = pgm_read_byte( &amp;cyfry&#91;cyfra1&#93; ); // gdy zapalony wyśw.1 podaj stan zmiennej c1<br />        } else if (licznik == 2) {<br /> <br />                Katoda1_OFF;<br />                Katoda2_ON;<br /> <br />                LED_DATA = pgm_read_byte( &amp;cyfry&#91;cyfra2&#93; ); // gdy zapalony wyśw.2 podaj stan zmiennej c2<br /> <br />        }[/syntax]<br />A potem w pętli głównej co jakiś czas zwiększaj i wartość<br />[syntax=c]cyfra1++;<br />if(cyfra1 &gt; 9)<br />{<br />cyfra1 = 0;<br />cyfra2++;<br />if(cyfra2 &gt; 9) cyfra2 = 0;<br />}<br />_delay_ms(250);[/syntax]<br />I tym sposobem na wyświetlaczach powinien się kręcić licznik w zakresie 0...99<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=204">jacekk232</a> — 11 sty 2014, o 23:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kurnachatka]]></name></author>
<updated>2014-01-11T21:21:13+01:00</updated>
<published>2014-01-11T21:21:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5509&amp;p=64664#p64664</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5509&amp;p=64664#p64664"/>
<title type="html"><![CDATA[Re: Chęć wyświetlania po kolei liczb na wyświetlaczu LED]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5509&amp;p=64664#p64664"><![CDATA[
Posiadasz Blubook Mirka bo tam miałeś gotowy przykład w ćwiczeniu &quot;03_Multi_LED&quot;<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=930">kurnachatka</a> — 11 sty 2014, o 21:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[acid3]]></name></author>
<updated>2014-01-11T18:20:54+01:00</updated>
<published>2014-01-11T18:20:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5509&amp;p=64636#p64636</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5509&amp;p=64636#p64636"/>
<title type="html"><![CDATA[Re: Chęć wyświetlania po kolei liczb na wyświetlaczu LED]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5509&amp;p=64636#p64636"><![CDATA[
Popraw wstawienie kodu bo nic nie widać<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=944">acid3</a> — 11 sty 2014, o 18:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[dawidu00]]></name></author>
<updated>2014-01-11T19:14:18+01:00</updated>
<published>2014-01-11T18:17:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5509&amp;p=64634#p64634</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5509&amp;p=64634#p64634"/>
<title type="html"><![CDATA[Chęć wyświetlania po kolei liczb na wyświetlaczu LED]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5509&amp;p=64634#p64634"><![CDATA[
Witam to mój kolejny post w tym tygodniu ale teraz mi już działa multipleksowanie LED ale wpadłem na lepszy pomysł żeby liczby wyświetlały się po kolei  np od 0 do 10 i się nasuwa pytanie jak to zrobić ?O to kod:<br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 09-01-2014<br /> *      Author: Dawid<br /> */<br />#include &lt;avr/io.h&gt;// dołączenie głównego systemowego  pliku nagłówkowego<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br /><br />#define Katoda1 (1&lt;&lt;PB0)<br />#define  Katoda1_ON PORTB |= Katoda1<br />#define  Katoda1_OFF PORTB &amp;=~ Katoda1<br /><br />#define Katoda2 (1&lt;&lt;PB1)<br />#define  Katoda2_ON PORTB |= Katoda2<br />#define  Katoda2_OFF PORTB &amp;=~ Katoda2<br /><br />#define SEG_A (1&lt;&lt;PD0)<br />#define SEG_B (1&lt;&lt;PD1)<br />#define SEG_C (1&lt;&lt;PD2)<br />#define SEG_D (1&lt;&lt;PD3)<br />#define SEG_E (1&lt;&lt;PD4)<br />#define SEG_F (1&lt;&lt;PD5)<br />#define SEG_G (1&lt;&lt;PD6)<br />#define SEG_DP (1&lt;&lt;PD7)<br /><br />#define LED_DATA PORTD<br /><br />#define ANODY_PORT PORTB// port z podłączonymi anodami- 4 bity najmłodsze<br />#define ANODY_DIR DDRB<br /><br /><br /><br />uint8_t licznik = 1;<br /><br />uint8_t cyfry&#91;15&#93; PROGMEM = { (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 />int main(void) {<br />DDRB |= Katoda1 | Katoda2;<br /><br />DDRD |= 0xFF;<br /><br />TCCR2 |= (1 &lt;&lt; WGM21); // tryb CTC<br />TCCR2 |= (1 &lt;&lt; CS22) | (1 &lt;&lt; CS21) | (1 &lt;&lt; CS20); // preskaler = 1024<br />OCR2 = 38; // dodatkowy podział przez 39 (rej. przepełnienia)<br />TIMSK |= (1 &lt;&lt; OCIE2); // zezwolenie na przerwanie CompareMatch<br /><br />sei();<br /><br />while (1) {<br /><br /><br /><br /><br /><br /><br />}<br /><br />}<br />ISR(TIMER2_COMP_vect) {<br /><br />// zmienna do przełączania kolejno anod wyrwietlacza<br /><br />if (licznik == 1) {<br />Katoda2_OFF;<br />Katoda1_ON;<br />LED_DATA = pgm_read_byte( &amp;cyfry&#91;2&#93; ); // gdy zapalony wyśw.1 podaj stan zmiennej c1<br />} else if (licznik == 2) {<br /><br />Katoda1_OFF;<br />Katoda2_ON;<br /><br />LED_DATA = pgm_read_byte( &amp;cyfry&#91;0&#93; ); // gdy zapalony wyśw.2 podaj stan zmiennej c2<br /><br />}<br /><br />// gdy zapalony wyśw.4 podaj stan zmiennej c4<br /><br />// cykliczne przełączanie kolejnej anody w każdym przerwaniu<br /><br />// operacje cyklicznego przesuwania bitu zapalającego anody w zmiennej licznik<br />// jeśli licznik większy niż 8 to ustaw na 1<br />// przesunięcie zawartości bitów licznika o 1 w lewo<br /><br />licznik &lt;&lt;= 1;<br />if (licznik &gt; 2)<br />licznik = 1;<br /><br />}[/syntax]<br /><br /><span style="color: #FF0000">[ kod wstawiamy w znaczniku [ syntax=c ] - mirekk36 ]</span><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2281">dawidu00</a> — 11 sty 2014, o 18:17</p><hr />
]]></content>
</entry>
</feed>