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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-03-10T23:35:25+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=14683&amp;mode</id>
<entry>
<author><name><![CDATA[kicajek]]></name></author>
<updated>2016-03-10T23:35:25+01:00</updated>
<published>2016-03-10T23:35:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155900#p155900</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155900#p155900"/>
<title type="html"><![CDATA[Re: Wyświetlacz LED i extern]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155900#p155900"><![CDATA[
Witam<br /><div class="quotetitle">elektronikq napisał(a):</div><div class="quotecontent"><br />Ja źle rozumiem...<br /></div><br />Nie, tylko za szybko kończysz czytać  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> , bo dalej mamy:<br /><div class="quotetitle">BB napisał(a):</div><div class="quotecontent"><br />Co jednak oznacza drugi przypadek (opis tablicy z pustymi klamrami - dop.mój). Jest to duża wygoda....<br /></div><br />Wystarczy bo stworzę plagiat.<br />Chodzi o to, że jak już napiszesz tam liczbę, to musi się ona zgadzać z zawartością tablicy- jeśli nie napiszesz to masz dowolność - zresztą doczytaj jak już tam jesteś.<br /><br />Pozdr.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=826">kicajek</a> — 10 mar 2016, o 23:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[elektronikq]]></name></author>
<updated>2016-03-10T22:27:14+01:00</updated>
<published>2016-03-10T22:27:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155891#p155891</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155891#p155891"/>
<title type="html"><![CDATA[Re: Wyświetlacz LED i extern]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155891#p155891"><![CDATA[
BB strona 148 cytuję:<br /><br />...&quot;Uwaga!. Musi ich być dokładnie tyle, ile zadeklarowałeś elementów tablicy w nawiasach kwadratowych&quot;.<br /><br />Ja źle rozumiem czy zapis jest nieścisły?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11544">elektronikq</a> — 10 mar 2016, o 22:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ogon]]></name></author>
<updated>2016-03-10T08:56:02+01:00</updated>
<published>2016-03-10T08:56:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155809#p155809</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155809#p155809"/>
<title type="html"><![CDATA[Re: Wyświetlacz LED i extern]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155809#p155809"><![CDATA[
Im większą  tablice zadeklarujesz tym więcej pamięci będzie rezerwowane.<br />Możesz zadeklarować większą tablicę i nie używać jej wszystkich wartości ale to strata pamięci. Czasem asekuracyjnie można sobie stworzyć z zapasem ale warto to zoptymalizować. Tablic nie musisz zawsze do &quot;pełna&quot; napełniać.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9745">ogon</a> — 10 mar 2016, o 08:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[elektronikq]]></name></author>
<updated>2016-03-08T23:20:55+01:00</updated>
<published>2016-03-08T23:20:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155679#p155679</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155679#p155679"/>
<title type="html"><![CDATA[Re: Wyświetlacz LED i extern]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155679#p155679"><![CDATA[
Pytam o to bo w BB jest napisane, że ile zadeklarujemy w nawiasach kwadratowych tyle musi być elementów naszej tablicy.<br />U nas jest zadeklarowane 15 elementów a jest 10. W końcu jak to jest?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11544">elektronikq</a> — 8 mar 2016, o 23:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[elektronikq]]></name></author>
<updated>2016-03-03T18:39:44+01:00</updated>
<published>2016-03-03T18:39:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155365#p155365</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155365#p155365"/>
<title type="html"><![CDATA[Re: Wyświetlacz LED i extern]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155365#p155365"><![CDATA[
Wiem ale pisząc kod własnoręcznie wychodzą właśnie takie babole i coraz więcej rozumiem i chce się iść  dalej;)<br />Uzupełniłem kod:<br />d_led.h:<br />[syntax=c]#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 /><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 &quot;d_led.h&quot;<br />volatile uint8_t cy1;<br />volatile uint8_t cy2;<br />volatile uint8_t cy3;<br />volatile uint8_t cy4;<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 />TCCR0 |= (1&lt;&lt;WGM01);<br />TCCR0 |= (1&lt;&lt;CS02) | (1&lt;&lt;CS00); <br />OCR0 = 38;<br />TIMSK |= (1&lt;&lt;OCIE0);<br /><br />}<br /><br /><br /><br />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 />ISR(TIMER0_COMP_vect)<br />{<br />static uint8_t licznik=1;<br />ANODY_PORT = ~licznik;<br /><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 />licznik &lt;&lt;=1;<br />if (licznik&gt;8) licznik=1; <br /><br />}[/syntax]<br /><br />Jeszcze tylko muszę zrobić z PROGMEM. Widziałem na płytce, że autor zastosował do opisu tablicy specyfikator const, czyli tabela będzie do odczytu. To zaoszczędzi pamięć?<br /><br />Rozumiem, że jeśli nie używam innych znaków to mogę w tablicy wpisać: cyfry[10]? Jak zadeklaruje je jako cyfry[15] to nie zużyje mi 5 bajtów więcej?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11544">elektronikq</a> — 3 mar 2016, o 18:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kicajek]]></name></author>
<updated>2016-03-03T11:56:23+01:00</updated>
<published>2016-03-03T11:56:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155325#p155325</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155325#p155325"/>
<title type="html"><![CDATA[Re: Wyświetlacz LED i extern]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155325#p155325"><![CDATA[
Witam<br /><div class="quotetitle">elektronikq napisał(a):</div><div class="quotecontent"><br />Nie używam kodów zamieszczonych na płycie DVD. Używam książki.<br /></div><br />Jeśli tak, to nie zawsze uda Ci się &quot;odpalić&quot; dane ćwiczenie. W książce podany jest sposób w jaki podchodzi się do danego zagadnienia, ale zdarzają się niezamierzone drobne pomyłki czy raczej nie wszystko jest opisane; natomiast na płycie są już sprawdzone kody. Oczywiście na podstawie książki można samemu napisać daną obsługę, ale najpierw trzeba dobrze poznać to zagadnienie. Masz przykład z &quot;Twoim&quot; rozdziałem - kod cały czas się rozbudowuje, a Ty od połowy rozdziału chcesz go już ładować do uC - tak się nie da.<br /><br />Pozdr.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=826">kicajek</a> — 3 mar 2016, o 11:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[elektronikq]]></name></author>
<updated>2016-03-03T01:11:16+01:00</updated>
<published>2016-03-03T01:11:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155315#p155315</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155315#p155315"/>
<title type="html"><![CDATA[Re: Wyświetlacz LED i extern]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155315#p155315"><![CDATA[
Tak przypuszczałem. Przeczytałem cały  rozdział ale myślałem, że jest wersja z tablicami i wersja bez tablic. Ok postaram się to naprawić.<br />Nie używam kodów zamieszczonych na płycie DVD. Używam książki.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11544">elektronikq</a> — 3 mar 2016, o 01:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kicajek]]></name></author>
<updated>2016-03-02T21:50:11+01:00</updated>
<published>2016-03-02T21:50:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155302#p155302</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155302#p155302"/>
<title type="html"><![CDATA[Re: Wyświetlacz LED i extern]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155302#p155302"><![CDATA[
<div class="quotetitle">elektronikq napisał(a):</div><div class="quotecontent"><br />A ta liczba nie zapali potrzebnych segmentów aby się wyświetliła 4 na wyświetlaczu.<br /></div><br />...bo to się odwołuje do tablicy, w której podane są konkretne segmenty dla danej cyfry.<br />A wracając do kodu - z BB czy z płyty?<br />Teraz doczytałem w BB - za szybko skończyłeś czytać ten rozdział bo dalej masz podane te tablice  <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> — 2 mar 2016, o 21:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[elektronikq]]></name></author>
<updated>2016-03-02T21:42:24+01:00</updated>
<published>2016-03-02T21:42:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155301#p155301</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155301#p155301"/>
<title type="html"><![CDATA[Re: Wyświetlacz LED i extern]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155301#p155301"><![CDATA[
Anoda. Tak, że stan 0 pobudza PNP i zasila anodę.<br />Anody podpięte do PORTA.<br /><br />Nie używałem, żadnych tablic. Kod z BB. Żadna z wyświetlonych cyfr nie przypomina tego co ma się na wyświetlaczu znajdować, np. niepełna 8, 9 w odbiciu lustrzanym etc. i wszystkie kropki.<br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />jeśli licznik =1 do PORTA wpisz zanegowaną wartość licznika czyli 0b11111110, a do PORTC wpisz zawartość komórki [1] z tablicy cyfry[]<br />jeśli licznik =2 PORTA = Ob11111101 a do PORTC zawartość kom[4] z tablicy<br />jeśli licznik =4 PORTA = Ob11111011 a do PORTC kom[9] z tablicy<br />jeśli licznik =8 PORTA = Ob11110111 a do PORTC kom[5] z tablicy<br /></div><br />Ok to rozumiem. Licznik ma 1 czyli 0b00000001 potem neguje bo ANODY 0b11111110 i wrzuca to na PORTA. Potem sprawdza jeśli jeden to wykonuje LED_DATA=cy1 i leci dalej. Dochodzi do przesunięcia bitu w lewo i już mamy 0b0000010 potem wychodzi na to, że wartość 0b0000010  jest znowu negowana i mamy 0b11111101 i wrzucana na PORTA? Po przerwanie idzie od początku więc znowu wykonuje się operacja:<br />ANODY_PORT = ~licznik;<br />Ale z tym portc nie czaje np. <br /><br />Dla mnie tam jest tak, że jeśli licznik == 2 to wrzuć na PORTC liczbę 4. A ta liczba nie zapali potrzebnych segmentów aby się wyświetliła 4 na wyświetlaczu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11544">elektronikq</a> — 2 mar 2016, o 21:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kicajek]]></name></author>
<updated>2016-03-02T21:08:24+01:00</updated>
<published>2016-03-02T21:08:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155298#p155298</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155298#p155298"/>
<title type="html"><![CDATA[Re: Wyświetlacz LED i extern]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155298#p155298"><![CDATA[
<div class="quotetitle">elektronikq napisał(a):</div><div class="quotecontent"><br />[syntax=c]static uint8_t licznik=1;<br />        ANODY_PORT = ~licznik;<br /> <br />        if (licznik == 1) LED_DATA=cy1;<br />        else if (licznik == 2) LED_DATA=cy2;<br />        else if (licznik == 4) LED_DATA=cy3;<br />        else if (licznik == 8) LED_DATA=cy4;<br />        licznik &lt;&lt;=1;<br />        if (licznik&gt;8) licznik=1[/syntax]<br /><br />Ja rozumiem to tak:<br />Utwórz zmienną statyczną lokalną i wpisz 1 czyli 0b00000001<br />Do PORTA wpisz zanegowaną wartość licznika czyli 0b11111110<br />jeśli licznik =1 to w PORTC wpisz 1 czyli 0b00000001<br />potem jeśli licznik=2 to w PORTC wpisz 4 czyli 0b00000010 <br />itd.? Wpisanie 4 w PORTC nie uruchomi odpowiednich segmentów w wyświetlaczu LED.<br /></div><br />Troszkę komplikujesz ale...<br />Nie wiem czy wspominałeś, ale na jakim wyświetlaczu pracujesz - wspólna anoda czy katoda?<br />Jeśli anoda to: ( pomijam static bo to tylko raz )<br />jeśli licznik =1 do PORTA wpisz zanegowaną wartość licznika czyli 0b11111110, <strong>a</strong> do PORTC wpisz zawartość komórki [<strong>1</strong>] z tablicy cyfry[]<br />jeśli licznik =2 PORTA = Ob11111101 a do PORTC zawartość kom[<strong>4</strong>] z tablicy<br />jeśli licznik =4 PORTA = Ob11111011 a do PORTC kom[<strong>9</strong>] z tablicy <br />jeśli licznik =8 PORTA = Ob11110111 a do PORTC kom[<strong>5</strong>] z tablicy<br />Pytałem o wyświetlacz, bo dla ANODY krąży zero a dla KATODY - jedynka i trzeba zmienić zapis w tablicy cyfry. <br />To 1-4-9-5 to te wyświetlane cyfry.<br />Dobrze by było abyś zdefiniował pojęcie &quot;wyświetla głupoty&quot; - bo to może być od pomieszania segmentów do pomieszania wyświetlaczy.<br /><br />Pozdr.<br /><br />edit.: dopiero teraz zauważyłem - jeśli to kod z BB to skąd takie dziwne wywoływanie poszcz. cyfr?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=826">kicajek</a> — 2 mar 2016, o 21:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[elektronikq]]></name></author>
<updated>2016-03-02T20:38:56+01:00</updated>
<published>2016-03-02T20:38:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155293#p155293</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155293#p155293"/>
<title type="html"><![CDATA[Re: Wyświetlacz LED i extern]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155293#p155293"><![CDATA[
Dobry wieczór. Dziękuje kolegom za odzew. <br />Te kody które pokazałem to wgrałem one są z BK. Myślałem, że to będzie działać.<br /><br />Otóż nie potrafie przetrybić tego:<br /><br />[syntax=c]static uint8_t licznik=1;<br />ANODY_PORT = ~licznik;<br /><br />if (licznik == 1) LED_DATA=cy1;<br />else if (licznik == 2) LED_DATA=cy2;<br />else if (licznik == 4) LED_DATA=cy3;<br />else if (licznik == 8) LED_DATA=cy4;<br />licznik &lt;&lt;=1; <br />if (licznik&gt;8) licznik=1[/syntax]<br /><br />Ja rozumiem to tak:<br />Utwórz zmienną statyczną lokalną i wpisz 1 czyli 0b00000001<br />Do PORTA wpisz zanegowaną wartość licznika czyli 0b11111110<br />jeśli licznik =1 to w PORTC wpisz 1 czyli 0b00000001<br />potem jeśli licznik=2 to w PORTC wpisz 4 czyli 0b00000010 <br />itd.? Wpisanie 4 w PORTC nie uruchomi odpowiednich segmentów w wyświetlaczu LED. <br />Dla mnie powinny być w PORTC zapisywana taka liczba aby uruchomić odpowiednie segmenty do odpowiedniej liczby.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11544">elektronikq</a> — 2 mar 2016, o 20:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2016-03-02T20:22:06+01:00</updated>
<published>2016-03-02T20:22:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155289#p155289</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155289#p155289"/>
<title type="html"><![CDATA[Re: Wyświetlacz LED i extern]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155289#p155289"><![CDATA[
<div class="quotetitle">elektronikq napisał(a):</div><div class="quotecontent"><br />Zawartość d_led.h też zrozumiała, mam problem z:<br /></div><br />No dobrze a co na to mówi książka ? tzn Bluebook ? ... nie ma tam nic na ten temat ? ... Czy może coś jest ? .. jeśli jest to powiedz czego nie rozumiesz z opisu z książki?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 2 mar 2016, o 20:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kicajek]]></name></author>
<updated>2016-03-02T20:18:24+01:00</updated>
<published>2016-03-02T20:18:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155287#p155287</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155287#p155287"/>
<title type="html"><![CDATA[Re: Wyświetlacz LED i extern]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155287#p155287"><![CDATA[
Witam<br />A te biblioteki  d_led.h i d_led.c to pokazałeś jakie wgrywasz czy pokazałeś fragmenty a masz kompletne?<br /><br />Pozdr.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=826">kicajek</a> — 2 mar 2016, o 20:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[elektronikq]]></name></author>
<updated>2016-03-02T20:12:31+01:00</updated>
<published>2016-03-02T20:12:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155285#p155285</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155285#p155285"/>
<title type="html"><![CDATA[Re: Wyświetlacz LED i extern]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155285#p155285"><![CDATA[
Nazwa to po prostu jaką sobie weźmiemy. Także jasne. Zawartość d_led.h też zrozumiała, mam problem z:<br />if (licznik == 1) LED_DATA=cy1;<br />czyli:<br />if (licznik == 1) PORTC=1;<br />więc wpisuje 1 na PORTC ok, więc:<br /><br />else if (licznik == 4) LED_DATA=cy3;<br />tutaj:<br />else if (licznik == 4) PORTC=9; czyli wpisuje 9 na PORTC? Tylko, że wgranie 9 na PORTC nie spowoduje zaświecenia odpowiednich segmentów. I dlaczego mam głupoty na wyświetlaczu. Siedzę już nad tym dzisiaj 2h i nie wychodzi.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11544">elektronikq</a> — 2 mar 2016, o 20:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Marhef]]></name></author>
<updated>2016-03-02T08:29:52+01:00</updated>
<published>2016-03-02T08:29:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155212#p155212</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155212#p155212"/>
<title type="html"><![CDATA[Re: Wyświetlacz LED i extern]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155212#p155212"><![CDATA[
<div class="quotetitle">elektronikq napisał(a):</div><div class="quotecontent"><br />Taki kod. Atmega32. Jak mam 3 pliki to który wgrywam do procesora? 3 pliki jeden po drugim?<br /></div>Do procesora nie wgrywasz plików. Podczas budowania projektu wszystkie pliki z projektu są kompilowane i łączone (linkowane?) ze sobą, tworząc plik .hex. Jest to plik w kodzie maszynowym wgrywany na procesor.<br /><div class="quotetitle">elektronikq napisał(a):</div><div class="quotecontent"><br />Nie bardzo rozumiem:<br />Tej nazwy: _d_led_h dlaczego tak? Rozumiem, że tylko tak sobie to nazwałem. Na początku sprawdza kompilator czy takie taka nazwa została zdefiniowana (#ifndef xyz )jak nie to definiuje (#define xyz) a jak już jakiś plik.c dodał już plik.h z tym napisem to zostanie pominięte wszystko to co jest #define xyz?<br /></div>Nie rozumiesz, dlaczego plik się tak nazywa? Czy dlaczego jest taka zawartość?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12752">Marhef</a> — 2 mar 2016, o 08:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[elektronikq]]></name></author>
<updated>2016-03-01T23:30:24+01:00</updated>
<published>2016-03-01T23:30:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155195#p155195</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155195#p155195"/>
<title type="html"><![CDATA[Re: Wyświetlacz LED i extern]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155195#p155195"><![CDATA[
d_led.c:<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &quot;d_led.h&quot;<br />volatile uint8_t cy1;<br />volatile uint8_t cy2;<br />volatile uint8_t cy3;<br />volatile uint8_t cy4;<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 />TCCR0 |= (1&lt;&lt;WGM01);<br />TCCR0 |= (1&lt;&lt;CS02) | (1&lt;&lt;CS00); <br />OCR0 = 38;<br />TIMSK |= (1&lt;&lt;OCIE0); <br /><br />}<br /><br /><br /><br />ISR(TIMER0_COMP_vect)<br />{<br />static uint8_t licznik=1;<br />ANODY_PORT = ~licznik;<br /><br />if (licznik == 1) LED_DATA=cy1;<br />else if (licznik == 2) LED_DATA=cy2;<br />else if (licznik == 4) LED_DATA=cy3;<br />else if (licznik == 8) LED_DATA=cy4;<br />licznik &lt;&lt;=1; <br />if (licznik&gt;8) licznik=1; <br /><br />}[/syntax]<br /><br />d_led.h:<br /><br />[syntax=c]#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 />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 // koniec _d_led_h[/syntax]<br /><br />main.c:<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.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 />cy4 = 5;<br /><br />sei();<br />while(1)<br />{<br /><br />}<br />}[/syntax]<br /><br />Taki kod. Atmega32. Jak mam 3 pliki to który wgrywam do procesora? 3 pliki jeden po drugim?<br />Po wgraniu tego kodu mam &quot;głupoty na wyświetlaczu&quot;. Nie ma 1 4 9 0.<br /><br />Nie bardzo rozumiem:<br />Tej nazwy: _d_led_h  dlaczego tak? Rozumiem, że tylko tak sobie to nazwałem. Na początku sprawdza kompilator czy takie taka nazwa została zdefiniowana (#ifndef xyz )jak nie to definiuje (#define xyz) a jak już jakiś plik.c dodał już plik.h z tym napisem to zostanie pominięte wszystko to co jest #define xyz?<br /><br />I tego zapisu:<br />if (licznik == 1) LED_DATA=cy1;<br />czyli:<br />if (licznik == 1) PORTC=1;<br />więc wpisuje 1 na PORTC ok, więc:<br /><br />else if (licznik == 4) LED_DATA=cy3;<br />tutaj:<br />PORTC=9 czyli wpisuje 9 na PORTC? <br /><br />Nie wiem czy kod jest kompletny ale wyświetla się coś na wyświetlaczu. Kropki między segmentami też się palą.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11544">elektronikq</a> — 1 mar 2016, o 23:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Marhef]]></name></author>
<updated>2016-03-01T14:26:25+01:00</updated>
<published>2016-03-01T14:26:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155156#p155156</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155156#p155156"/>
<title type="html"><![CDATA[Re: Wyświetlacz LED i extern]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155156#p155156"><![CDATA[
@zoom, masz rację. Pomyliłem zmienne  <img src="https://forum.atnel.pl/images/smilies/icon_redface.gif" alt=":oops:" title="Zawstydzony" /> . Już poprawiam w poprzednich wpisach<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12752">Marhef</a> — 1 mar 2016, o 14:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zoom]]></name></author>
<updated>2016-03-01T14:21:03+01:00</updated>
<published>2016-03-01T14:21:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155155#p155155</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155155#p155155"/>
<title type="html"><![CDATA[Re: Wyświetlacz LED i extern]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155155#p155155"><![CDATA[
<div class="quotetitle">Marhef napisał(a):</div><div class="quotecontent"><br />Jeśli zapiszesz:<br />[syntax=c]int x;[/syntax]<br />to x będzie równe 0.<br /></div><br /><br />Ale to jest prawdą jedynie dla zmiennych globalnych.<br />Zmienne lokalne po takiej operacji mogą posiadać wartości losowe, zmienna dostała miejsce w pamięci i ma wartość taką, jak dane, które wcześniej tam były. A kto wie, co tam było?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=685">zoom</a> — 1 mar 2016, o 14:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Marhef]]></name></author>
<updated>2016-03-01T14:29:33+01:00</updated>
<published>2016-03-01T14:09:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155154#p155154</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155154#p155154"/>
<title type="html"><![CDATA[Re: Wyświetlacz LED i extern]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155154#p155154"><![CDATA[
<div class="quotetitle">elektronikq napisał(a):</div><div class="quotecontent"><br />To chyba to co napisałem w 1 zdaniu. Skoro użyliśmy w przerwaniu to tylko tam możemy jej używać.<br />Jakbyśmy użyli tam lokalnej to przy każdym przerwaniu start przerwania zaczynał by z nowo zinicializowaną zmienną.<br /></div>Ale to nie dlatego, że zmienna została zapisana ze static, tylko dlatego, że została utworzona lokalnie. Zmienna static nadal jest lokalna.<br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Chyba nieprawdę kolega napisał. Może przyjąć różne wartości, inne niż 0.<br /></div>Napisałem, że JEŚLI NIE JEST PRZYPISANA IM WARTOŚĆ. Nie napisałem, że nie możesz przypisać innej wartości. Jeśli zapiszesz:<div class="codetitle"><b>Code:</b></div><div class="codecontent">int x;</div>to x będzie równe 0. Jeśli napiszesz:<div class="codetitle"><b>Code:</b></div><div class="codecontent">int x = 100;</div>to x będzie równe 100<br /><strong>EDIT: Jak zauważył kolega @zoom, wartość 0 przyjmują zmienne globalne. Zmienne lokalne przyjmują wartość losową. Przepraszam za wprowadzenie w błąd.</strong><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12752">Marhef</a> — 1 mar 2016, o 14:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[elektronikq]]></name></author>
<updated>2016-03-01T13:43:45+01:00</updated>
<published>2016-03-01T13:43:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155153#p155153</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155153#p155153"/>
<title type="html"><![CDATA[Re: Wyświetlacz LED i extern]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155153#p155153"><![CDATA[
<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />(nie można jej użyć w innym miejscu programu)<br /></div><br /><br />To chyba to co napisałem w 1 zdaniu. Skoro użyliśmy w przerwaniu to tylko tam możemy jej używać.<br />Jakbyśmy użyli tam lokalnej to przy każdym przerwaniu start  przerwania zaczynał by z nowo zinicializowaną zmienną. Np.:<br />x=1<br />x=x*2<br />to za każdym przerwaniem x będzie równy 1.<br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Bez static zmienne lokalne są tworzone przy wywołaniu funkcji i, jeśli nie jest przypisana im wartość, przyjmują wartość 0<br /></div><br />Chyba nieprawdę kolega napisał. Może przyjąć różne wartości, inne niż 0.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11544">elektronikq</a> — 1 mar 2016, o 13:43</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Marhef]]></name></author>
<updated>2016-03-01T14:27:50+01:00</updated>
<published>2016-03-01T09:02:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155137#p155137</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155137#p155137"/>
<title type="html"><![CDATA[Re: Wyświetlacz LED i extern]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155137#p155137"><![CDATA[
<div class="quotetitle">elektronikq napisał(a):</div><div class="quotecontent"><br />Co do static rozumiem. Przydomek static spowoduje że tej zmiennej możemy tylko używać wyłącznie w tym przerwaniu?<br /></div>Nie. Static oznacza, że po wyjściu z funkcji, w której zmienna jest użyta, jej wartość jest zapamiętana.<br />Bez static zmienne lokalne są tworzone przy wywołaniu funkcji i, jeśli nie jest przypisana im wartość, przyjmują wartość <span style="color: #FF0000">0</span>.<br /><strong>EDIT: Wartość 0 przyjmują zmienne globalne. Zmienne lokalne przyjmują losową wartość</strong> Po wyjściu z funkcji zmienna &quot;znika&quot; i przy następnym wywołaniu funkcji znowu przyjmuje wartość <span style="color: #FF0000">0</span> <strong>losową</strong>.<br />Jeżeli użyjesz static, po wyjściu z funkcji zmienna &quot;znika&quot; (nie można jej użyć w innym miejscu programu), ale po następnym wywołaniu funkcji, zmienna przyjmuje wartość, jaką miała na zakończeniu poprzedniego wywołania funkcji<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12752">Marhef</a> — 1 mar 2016, o 09:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[elektronikq]]></name></author>
<updated>2016-02-29T22:54:36+01:00</updated>
<published>2016-02-29T22:54:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155111#p155111</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155111#p155111"/>
<title type="html"><![CDATA[Re: Wyświetlacz LED i extern]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155111#p155111"><![CDATA[
Co do static rozumiem. Przydomek static spowoduje że tej zmiennej możemy tylko używać wyłącznie w tym przerwaniu?<br /><br />Z tego co pamiętam DEKLARACJA tylko określa jakieś pewne parametry ale nie zajmuje pamięci natomiast DEFINICJA <strong>deklaruje</strong> jakiś obiekt i zajmuje pamięć. Tak zrozumiałem, że DEFINICJA ma jakby w sobie DEKLARACJĘ. Błędne myślenie?<br /><br />Nie rozumiem dlaczego w d_led.c jest definicja zmiennych i tam jeszcze zamieszczony jest d_led.h z tymi deklaracjami.<br />Pan Mirek coś pisał o tym, że czasami lepiej deklarować nawet jak jest definicja bo funkcja się odwołuje do jakiejś wcześniejszej i fajnie bybyło jakby znała na początku przynajmniej deklarację. Ale dlaczego to nie wiem.<br /><br />Jeśli chodzi o program z wyświetlaczem to fajnie Pan Mirek opisał.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11544">elektronikq</a> — 29 lut 2016, o 22:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2016-02-29T11:14:07+01:00</updated>
<published>2016-02-29T11:14:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155038#p155038</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155038#p155038"/>
<title type="html"><![CDATA[Re: Wyświetlacz LED i extern]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155038#p155038"><![CDATA[
<div class="quotetitle">elektronikq napisał(a):</div><div class="quotecontent"><br />Dlaczego w d_led.h deklarujemy zmienne cy1, cy2 ze słówkiem extern?<br /></div><br /><br />Bo to są DEKLARACJE zmiennych<br /><br />zaś w pliku d_led.c masz bez extern i to są DEFINICJE tych zmiennych<br /><br />nie zwróciłeś uwagi w Bluebooku na to jak naciskam mocno na to aby czytelnik zrozumiał czym różni się DEKLARACJA od DEFINICJI ? .... brak zrozumienia tego zagadnienia będzie powodował, że wciąż będzie się miało problemy ze zrozumieniem różnych części kodu w C<br /><br /><div class="quotetitle">elektronikq napisał(a):</div><div class="quotecontent"><br />a definicja to też deklaracja.<br /></div><br />Jak widzisz - już błądzisz i to poważnie, bo wciąż w książce piszę co to jest DEKLARACJA a co to jest DEFINICJA i czym się różni - i NIGDY nie jest to to samo.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 1 minucie ]</span></strong><br /><br /><div class="quotetitle">kicajek napisał(a):</div><div class="quotecontent"><br />elektronikq napisał(a):<br />dlaczego w przerwaniu używamy static? Nie możemy użyć zmiennej globalnej<br /><br />ponieważ po wejściu w przerwanie zmienna zaczynała by się od zera, a tak jej wartość/stan jest zapamiętany i w każdym wywołaniu przerwania jest &quot;na bieżąco&quot;.<br /></div><br /><br />Mogłaby być globalna ... mogłaby by być - ale po co pchać niepotrzebnie zmienne globalne. Należy dążyć zawsze aby było ich jak najmniej. Dzięki static znakomicie możemy sobie z tym radzić i specyficzne zmienne na potrzeby konkretnych funkcji osadzić je właśnie w tych funkcjach. A zachowują się tak jak globalne jeśli chodzi o pozostałe sprawy<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 29 lut 2016, o 11:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kicajek]]></name></author>
<updated>2016-02-29T09:06:03+01:00</updated>
<published>2016-02-29T09:06:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155029#p155029</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155029#p155029"/>
<title type="html"><![CDATA[Re: Wyświetlacz LED i extern]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155029#p155029"><![CDATA[
Witam<br /><div class="quotetitle">elektronikq napisał(a):</div><div class="quotecontent"><br />Dlaczego w d_led.h deklarujemy zmienne cy1, cy2 ze słówkiem extern?<br /></div><br />- aby można było z tych zmiennych korzystać w tych plikach które będą miały #include&lt;d_led.h&gt;<br /><div class="quotetitle">elektronikq napisał(a):</div><div class="quotecontent"><br />dlaczego w przerwaniu używamy static? Nie możemy użyć zmiennej globalnej<br /></div><br />ponieważ po wejściu w przerwanie zmienna zaczynała by się od zera, a tak jej wartość/stan jest zapamiętany i w każdym wywołaniu przerwania jest &quot;na bieżąco&quot;.<br /><br />Pozdr.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=826">kicajek</a> — 29 lut 2016, o 09:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[elektronikq]]></name></author>
<updated>2016-02-29T08:30:41+01:00</updated>
<published>2016-02-29T08:30:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155028#p155028</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155028#p155028"/>
<title type="html"><![CDATA[Wyświetlacz LED i extern]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14683&amp;p=155028#p155028"><![CDATA[
Pozdrawiam forumowiczów.<br />Dlaczego w d_led.h deklarujemy zmienne cy1, cy2 ze słówkiem extern? <br />W d_led.c mamy już definicję tych zmiennych a definicja to też deklaracja.<br />I dlaczego w przerwaniu używamy static? Nie możemy użyć zmiennej globalnej.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11544">elektronikq</a> — 29 lut 2016, o 08:30</p><hr />
]]></content>
</entry>
</feed>