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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-05-26T22:02:50+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=7198&amp;mode</id>
<entry>
<author><name><![CDATA[majster]]></name></author>
<updated>2014-05-26T22:02:50+01:00</updated>
<published>2014-05-26T22:02:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7198&amp;p=82490#p82490</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7198&amp;p=82490#p82490"/>
<title type="html"><![CDATA[Re: Wyświetlacz LED - problem z programem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7198&amp;p=82490#p82490"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br /><div class="quotetitle">majster napisał(a):</div><div class="quotecontent">a 5 musi byc jako by 5 pusta dla tablicy chyba ze sie myle to mnie poprawcie.<br /></div><br /><br />tu się coś koledze pomyliło ze stringami (C-stringami) ... bo to łańcuchy tekstowe zawsze zakończone są zerem, jakby coś</div><br /><br />A faktycznie <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> no sorry za wprowadzenie w błąd <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=1628">majster</a> — 26 maja 2014, o 22:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kicajek]]></name></author>
<updated>2014-05-26T21:36:19+01:00</updated>
<published>2014-05-26T21:36:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7198&amp;p=82484#p82484</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7198&amp;p=82484#p82484"/>
<title type="html"><![CDATA[Re: Wyświetlacz LED - problem z programem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7198&amp;p=82484#p82484"><![CDATA[
Witam<br />main.c<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br /><br />#include &quot;d_led.h&quot;<br /><br /><br /><br />int main(void)<br />{<br /><br /><br /><br /><br /> d_led_init(); //inicjalizacja wyswietlacza multipleksowego<br /><br /> cy1=0;<br /> cy2=1;<br /> cy3=2;<br /> cy4=3;<br /><br /> sei();<br /><br /> while (1)<br /> {<br /><br /> }<br />}[/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 /><br />volatile uint8_t cy1;<br />volatile uint8_t cy2;<br />volatile uint8_t cy3;<br />volatile uint8_t cy4;<br /><br />uint8_t cyfry&#91;&#93; =<br /> {<br /> ~(SEG_A|SEG_B|SEG_C|SEG_D),<br /> ~(SEG_E|SEG_F|SEG_A|SEG_B),<br /> ~(SEG_A|SEG_C|SEG_D),<br /> ~(SEG_A|SEG_B)<br /> };<br /><br /><br /><br /><br />void d_led_init(void)<br />{<br /> LED_DATA_DIR = 0xFF; //wszystkie piny portu jako wyjscia<br /> LED_DATA= 0xFF; //wygaszenie wszystkich katod - stan wysoki<br /><br /> //4 piny portu C jako wyjscia (anody)<br /> ANODY_DIR |= CC1 | CC2 | CC3 | CC4;<br /><br /> //wygaszenie wszystkich wyswietlaczy - anody<br /> ANODY_PORT |= CC1 | CC2 | CC3 | CC4;<br /><br /> //ustawienie TIMER<br /> TCCR0A |= (1&lt;&lt;WGM01); //tryb CTC<br /> TCCR0B |= (1&lt;&lt;CS00) | (1&lt;&lt;CS02); //preskaler 1024<br /> OCR0A = 39; //podział przez 39<br /> TIMSK0 |= (1&lt;&lt;OCIE0A); //zezwolenie na przerwanie Compare Match<br /><br />}<br /><br />/////////===============PROCEDURA OBSŁUGI PRZERWANIA COMPARE MATCH<br />ISR(TIMER0_COMPA_vect)<br />{<br /> //zmienna do przelaczania kolejno anod wyswietlacza<br /> static uint8_t licznik=1;<br /> //cykliczne przelaczanie w kazdym przerwaniu anod kazdego wyswietlacza(negacja aby krazylo zero)<br /> ANODY_PORT= ~licznik;<br /><br /> //gdy zapalony wysw. 1 podaj stan zmiennej c1<br /> if(licznik==1) LED_DATA = cyfry&#91;cy1&#93;;<br /><br /> if(licznik==2) LED_DATA = cyfry&#91;cy2&#93;;<br /> if(licznik==4) LED_DATA = cyfry&#91;cy3&#93;;<br /> if(licznik==8) LED_DATA = cyfry&#91;cy4&#93;;<br /><br /> licznik &lt;&lt;=1; //przesuniecie zawartosci bitow licznika o 1 w lewo<br /> if(licznik&gt;8) licznik=1 ;<br />}[/syntax]<br /><br />d_led.h<br />[syntax=c]#ifndef D_LED_H_<br />#define D_LED_H_<br /><br />//definicje portów i pinów wyswietlacza uzywanych dla ulatwienia w programie<br /><br />#define LED_DATA PORTD //port z podlaczonymi segmentami<br />#define LED_DATA_DIR DDRD<br />//port z podlaczonymi anodami<br />#define ANODY_PORT PORTC<br />#define ANODY_DIR DDRC<br /><br />#define CC1 (1&lt;&lt;PC0)<br />#define CC2 (1&lt;&lt;PC1)<br />#define CC3 (1&lt;&lt;PC2)<br />#define CC4 (1&lt;&lt;PC3)<br /><br />//definicje segmentów<br /><br />#define SEG_A (1&lt;&lt;7)<br />#define SEG_B (1&lt;&lt;5)<br />#define SEG_C (1&lt;&lt;3)<br />#define SEG_D (1&lt;&lt;1)<br />#define SEG_E (1&lt;&lt;0)<br />#define SEG_F (1&lt;&lt;6)<br />#define SEG_G (1&lt;&lt;4)<br />#define SEG_DP (1&lt;&lt;2)<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 />#endif /* D_LED_H_ */[/syntax]<br /><br />....nie chciało mi się wypisywać co jest źle - porównaj sam.<br /><br />Pozdr.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=826">kicajek</a> — 26 maja 2014, o 21:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-05-26T18:50:05+01:00</updated>
<published>2014-05-26T18:50:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7198&amp;p=82451#p82451</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7198&amp;p=82451#p82451"/>
<title type="html"><![CDATA[Re: Wyświetlacz LED - problem z programem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7198&amp;p=82451#p82451"><![CDATA[
<div class="quotetitle">majster napisał(a):</div><div class="quotecontent"><br />a 5 musi byc jako by 5 pusta dla tablicy chyba ze sie myle to mnie poprawcie.<br /></div><br /><br />tu się coś koledze pomyliło ze stringami (C-stringami) ... bo to łańcuchy tekstowe zawsze zakończone są zerem, jakby coś<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 26 maja 2014, o 18:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[majster]]></name></author>
<updated>2014-05-26T18:18:23+01:00</updated>
<published>2014-05-26T18:18:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7198&amp;p=82444#p82444</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7198&amp;p=82444#p82444"/>
<title type="html"><![CDATA[Re: Odp: Wyświetlacz LED - problem z programem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7198&amp;p=82444#p82444"><![CDATA[
uint8_t cyfry[4] zamien na uint8_t cyfry[5] bo definiujesz w tablicy 4 cyfry a 5 musi byc jako by 5 pusta dla tablicy chyba ze sie myle to mnie poprawcie. <br /><br />Taktowanie w projekcie masz 8MHz ?<br /><br />Czy ten timer jest dla twojego procka ? Patrzyles w note katalogowa ?<br /><br />Wysłane z telefonu<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1628">majster</a> — 26 maja 2014, o 18:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[gumeni]]></name></author>
<updated>2014-05-26T18:06:28+01:00</updated>
<published>2014-05-26T18:06:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7198&amp;p=82441#p82441</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7198&amp;p=82441#p82441"/>
<title type="html"><![CDATA[Re: Wyświetlacz LED - problem z programem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7198&amp;p=82441#p82441"><![CDATA[
W main.c masz: d_let_init();//inicjalizacja wyswietlacza multipleksowego<br />A powinno być d_led_init();//inicjalizacja wyswietlacza multipleksowego <br />Pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3088">gumeni</a> — 26 maja 2014, o 18:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[karol901]]></name></author>
<updated>2014-05-26T16:03:37+01:00</updated>
<published>2014-05-26T16:03:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7198&amp;p=82428#p82428</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7198&amp;p=82428#p82428"/>
<title type="html"><![CDATA[Re: Wyświetlacz LED - problem z programem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7198&amp;p=82428#p82428"><![CDATA[
W pliku led.h nie masz srednika po void d_led_init(void)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1374">karol901</a> — 26 maja 2014, o 16:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[osa1313]]></name></author>
<updated>2014-05-26T15:47:46+01:00</updated>
<published>2014-05-26T15:47:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7198&amp;p=82427#p82427</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7198&amp;p=82427#p82427"/>
<title type="html"><![CDATA[Re: Wyświetlacz LED - problem z programem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7198&amp;p=82427#p82427"><![CDATA[
Kod umieść w znacznikach syntax.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=211">osa1313</a> — 26 maja 2014, o 15:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Rashal]]></name></author>
<updated>2014-05-26T15:37:17+01:00</updated>
<published>2014-05-26T15:37:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7198&amp;p=82426#p82426</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7198&amp;p=82426#p82426"/>
<title type="html"><![CDATA[Wyświetlacz LED - problem z programem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7198&amp;p=82426#p82426"><![CDATA[
Witam<br /><br />Jestem dopiero początkujący w tej dziedzinie techniki, i przez to niestety, ale ciągle pojawiają się jakieś <br /><br />problemy. Niektóre udało mi się rozwiązać samemu, jednak teraz nie mam pojęcia co mógłbym mieć źle(a błąd jest z <br /><br />pewnością banalny). Robię ćwiczenie z książki pana Mirosława o multipleksowaniu wyświetlacza LED. Wydaje mi się że <br /><br />wszystko przepisałem dokładnie jak jest w książce (dostosowując to tylko do mojego mikroprocesora Atmega88pa, <br /><br />ustawiając tryb CTC na timerze 0A). Tutaj kody programów:<br /><br />Main.c<br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br /><br />#include &quot;d_led.h&quot;<br /><br /><br /><br />int main(void)<br />{<br /><br />uint8_t cyfry[4] =<br />{<br />~(SEG_A|SEG_B|SEG_C|SEG_D),<br />~(SEG_E|SEG_F|SEG_A|SEG_B|),<br />~(SEG_A|SEG_C|SEG_D|),<br />~(SEG_Ą|SEG_B|),<br />};<br /><br /><br />d_let_init();//inicjalizacja wyswietlacza multipleksowego<br /><br />cy1=0;<br />cy2=1;<br />cy3=2;<br />cy4=3;<br /><br />sei();<br /><br />while (1)<br />{<br /><br />}<br />}<br /></div><br /><br />d_led.c<br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br /><br />#include &quot;d_led.h&quot;<br /><br />volatile uint8_t cy1;<br />volatile uint8_t cy2;<br />volatile uint8_t cy3;<br />volatile uint8_t cy4;<br /><br /><br /><strong>void d_led_init(void)</strong><br />{<br />LED_DATA_DIR = 0xFF; //wszystkie piny portu jako wyjscia<br />LED_DATA= 0xFF;//wygaszenie wszystkich katod - stan wysoki<br /><br />//4 piny portu C jako wyjscia (anody)<br />ANODY_DIR |= CC1 | CC2 | CC3 | CC4;<br /><br />//wygaszenie wszystkich wyswietlaczy - anody<br />ANODY |= CC1 | CC2 | CC3 | CC4;<br /><br />//ustawienie TIMER<br />TCCR0A |= (1&lt;&lt;WGM01);//tryb CTC<br />TCCR0B |= (1&lt;&lt;CS00) | (1&lt;&lt;CS02);//preskaler 1024<br />OCR0A = 39;//podział przez 39<br />TIMSK0 |= (1&lt;&lt;OCIE0A);//zezwolenie na przerwanie Compare Match<br /><br />}<br /><br />/////////===============PROCEDURA OBSŁUGI PRZERWANIA COMPARE MATCH<br />ISR(TIMER0_COMPA_vect)<br />{<br />//zmienna do przelaczania kolejno anod wyswietlacza<br />static uint8_t licznik=1;<br />//cykliczne przelaczanie w kazdym przerwaniu anod kazdego wyswietlacza(negacja aby krazylo zero)<br />ANODY_PORT= ~licznik;<br /><br />//gdy zapalony wysw. 1 podaj stan zmiennej c1<br />if(licznik==1) LED DATA = cyfry[cy1];<br /><br />if(licznik==2) LED DATA = cyfry[cy2];<br />if(licznik==4) LED DATA = cyfry[cy3];<br />if(licznik==8) LED DATA = cyfry[cy4];<br /><br />licznik &lt;&lt;=1; //przesuniecie zawartosci bitow licznika o 1 w lewo<br />if(licznik&gt;8) licznik=1 ;<br />}<br /></div><br /><br />d_led.h<br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />#ifndef D_LED_H_<br />#define D_LED_H_<br /><br />//definicje portów i pinów wyswietlacza uzywanych dla ulatwienia w programie<br /><br />#define LED_DATA PORTD //port z podlaczonymi segmentami<br /><br />//port z podlaczonymi anodami<br />#define ANODY_PORT PORTC<br /><br />#define CC1 (1&lt;&lt;PC0)<br />#define CC2 (1&lt;&lt;PC1)<br />#define CC3 (1&lt;&lt;PC2)<br />#define CC4 (1&lt;&lt;PC3)<br /><br />//definicje segmentów<br /><br />#define SEG_A (1&lt;&lt;7)<br />#define SEG_B (1&lt;&lt;5)<br />#define SEG_C (1&lt;&lt;3)<br />#define SEG_D (1&lt;&lt;1)<br />#define SEG_E (1&lt;&lt;0)<br />#define SEG_F (1&lt;&lt;6)<br />#define SEG_G (1&lt;&lt;4)<br />#define SEG_DP (1&lt;&lt;2)<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 />#endif /* D_LED_H_ */<br /></div><br /><br />i błędy<br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />**** Build of configuration Release for project wys_led ****<br /><br />make all <br />Building file: ../d_led.c<br />Invoking: AVR Compiler<br />avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega88p -<br /><br />DF_CPU=8000000UL -MMD -MP -MF&quot;d_led.d&quot; -MT&quot;d_led.d&quot; -c -o &quot;d_led.o&quot; &quot;../d_led.c&quot;<br />../d_led.c: In function 'd_led_init':<br />../d_led.c:20: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token<br />../d_led.c:39: warning: 'signal' attribute only applies to functions<br />../d_led.c:39: warning: 'used' attribute ignored<br />../d_led.c:39: warning: 'externally_visible' attribute ignored<br />../d_led.c:40: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token<br />../d_led.c:57: error: old-style parameter declarations in prototyped function definition<br />../d_led.c:55: error: expected '{' at end of input<br />make: *** [d_led.o] Error 1<br /><br />**** Build Finished ****<br /></div><br /><br />linia 20sta to ta PO pogrubionej czesci<br /><br />Nie mam pojęcia gdzie brakuje jakiegoś znaku, ponieważ wydaje się że jest okej.<br /><br />I drugie pytanie, w książce nie ma nic napisane o zmiennej ANODA w d_led.h. Domyślam się że to błąd w druku i w <br /><br />kodzie powinno byc coś takiego?<br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />//4 piny portu C jako wyjscia (anody)<br />ANODY_PORT_DIR |= CC1 | CC2 | CC3 | CC4;<br /><br />//wygaszenie wszystkich wyswietlaczy - anody<br />ANODY_PORT |= CC1 | CC2 | CC3 | CC4;<br /></div><br /><br />Pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3818">Rashal</a> — 26 maja 2014, o 15:37</p><hr />
]]></content>
</entry>
</feed>