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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-01-26T22:23:51+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=58&amp;t=14308&amp;mode</id>
<entry>
<author><name><![CDATA[dominiv2604]]></name></author>
<updated>2016-01-26T22:23:51+01:00</updated>
<published>2016-01-26T22:23:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14308&amp;p=151848#p151848</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14308&amp;p=151848#p151848"/>
<title type="html"><![CDATA[Re: Problem z plikiem d_led.c]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14308&amp;p=151848#p151848"><![CDATA[
Dziękuję, robiłem ten przykład z BB, i przepisywałem każdą linijkę więc pewnie wkradł się mały błąd niezauważenie.<br />Teraz wszystko działa jak należy.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 2 minutach ]</span></strong><br /><br />Hmmm, a gdy wpisałem do while to co mi kazałeś po rozświetlały się losowe segmenty<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 22 minutach ]</span></strong><br /><br />Dobra dziękuję serdecznie wszystkim za okazaną pomoc. Już zrozumiałem na czym to polega! <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=12391">dominiv2604</a> — 26 sty 2016, o 22:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jacekk232]]></name></author>
<updated>2016-01-26T22:14:29+01:00</updated>
<published>2016-01-26T22:14:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14308&amp;p=151846#p151846</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14308&amp;p=151846#p151846"/>
<title type="html"><![CDATA[Re: Problem z plikiem d_led.c]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14308&amp;p=151846#p151846"><![CDATA[
A dlaczego na początek nie zrobisz tak jak jest w BB? Masz kilka błędów w przerwaniu. Pomijam już ten dziwny sposób z tablicą cyfry[], który ty stosujesz.<br /><br />W tej linii masz błąd<br />[syntax=c]ANODY_PORT = (ANODY_PORT &amp; 0xF0) | (~licznik &amp; 0xF0);[/syntax]<br />Skoro katody masz na czterech najmłodszych bitach to ta linia powinna wyglądać tak<br />[syntax=c]ANODY_PORT = (ANODY_PORT &amp; 0xF0) | (~licznik &amp; 0x0F);[/syntax]<br />W zmiennej licznik powinieneś wyzerować cztery najstarsze bity.<br /><br />W zmiennej licznik przesuwasz jedynkę w lewo. Zmienna ta będzie przyjmować wartości 1, 2, 4, 8<br />0b00000001<br />0b00000010<br />0b00000100<br />0b00001000<br /><br />Spróbuj zrobić tak<br />[syntax=c]ISR(TIMER0_COMPA_vect){<br /> <br />        //zmienna do przełączania kolejno anod wyświetlacza<br />        static uint8_t licznik = 1;<br />       ANODY_PORT = (ANODY_PORT | 0x0F);// wygaszenie wszystkich wyświetlaczy<br /> <br />        //gdy zapalony wyśw. 1, podaj stan zmiennej c1<br />        if(licznik == 1) LED_DATA = cyfry&#91;cy1&#93;;<br />        else if(licznik == 2) LED_DATA = cyfry&#91;cy2&#93;;<br />        else if(licznik == 4) LED_DATA = cyfry&#91;cy3&#93;;<br />        else if(licznik == 8) LED_DATA = cyfry&#91;cy4&#93;;<br /><br />          ANODY_PORT = (ANODY_PORT &amp; 0xF0) | (~licznik &amp; 0x0F);<br /><br />        licznik &lt;&lt;= 1;<br />        if(licznik&gt;8) licznik = 1;<br />}[/syntax]<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 4 minutach ]</span></strong><br /><br />A w while napisz tak<br />[syntax=c]cy1=1;<br />cy2=2;<br />cy3=3;<br />cy4=4;[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=204">jacekk232</a> — 26 sty 2016, o 22:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[dominiv2604]]></name></author>
<updated>2016-01-26T22:08:44+01:00</updated>
<published>2016-01-26T22:08:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14308&amp;p=151845#p151845</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14308&amp;p=151845#p151845"/>
<title type="html"><![CDATA[Re: Problem z plikiem d_led.c]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14308&amp;p=151845#p151845"><![CDATA[
Dodałem do main.c, to co Pan podał, lecz ciągle jest to samo. Świecą się wszystkie segmenty na wszystkich wyświetlaczach.<br />Oto moje kompletne pliki:<br /><br />main.c<br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 2010-03-30<br /> *       Autor: Mirosław Kardaś<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 /><br />#include &quot;d_led.h&quot;// dołączenie naszego pliku nagłówkowego (obsługa LED)<br /><br />int main(void)<br />{<br /><br /><br />// ****** inicjalizacja *********<br />d_led_init();   // inicjalizacja wyświetlacza multipleksowanego<br /><br />// testowa inicjalizacja zmiennych oraz liczb mających się wyświetlać na wyrw. LED<br /><br />    sei();<br /><br />    // tutaj sobie coś wpisujesz do zmiennych aby pojawiło się na wyświetlaczu<br />    cy1 = 1;<br />    cy2 = 2;<br />    cy3 = 4;<br />    cy4 = 7;<br /><br />    while(1) {<br />      //... pusta pętla głóna<br />    }<br /><br />}[/syntax]<br /><br />d_led.c<br />[syntax=c]/*<br /> * d_led.c<br /> *<br /> *  Created on: 25 sty 2016<br /> *      Author: Kupay<br /> */<br /><br /><br />#include &lt;avr/io.h&gt;  //dołączenie głównego systemowego pliku nagłówkowego<br />#include &lt;avr/interrupt.h&gt;//dołącznie pliku nagłówkowego do obsługi przerwań<br />#include &lt;avr/pgmspace.h&gt;<br />#include &quot;d_led.h&quot; // dołącznie pliku nagłówkowego(w nim są m.in. definicje preprocesora)<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 inicjalizująca prace z wyświetlaczem multipleksowanym ****<br /><br />void d_led_init(void){<br /><br />LED_DATA_DIR = 0xFF;<br />LED_DATA = 0xFF;<br />ANODY_DIR |= CA1 | CA2 | CA3 | CA4;<br />ANODY_PORT |= CA1 | CA2 | CA3 | CA4;<br /><br />// **** Ustawienie TIMER0 ****<br /><br />TCCR0A |= (1&lt;&lt;WGM01);// tryb CTC<br />TCCR0B |= (1&lt;&lt;CS02)|(1&lt;&lt;CS00);// preskaler = 1024<br />OCR0B = 38;// dodatkowy podział przez 39 (rej. przepełnienia)<br />TIMSK0 |= (1&lt;&lt;OCIE0A);<br />}<br /><br />// **** Definicja tablicy przechowującej cyfry dla wysw LED<br />const uint8_t cyfry&#91;15&#93; = {<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 />};<br /><br /><br /><br /><br />//======================= PROCEDURA OBSŁUGI PRZERWANIA - COMPARE MATCH =================================<br /><br />ISR(TIMER0_COMPA_vect){<br /><br />//zmienna do przełączania kolejno anod wyświetlacza<br />static uint8_t licznik = 1;<br />ANODY_PORT = (ANODY_PORT &amp; 0xF0) | (~licznik &amp; 0xF0);<br /><br />//gdy zapalony wyśw. 1, podaj stan zmiennej c1<br />if(licznik == 1) LED_DATA = cy1;<br />else if(licznik == 2) LED_DATA = cy2;<br />else if(licznik == 3) LED_DATA = cy3;<br />else if(licznik == 4) LED_DATA = cy4;<br /><br />licznik &lt;&lt;= 1;<br />if(licznik&gt;8) licznik = 1;<br />}[/syntax]<br /><br />d_led.h<br />[syntax=c]/*<br /> * d_led.h<br /> *<br /> *  Created on: 25 sty 2016<br /> *      Author: x<br /> */<br /><br />#ifndef D_LED_H_<br />#define D_LED_H_<br /><br />#define LED_DATA PORTC<br />#define LED_DATA_DIR DDRC<br />#define ANODY_PORT PORTA<br />#define ANODY_DIR DDRA<br /><br />#define CA1 (1&lt;&lt;PA0)<br />#define CA2 (1&lt;&lt;PA1)<br />#define CA3 (1&lt;&lt;PA2)<br />#define CA4 (1&lt;&lt;PA3)<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 />extern volatile uint8_t cy4;<br /><br />const uint8_t cyfry&#91;15&#93;;<br /><br />void d_led_init(void);<br /><br /><br /><br />#endif /* D_LED_H_ */[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12391">dominiv2604</a> — 26 sty 2016, o 22:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2016-01-26T21:57:04+01:00</updated>
<published>2016-01-26T21:57:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14308&amp;p=151843#p151843</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14308&amp;p=151843#p151843"/>
<title type="html"><![CDATA[Re: Problem z plikiem d_led.c]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14308&amp;p=151843#p151843"><![CDATA[
panie panie ale co ty wpisujesz ? ... ja myślę, że musisz jednak wrócić troszkę wcześniej do książki i poczytać co to jest DEFINICJA a co to jest DEKLARACJA - bo jak wiesz w książce przypominam o tym wielokrotnie, że jak ktoś nie zrozumie tego i czym się to różni to będzie wciąż błądził i babole robił<br /><br />po coś ty się upadł na tą tablicę dziwną do której nawet żadnych wartości nie wpisujesz, nawet na razie widzę zapomniałeś że zmienne globalne są inicjowane zerem stąd w każdym elemencie tablicy jest zero no chyba że gdzieś indziej zdefiniowałeś - o ile w ogóle zdefiniowałeś bo ty zamiast pokazywać swój kompletny kod z pliku main.c to pokazujesz tylko jakieś fragmenty z main.c które nic nie mówią co ty tam wyprawiasz<br /><br />poza tym wiesz do czego jest pętla główna ? też czuję że nie bo miliard razy na sekundę wpisujesz coś w tej pętli - to wprawdzie nie ma znaczenia i nie ma wpływu na to czy ci działa czy nie no ale warto wiedzieć co się robi<br /><br />zrób że sobie tak jak to opisuję w książce czyli np<br /><br /><br />[syntax=c]sei();<br /><br />// tutaj sobie coś wpisujesz do zmiennych aby pojawiło się na wyświetlaczu<br />cy1 = 1;<br />cy2 = 2;<br />cy3 = 4;<br />cy4 = 7;<br /><br />while(1) {<br />  //... pusta pętla głóna<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 26 sty 2016, o 21:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[dominiv2604]]></name></author>
<updated>2016-01-26T21:48:58+01:00</updated>
<published>2016-01-26T21:48:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14308&amp;p=151839#p151839</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14308&amp;p=151839#p151839"/>
<title type="html"><![CDATA[Re: Problem z plikiem d_led.c]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14308&amp;p=151839#p151839"><![CDATA[
Rozumiem, że chodziło o deklaracje w pliku d_led.h. Wykonałem deklaracje, faktycznie wcześniej Eclipse przypominał mi o błędzie. Teraz błędu nie ma, ale wyświetlacz działa tak samo jak przedtem.<br /><br />Gdy w main.c mam:<br />[syntax=c]while(1)<br />{<br /><br />cy1 = cyfry&#91;6&#93;;<br />cy2 = cyfry&#91;6&#93;;<br />cy3 = cyfry&#91;3&#93;;<br />cy4 = cyfry&#91;3&#93;;<br /><br /><br />}[/syntax]<br />To na wszystkich wyświetlaczach są &quot;8&quot;<br /><br /><br /><br />Gdy w main.c jest <br />[syntax=c]while(1)<br />{<br /><br />cy1 = cyfry&#91;6&#93;;<br />cy2 = cyfry&#91;6&#93;;<br />cy3 = cyfry&#91;6&#93;;<br />cy4 = cyfry&#91;6&#93;;<br /><br /><br />}[/syntax]<br /><br />Wyświetlacz reaguje prawidłowo i wyświetla na wszystkich pozycjach &quot;6&quot;<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12391">dominiv2604</a> — 26 sty 2016, o 21:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Bartek123]]></name></author>
<updated>2016-01-26T20:32:14+01:00</updated>
<published>2016-01-26T20:32:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14308&amp;p=151825#p151825</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14308&amp;p=151825#p151825"/>
<title type="html"><![CDATA[Re: Problem z plikiem d_led.c]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14308&amp;p=151825#p151825"><![CDATA[
jak chcesz tak robić to musisz definicje tablicy cyfry[] dać w pliku .h (eclipse nie wywala ci błędów?)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10617">Bartek123</a> — 26 sty 2016, o 20:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[dominiv2604]]></name></author>
<updated>2016-01-26T20:15:26+01:00</updated>
<published>2016-01-26T20:15:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14308&amp;p=151824#p151824</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14308&amp;p=151824#p151824"/>
<title type="html"><![CDATA[Re: Problem z plikiem d_led.c]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14308&amp;p=151824#p151824"><![CDATA[
Problem ma się następująco. Kiedy próbuje na wszystkich wyświetlaczach wyświetlić jednakową cyfrę wówczas udaje się to, kiedy inne. To wyświetlają się na wszystkich jednakowe cyfry tylko inne niż miałem zamiar wyświetlić.<br /><br /><br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 2010-03-30<br /> *       Autor: Mirosław Kardaś<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 /><br />#include &quot;d_led.h&quot;// dołączenie naszego pliku nagłówkowego (obsługa LED)<br /><br />int main(void)<br />{<br /><br /><br />// ****** inicjalizacja *********<br />d_led_init();   // inicjalizacja wyświetlacza multipleksowanego<br /><br />// testowa inicjalizacja zmiennych oraz liczb mających się wyświetlać na wyrw. LED<br /><br />sei();// włączenie globalnego zezwolenia na przerwania<br /><br /><br /><br />//DDRA |= (1&lt;&lt;PA5);<br />//while(1)<br />//{<br />//PORTA ^= (1&lt;&lt;PA5);<br />//_delay_ms(1000);<br />//}<br /><br /><br />//**********************  pętla główna<br />while(1)<br />{<br /><br />cy1 = cyfry&#91;5&#93;;<br />cy2 = cyfry&#91;3&#93;;<br />cy3 = cyfry&#91;5&#93;;<br />cy4 = cyfry&#91;5&#93;;<br /><br /><br />}<br />}[/syntax]<br /><br />[syntax=c]/*<br /> * d_led.c<br /> *<br /> *  Created on: 25 sty 2016<br /> *      Author: Kupay<br /> */<br /><br /><br />#include &lt;avr/io.h&gt;  //dołączenie głównego systemowego pliku nagłówkowego<br />#include &lt;avr/interrupt.h&gt;//dołącznie pliku nagłówkowego do obsługi przerwań<br />#include &lt;avr/pgmspace.h&gt;<br />#include &quot;d_led.h&quot; // dołącznie pliku nagłówkowego(w nim są m.in. definicje preprocesora)<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 inicjalizująca prace z wyświetlaczem multipleksowanym ****<br /><br />void d_led_init(void){<br /><br />LED_DATA_DIR = 0xFF;<br />LED_DATA = 0xFF;<br />ANODY_DIR |= CA1 | CA2 | CA3 | CA4;<br />ANODY_PORT |= CA1 | CA2 | CA3 | CA4;<br /><br />// **** Ustawienie TIMER0 ****<br /><br />TCCR0A |= (1&lt;&lt;WGM01);// tryb CTC<br />TCCR0B |= (1&lt;&lt;CS02)|(1&lt;&lt;CS00);// preskaler = 1024<br />OCR0B = 38;// dodatkowy podział przez 39 (rej. przepełnienia)<br />TIMSK0 |= (1&lt;&lt;OCIE0A);<br />}<br /><br />// **** Definicja tablicy przechowującej cyfry dla wysw LED<br />const uint8_t cyfry&#91;15&#93; = {<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 />};<br /><br /><br /><br />//======================= PROCEDURA OBSŁUGI PRZERWANIA - COMPARE MATCH =================================<br /><br />ISR(TIMER0_COMPA_vect){<br /><br />//zmienna do przełączania kolejno anod wyświetlacza<br />static uint8_t licznik = 1;<br />ANODY_PORT = (ANODY_PORT &amp; 0xF0) | (~licznik &amp; 0xF0);<br /><br />//gdy zapalony wyśw. 1, podaj stan zmiennej c1<br />if(licznik == 1) LED_DATA = cy1;<br />else if(licznik == 2) LED_DATA = cy2;<br />else if(licznik == 3) LED_DATA = cy3;<br />else if(licznik == 4) LED_DATA = cy4;<br /><br />licznik &lt;&lt;= 1;<br />if(licznik&gt;8) licznik = 1;<br />}[/syntax]<br /><br />[syntax=c]/*<br /> * d_led.h<br /> *<br /> *  Created on: 25 sty 2016<br /> *      Author: x<br /> */<br /><br />#ifndef D_LED_H_<br />#define D_LED_H_<br /><br />#define LED_DATA PORTC<br />#define LED_DATA_DIR DDRC<br />#define ANODY_PORT PORTA<br />#define ANODY_DIR DDRA<br /><br />#define CA1 (1&lt;&lt;PA0)<br />#define CA2 (1&lt;&lt;PA1)<br />#define CA3 (1&lt;&lt;PA2)<br />#define CA4 (1&lt;&lt;PA3)<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 />extern volatile uint8_t cy4;<br /><br />void d_led_init(void);<br /><br /><br /><br />#endif /* D_LED_H_ */[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12391">dominiv2604</a> — 26 sty 2016, o 20:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Bartek123]]></name></author>
<updated>2016-01-26T19:12:25+01:00</updated>
<published>2016-01-26T19:12:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14308&amp;p=151819#p151819</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14308&amp;p=151819#p151819"/>
<title type="html"><![CDATA[Re: Problem z plikiem d_led.c]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14308&amp;p=151819#p151819"><![CDATA[
Jak chcesz na wyświetlaczu nr1 to do zmiennej cy1 jak na wyświetlaczu nr2 to cy2 i tak dalej. Spróbuj przenieść definicje zmiennych znajdujących się w main przed pętlę while.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10617">Bartek123</a> — 26 sty 2016, o 19:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[dominiv2604]]></name></author>
<updated>2016-01-26T17:29:06+01:00</updated>
<published>2016-01-26T17:29:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14308&amp;p=151796#p151796</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14308&amp;p=151796#p151796"/>
<title type="html"><![CDATA[Re: Problem z plikiem d_led.c]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14308&amp;p=151796#p151796"><![CDATA[
Mam jeszcze pytanie, jak wyświetlić np &quot;1&quot; na pierwszym wyświetlaczu? Co trzeba wpisać w pętli głównej while?<br /><br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 2010-03-30<br /> *       Autor: Mirosław Kardaś<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 /><br /><br />#include &quot;d_led.h&quot;// dołączenie naszego pliku nagłówkowego (obsługa LED)<br /><br />int main(void)<br />{<br />// ****** inicjalizacja *********<br />d_led_init();   // inicjalizacja wyświetlacza multipleksowanego<br /><br />// testowa inicjalizacja zmiennych oraz liczb mających się wyświetlać na wyrw. LED<br /><br />sei();// włączenie globalnego zezwolenia na przerwania<br /><br /><br /><br />//DDRA |= (1&lt;&lt;PA5);<br />//while(1)<br />//{<br />//PORTA ^= (1&lt;&lt;PA5);<br />//_delay_ms(1000);<br />//}<br /><br /><br /><br />//**********************  pętla główna<br />while(1)<br />{<br /><br />cy1 = 0;<br />cy2 = 4;<br />cy3 = 5;<br />cy4 = 3;<br /><br /><br />}<br />}[/syntax]<br /><br />[syntax=c]/*<br /> * d_led.c<br /> *<br /> *  Created on: 25 sty 2016<br /> *      Author: Kupay<br /> */<br /><br /><br />#include &lt;avr/io.h&gt;  //dołączenie głównego systemowego pliku nagłówkowego<br />#include &lt;avr/interrupt.h&gt;//dołącznie pliku nagłówkowego do obsługi przerwań<br />#include &lt;avr/pgmspace.h&gt;<br />#include &quot;d_led.h&quot; // dołącznie pliku nagłówkowego(w nim są m.in. definicje preprocesora)<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 inicjalizująca prace z wyświetlaczem multipleksowanym ****<br /><br />void d_led_init(void){<br /><br />LED_DATA_DIR = 0xFF;<br />LED_DATA = 0xFF;<br />ANODY_DIR |= CA1 | CA2 | CA3 | CA4;<br />ANODY_PORT |= CA1 | CA2 | CA3 | CA4;<br /><br />// **** Ustawienie TIMER0 ****<br /><br />TCCR0A |= (1&lt;&lt;WGM01);// tryb CTC<br />TCCR0B |= (1&lt;&lt;CS02)|(1&lt;&lt;CS00);// preskaler = 1024<br />OCR0B = 38;// dodatkowy podział przez 39 (rej. przepełnienia)<br />TIMSK0 |= (1&lt;&lt;OCIE0A);<br />}<br /><br />// **** Definicja tablicy przechowującej cyfry dla wysw LED<br />const uint8_t cyfry&#91;15&#93; = {<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 />};<br /><br />//======================= PROCEDURA OBSŁUGI PRZERWANIA - COMPARE MATCH =================================<br /><br />ISR(TIMER0_COMPA_vect){<br /><br />//zmienna do przełączania kolejno anod wyświetlacza<br />static uint8_t licznik = 1;<br />ANODY_PORT = (ANODY_PORT &amp; 0xF0) | (~licznik &amp; 0xF0);<br /><br />//gdy zapalony wyśw. 1, podaj stan zmiennej c1<br />if(licznik == 1) LED_DATA = cy1;<br />else if(licznik == 2) LED_DATA = cy2;<br />else if(licznik == 3) LED_DATA = cy3;<br />else if(licznik == 4) LED_DATA = cy4;<br /><br />licznik &lt;&lt;= 1;<br />if(licznik&gt;8) licznik = 1;<br />}[/syntax]<br /><br />Gdy uruchomiłem program Pana Mirka, migały mi przypadkowe segmenty na wszystkich wyświetlaczach.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12391">dominiv2604</a> — 26 sty 2016, o 17:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[dominiv2604]]></name></author>
<updated>2016-01-26T16:00:04+01:00</updated>
<published>2016-01-26T16:00:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14308&amp;p=151788#p151788</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14308&amp;p=151788#p151788"/>
<title type="html"><![CDATA[Re: Problem z plikiem d_led.c]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14308&amp;p=151788#p151788"><![CDATA[
Dziękuję serdecznie Panie Mirku. Pana porada + 3 godziny rozmyśleń, prób i błędów pomogły! <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=12391">dominiv2604</a> — 26 sty 2016, o 16:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wchpikus]]></name></author>
<updated>2016-01-26T08:44:27+01:00</updated>
<published>2016-01-26T08:44:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14308&amp;p=151756#p151756</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14308&amp;p=151756#p151756"/>
<title type="html"><![CDATA[Re: Problem z plikiem d_led.c]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14308&amp;p=151756#p151756"><![CDATA[
To wszystko jasne;)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3859">wchpikus</a> — 26 sty 2016, o 08:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2016-01-26T08:28:58+01:00</updated>
<published>2016-01-26T08:28:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14308&amp;p=151755#p151755</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14308&amp;p=151755#p151755"/>
<title type="html"><![CDATA[Re: Problem z plikiem d_led.c]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14308&amp;p=151755#p151755"><![CDATA[
<div class="quotetitle">dominiv2604 napisał(a):</div><div class="quotecontent"><br />ATmega644P<br /></div><br />A kod w książce z DVD na jaki procek był przygotowywany ? sprawdziłeś ?<br /><br />Już pomijam, że co chwilę w książce piszę, że pracuję na ATmega32 .... <br /><br />A więc to oczywiste, i o tym też piszę w książce, że trzeba sobie kod dostosować do innego procka jeśli innego używasz. Wspominam w książce niejednokrotnie że należy mieć przed sobą dwie noty PDF jedną od ATmega32 (bo na tą są głównie przykłady w Bluebooku) i drugi PDF do swojego procka. Porównać nazwy rejestrów i bitów w rejestrach a także np nazwy wektorów przerwań.<br /><br />Takie przenoszenie kodu to bardzo przydatne ćwiczenia i nie ma co się ich bać. Ale jeśli komuś zależy na tym aby najpierw zobaczyć, że kod z książki działa i jak działa .... aby później spokojnie go przenosić - i porównywać - no to wypada chyba też najpierw sprawdzić go tak jak został napisany i dla procka który był celem prawda?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 26 sty 2016, o 08:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[dominiv2604]]></name></author>
<updated>2016-01-26T08:24:16+01:00</updated>
<published>2016-01-26T08:24:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14308&amp;p=151754#p151754</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14308&amp;p=151754#p151754"/>
<title type="html"><![CDATA[Re: Problem z plikiem d_led.c]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14308&amp;p=151754#p151754"><![CDATA[
ATmega644P<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12391">dominiv2604</a> — 26 sty 2016, o 08:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wchpikus]]></name></author>
<updated>2016-01-26T08:20:28+01:00</updated>
<published>2016-01-26T08:20:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14308&amp;p=151753#p151753</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14308&amp;p=151753#p151753"/>
<title type="html"><![CDATA[Re: Problem z plikiem d_led.c]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14308&amp;p=151753#p151753"><![CDATA[
Jaki uc?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3859">wchpikus</a> — 26 sty 2016, o 08:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[dominiv2604]]></name></author>
<updated>2016-01-26T07:50:39+01:00</updated>
<published>2016-01-26T07:50:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14308&amp;p=151752#p151752</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14308&amp;p=151752#p151752"/>
<title type="html"><![CDATA[Problem z plikiem d_led.c]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14308&amp;p=151752#p151752"><![CDATA[
Witam kolegów,<br /><br />jestem na rozdziale o wyświetlaczach LED w BB, gdy utworzyłem biblioteki d_lec.c i d_led.h, w tej pierwszej Eclipse podświetla mi błąd dotyczący Ustawień Timera0 jak i procedury obsługi przerwania. Dodam, że zawsze kiedy chciałem dodać obsługę przerwania lub ustawić Timery, podświetlały mi się właśnie te linijki i wyskakiwały błędy.<br /><br /><a href="https://obrazkiforum.atnel.pl/12391/9b530150923a1a727268d6a68b71ec52.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/12391/9b530150923a1a727268d6a68b71ec52.png" alt="Obrazek" /></a><br /><br /><a href="https://obrazkiforum.atnel.pl/12391/567b8b060fd7079135be8a82051ab1be.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/12391/567b8b060fd7079135be8a82051ab1be.png" alt="Obrazek" /></a><br /><br />d_led.c<br /><br />[syntax=c]/*<br /> * d_led.c<br /> *<br /> *  Created on: 25 sty 2016<br /> *      Author: Kupay<br /> */<br /><br /><br />#include &lt;avr/io.h&gt;  //dołączenie głównego systemowego pliku nagłówkowego<br />#include &lt;avr/interrupt.h&gt;//dołącznie pliku nagłówkowego do obsługi przerwań<br />#include &lt;avr/pgmspace.h&gt;<br />#include &quot;d_led.h&quot; // dołącznie pliku nagłówkowego(w nim są m.in. definicje preprocesora)<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 inicjalizująca prace z wyświetlaczem multipleksowanym ****<br /><br />void d_led_init(void){<br /><br />LED_DATA_DIR = 0xFF;<br />LED_DATA = 0xFF;<br />ANODY_DIR |= CA1 | CA2 | CA3 | CA4;<br />ANODY_PORT |= CA1 | CA2 | CA3 | CA4;<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 39 (rej. przepełnienia)<br />TIMSK |= (1&lt;&lt;OCIE0);<br />}<br /><br />// **** Definicja tablicy przechowującej cyfry dla wysw LED<br />const 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 />};<br /><br />//======================= PROCEDURA OBSŁUGI PRZERWANIA - COMPARE MATCH =================================<br /><br />ISR(TIMER0_COMP_vect){<br /><br />//zmienna do przełączania kolejno anod wyświetlacza<br />static uint8_t licznik = 1;<br />ANODY_PORT = (ANODY_PORT &amp; 0xF0) | (~licznik &amp; 0xF0);<br /><br />//gdy zapalony wyśw. 1, podaj stan zmiennej c1<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 == 3) LED_DATA = pgm_read_byte( &amp;cyfry&#91;cy3&#93; );<br />else if(licznik == 4) LED_DATA = pgm_read_byte( &amp;cyfry&#91;cy4&#93; );<br /><br />licznik &lt;&lt;= 1;<br />if(licznik&gt;8) licznik = 1;<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12391">dominiv2604</a> — 26 sty 2016, o 07:50</p><hr />
]]></content>
</entry>
</feed>