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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2012-08-01T19:33:38+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=1360&amp;mode</id>
<entry>
<author><name><![CDATA[savian86]]></name></author>
<updated>2012-08-01T19:33:38+01:00</updated>
<published>2012-08-01T19:33:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1360&amp;p=11493#p11493</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1360&amp;p=11493#p11493"/>
<title type="html"><![CDATA[Re: Dołączanie bibliotek do projektu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1360&amp;p=11493#p11493"><![CDATA[
<img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> Tak, ładnie się kompiluje.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=393">savian86</a> — 1 sie 2012, o 19:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-01T19:26:36+01:00</updated>
<published>2012-08-01T19:26:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1360&amp;p=11490#p11490</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1360&amp;p=11490#p11490"/>
<title type="html"><![CDATA[Re: Dołączanie bibliotek do projektu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1360&amp;p=11490#p11490"><![CDATA[
No ale udało ci się w końcu wszystko ogarnąć ? te struktury i enum ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> bo znowu nie napisałeś tego <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Wyżej dobrze zrobiłeś ja też zwykle za pomocą typedef tworzę typ strukturalny w pliku *.h, potem tworzę zmienną tego typu w *.c i ew exportuję tę zmienną znowu w pliku *.h, który potem będzie dołączany do innych plików źródłowych<br /><br />dokładnie tak samo z enum<br /><br />czyli jesteś na dobrej drodze albo już sobie poradziłeś <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 1 sie 2012, o 19:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[savian86]]></name></author>
<updated>2012-08-01T19:09:30+01:00</updated>
<published>2012-08-01T19:09:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1360&amp;p=11486#p11486</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1360&amp;p=11486#p11486"/>
<title type="html"><![CDATA[Re: Dołączanie bibliotek do projektu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1360&amp;p=11486#p11486"><![CDATA[
Fakt, nawet nie napisałem jakie błędy są generowane <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> pisałem tamtego posta w pośpiechu, bo zbierałem się w teren.<br /><br />Różnice między deklaracją a definicją znam, nawet niedawno wróciłem do tego rozdziału w książce. Jak się okazało, w teorii znałem, ale w praktyce, gdzie w jakim pliku umieścić to już nie bardzo.<br /><br />Na spokojnie postudiowałem trochę i udało mi się &quot;zaskoczyć&quot; o co w tym chodzi. <br /><br />Deklaracja zwykłej zmiennej, lub funkcji (plik.h): <br />[syntax=cpp]extern uint8_t zm;<br /><br />int funkcja(void);[/syntax]<br /><br />Definicja tego co wyżej (plik.c):<br />[syntax=cpp]uint8_t zm;<br /><br />int funkcja (void) {     return 0;    }[/syntax]<br /><br />Prościzna, zrozumiałe i logiczne. Ale jak to samo zrobić ze strukturą, typem wyliczeniowym enum ? Na tym poległem, zabrakło mi wiedzy w stylu &quot;jak to się pisze w C ?&quot;<br />Poczytałem i się dowiedziałem<br /><br />Teraz mam w ten sposób: plik main.h<br /><br />[syntax=cpp]typedef struct {<br />int histereza,zew,wew,zadana,t_dzien,t_noc,min_doba,max_doba,min,max;<br />uint8_t wyswietl;<br />}_TEMP;<br /><br />extern _TEMP TEMP;[/syntax]<br /><br />plik main.c<br />[syntax=cpp]_TEMP TEMP;[/syntax]<br /><br />W każdym innym pliku jeśli potrzebuję operować na tej strukturze dołączam tylko #include &quot;main.h&quot;<br /><br />Filozofia dołączania plików przez AVR Studio zrobiła mi pranie mózgu i byłem opóźniony w rozwoju  <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> <br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Ale czasy AVR Studio minęły,<br /></div><br /><br />i tu w domyśle niewidzialną czcionką jest dopisek DLA MNIE  <img src="https://forum.atnel.pl/images/smilies/icon_cool.gif" alt="8-)" title="Cool" /> Teraz tak sobie myślę, że nieźle się katowałem wcześniej. Żeby napisać i wgrać program to potrzebowałem mieć odpalone cztery programy  <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> Notepad++ bo w tym dopiero dało się pisać, AVR Studio do wciskania F7 <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> avrdude, oraz nakładkę graficzną na niego. Istne wariactwo, nieraz wgrywałem program zanim się skompilował  <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> <br /><br />Dzięki za nakierowanie mnie w czym szukać<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=393">savian86</a> — 1 sie 2012, o 19:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-01T09:18:39+01:00</updated>
<published>2012-08-01T09:18:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1360&amp;p=11448#p11448</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1360&amp;p=11448#p11448"/>
<title type="html"><![CDATA[Re: Dołączanie bibliotek do projektu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1360&amp;p=11448#p11448"><![CDATA[
No cenna rada jest taka <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> że:<br /><br />1. napisałeś że nie pomogło, wrzuciłeś kod ale ja nie wiem co dokładnie się dzieje - wypadałoby podać teraz konkretne komunikaty błędów <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> bo tak to wiesz<br /><br />ale ok tak na szybko z tego co widzę - niech będzie porada <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> cosik mi się wydaje, że nie doczytałeś Pan w książce o tym czym różni się DEKLARACJA od DEFINICJI zmiennej hmmmm? Bo tutaj widzę że to strasznie pokutuje i tak czułem wcześniej już, że jak przerobisz to to wylezie jak szydło z worka <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .... <br /><br />A w książce z uporem maniaka co chwilę przypominam o tym aby KONICZNIE ZROZUMIEĆ różnice pomiędzy deklaracjami a definicjami zarówno zmiennych jak i funkcji w C bo to PODSTAWA <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Spróbuj na razie na gorąco sam sobie i może tu w tym poście odpowiedzieć na to pytanie - <br /><br />&quot;jaka jest różnica pomiędzy deklaracją a definicją zmiennych&quot;<br /><br />OK ? (możesz zaglądać do ściągawki czyli książki)<br /><br />Dzięki temu może się okazać że sam rozwiążesz ten problem albo wpadniesz jeszcze na kolejne pomysły. Ale jeśli nie to pomożemy dalej - spokojnie <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 3 minutach ]</span></strong><br /><br /><div class="quotetitle">savian86 napisał(a):</div><div class="quotecontent"><br />Ale czasy AVR Studio minęły, nastały czasy Eclipse,<br /></div><br /><br />No może nie tak do końca bo przecież pojawiły się nowe wersje AVR Studio 5 i 6 ale to z kolei tak opasłe i chore kobyły, że na prawdę ich nie polecam bo jeszcze na dodatek przysparzają wielu innych problemów początkującym poza ociężałością, o których nawet nie będę tu teraz pisał OK?<br /><br /><br /><div class="quotetitle">savian86 napisał(a):</div><div class="quotecontent"><br />więc że tak powiem Bascomowe bajery w postaci, że dane narzędzie zrobi coś za nas idą w odstawkę, trzeba samemu ruszyć mózgownicą  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /></div><br /><br />Noooo to podstawa, ale zobaczysz niedługo ile korzyści przyniesie to ruszanie mózgownicą <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> za kilka miesięcy jak dalej będziesz robił w C i przypomnisz sobie niektóre koszmarki czyli ograniczenia Bascoma to ci dreszcze przejdą po plecach. Nie oznacza to że Bascom jest zły - ale że ma swoje ograniczenia to chyba zrozumiałe.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 1 sie 2012, o 09:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[savian86]]></name></author>
<updated>2012-08-01T07:57:57+01:00</updated>
<published>2012-08-01T07:57:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1360&amp;p=11447#p11447</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1360&amp;p=11447#p11447"/>
<title type="html"><![CDATA[Re: Dołączanie bibliotek do projektu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1360&amp;p=11447#p11447"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />Poza tym tam inaczej dodaje się same pliki do projektu w takim drzewku i można taki misz-masz narobić że jak poinkludujesz pliki h jako źródłowe w nieodpowiedni sposób to AVR Studio nawet nie piśnie - ale to nie oznacza że dobrze zrobiłeś jeśli chodzi o C<br /></div><br /><br />Miałem to wyczajone, że AVR Studio to do siebie ma, stąd moje dzisiejsze problemy, bo po co zawracać sobie głowę czymś co działa  <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> .<br /><br /><div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />MUSISZ zapamiętać, że te zasady o których pisałem wyżej i w książce nie dotyczą ŻADNEGO środowiska a TYLKO i WYŁĄCZNIE języka C.<br /></div><br /><br />Byłem tego świadomy, ale ponownie nawiązuję do powyższego, skoro działa to nie ma problemu.<br /><br />Ale czasy AVR Studio minęły, nastały czasy Eclipse, więc że tak powiem Bascomowe bajery w postaci, że dane narzędzie zrobi coś za nas idą w odstawkę, trzeba samemu ruszyć mózgownicą  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br /><br /><br />Wracając do sedna problemu, na szybko poprzerzucałem jak radziłeś i nie pomogło.<br /><br />do main.c<br />[syntax=cpp]#include&lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br /><br />#include &quot;menu.h&quot;<br />#include &quot;main.h&quot;<br /><br />#include &quot;3310/3310.h&quot;<br />#include &quot;I2C_SOFT/I2C_SOFT.h&quot;<br />#include &quot;STMPE811/STMPE811.h&quot;<br />#include &quot;STMPE811/touch.h&quot;<br />#include &quot;PCF8563/PCF8563.h&quot;<br />#include &quot;PCF8563/RTC.h&quot;<br />#include &quot;RC5/RC5.h&quot;<br /><br /><br />//void refresh_lcd(void)<br />//{<br /><br />//}<br /><br />struct czas{<br />uint8_t sec,min,godz,dzien,mies,week;<br />uint16_t rok;<br />}TIME;<br /><br />struct temperatury{<br />int histereza,zew,wew,zadana,t_dzien,t_noc,min_doba,max_doba,min,max;<br />uint8_t wyswietl;<br />}TEMP;<br /><br />struct czas_reg{<br />uint8_t dzien_h,dzien_m;<br />uint8_t noc_h,noc_m;<br />}PROG;<br /><br /><br /><br />int main(void)<br />{<br />...<br />...<br />itd[/syntax]<br /><br />do menu.c<br />[syntax=cpp]enum _EMENU idx = m_tapeta;<br />enum _EPODS epods = epod_100;<br /><br />void akcja_up(void)<br />{<br />//if (idx == m_tapeta) { refresh_lcd(); return; }<br /><br />switch (idx)<br />{<br />case sub_reg_h:<br />if(TEMP.histereza &lt; 100) TEMP.histereza++;break;<br />...<br />...<br />itd[/syntax]<br /><br />menu.h<br />[syntax=cpp]enum _EMENU {<br />m_tapeta=0, m_reg, m_historia,  m_zegar, m_beep, m_pods,<br />sub_reg_hist=10,sub_reg_dzien,sub_reg_noc,<br />sub_reg_h,<br />sub_reg_dt,sub_reg_dg,sub_reg_dm,<br />sub_reg_nt,sub_reg_ng,sub_reg_nm,<br />sub_zegar_h=30,sub_zegar_m,sub_zegar_dy,sub_zegar_mh,sub_zegar_yr,<br />sub_pods=40,<br />};<br /><br /><br />enum _EPODS {<br />epod_0=0, epod_10=25, epod_25=64, epod_50=128, epod_75=190, epod_100=255<br />};<br /><br /><br /><br />void akcja_up(void);<br />void akcja_down(void);<br />void akcja_ok(void);[/syntax]<br /><br /><br />w pliku menu.c instrukcje nie widzą struktur zadeklarowanych w main.c<br />Po pracy na spokojnie nad tym posiedzę i powalczę. Ale chętnie przyjmę cenną rade  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=393">savian86</a> — 1 sie 2012, o 07:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-01T07:00:32+01:00</updated>
<published>2012-08-01T07:00:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1360&amp;p=11445#p11445</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1360&amp;p=11445#p11445"/>
<title type="html"><![CDATA[Re: Dołączanie bibliotek do projektu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1360&amp;p=11445#p11445"><![CDATA[
<div class="quotetitle">savian86 napisał(a):</div><div class="quotecontent"><br />Dzięki za rozjaśnienie. Przyznam, że z odpowiednim podziałem co w którym pliku to nie łapałem blusa. Długo pisałem &quot;ciurkiem&quot;, nie rozdzielając tych elementów jak należy. W avrstudio dodawanie komponentów też może być trochę inaczej realizowane i to łyknie, dlatego nie przykładałem do tego większej wagi. Po prostu mimo że pisanie właściwego programu jakoś tam zawsze szło, to muszę więcej poćwiczyć aby było to robione zgodnie ze sztuką  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /></div><br /><br />Poczekaj poczekaj, bo ja teraz dopiero zauważyłem, że ty to o czym ja tu piszę kojarzysz z różnicami pomiędzy środowiskami..... O nie nie panie kolego. Jeśli tak będziesz myślał to w przyszłości wkopiesz się w kolejne problemy.<br /><br />MUSISZ zapamiętać, że te zasady o których pisałem wyżej i w książce nie dotyczą ŻADNEGO środowiska a TYLKO i WYŁĄCZNIE języka C.<br /><br />To że w AVR Studio coś ci się tam kompilowało bez warningów czy błędów a tu nie to całkiem inna sprawa. Np w AVR Studio 4.xx pewnie (jak spora ilość początkujących) nawet nie zwracałeś uwagi na warningi, które przeleciały na dole w konsoli na górę okienka. Poza tym tam inaczej dodaje się same pliki do projektu w takim drzewku i można taki misz-masz narobić że jak poinkludujesz pliki h jako źródłowe w nieodpowiedni sposób to AVR Studio nawet nie piśnie - ale to nie oznacza że dobrze zrobiłeś jeśli chodzi o C<br /><br />Dlatego mam nadzieję, że tym bardziej doceniasz zalety Eclipsa teraz<br /><br /><br /><div class="quotetitle">savian86 napisał(a):</div><div class="quotecontent"><br />Jeszcze drobna sprawa, jak piszę kod w poście w syntax to jak wstawić tabulację w oknie edytora <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" />  ?<br /></div><br /><br />Sam nie wiem <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ja zawsze klikam i męczę spację ... A najlepiej to wkleić kod już z wcięciami i dać w syntax, wtedy tabulatory same się pojawią.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 1 sie 2012, o 07:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[savian86]]></name></author>
<updated>2012-08-01T06:52:17+01:00</updated>
<published>2012-08-01T06:52:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1360&amp;p=11444#p11444</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1360&amp;p=11444#p11444"/>
<title type="html"><![CDATA[Re: Dołączanie bibliotek do projektu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1360&amp;p=11444#p11444"><![CDATA[
Dzięki za rozjaśnienie. Przyznam, że z odpowiednim podziałem co w którym pliku to nie łapałem blusa. Długo pisałem &quot;ciurkiem&quot;, nie rozdzielając tych elementów jak należy. W avrstudio dodawanie komponentów też może być trochę inaczej realizowane i to łyknie, dlatego nie przykładałem do tego większej wagi. Po prostu mimo że pisanie właściwego programu jakoś tam zawsze szło, to muszę więcej poćwiczyć aby było to robione zgodnie ze sztuką  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Jeszcze drobna sprawa, jak piszę kod w poście w syntax to jak wstawić tabulację w oknie edytora <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" />  ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=393">savian86</a> — 1 sie 2012, o 06:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-07-31T22:17:59+01:00</updated>
<published>2012-07-31T22:17:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1360&amp;p=11425#p11425</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1360&amp;p=11425#p11425"/>
<title type="html"><![CDATA[Re: Dołączanie bibliotek do projektu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1360&amp;p=11425#p11425"><![CDATA[
Pierwszy POWAŻNY błąd to to co zrobiłeś w pliku main.h <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> TAK się nie robi - umieściłeś definicję struktury w pliku *.h .... BAAARDZO ŹLE <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> .... jak już to umieść tam definicję typu struktury o tak:<br /><br />[syntax=c]typedef struct {<br />    int histereza,zew,wew,zadana,t_dzien,t_noc,min_doba,max_doba,min,max;<br />    uint8_t wyswietl;<br />} TEMP;[/syntax]<br /><br />a potem w pliku main.c <br /><br />[syntax=c]TEMP temperatury;[/syntax]<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 2 minutach ]</span></strong><br /><br />Kolejne poważne BABOLE <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br />widzę, że tego w ogóle nie rozumiesz jakby ..... Otóż definicje zmiennych też umieszczasz w pliku *.h ..... BAAARDZO ŹLE<br /><br />[syntax=c]enum _EMENU idx = m_tapeta;[/syntax]<br /><br />nie może być w *.h ------&gt; MUSI być w *.c !!!<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 4 minutach ]</span></strong><br /><br /><div class="quotetitle">savian86 napisał(a):</div><div class="quotecontent"><br />i jak wykonam w programie:<br />[syntax=c]epods++;[/syntax]<br />to zapewne otrzymam wartość 26, a nie 64? Jest na to myk? czy jedynie konstrukcja tablicy i inkrementacja indeksu?<br /></div><br /><br />ja bym dał tablicę a indeks można robić na dwa sposoby albo za pomocą zmiennej albo za pomocą wskaźnika - jak wygodniej.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 31 lip 2012, o 22:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[savian86]]></name></author>
<updated>2012-07-31T21:55:58+01:00</updated>
<published>2012-07-31T21:55:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1360&amp;p=11421#p11421</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1360&amp;p=11421#p11421"/>
<title type="html"><![CDATA[Dołączanie bibliotek do projektu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1360&amp;p=11421#p11421"><![CDATA[
Dopiero niedawno przesiadłem się na eclipse, więc tak naprawdę dopiero co go poznaję. Tworząc projekt trafiłem na pewien problem z dołączaniem plików. Po krótce, dla przejrzystości zrobiłem podział na kilka modułów:<br /><br />Plik główny main.c (załączam jedynie istotne fragmenty dla nakreślenia problemu)<br />[syntax=c]#include&lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br /><br />#include &quot;menu.h&quot;<br />#include &quot;main.h&quot;<br /><br />int main(void)<br />{<br /><br />while(1)<br />{<br />lcd_cls();<br />lcd_int(idx++);<br />_delay_ms(1000);<br /><br />}<br />}[/syntax]<br /><br />Plik main.h<br /><br />[syntax=c]#ifndef MAIN_H_<br />#define MAIN_H_<br /><br />struct temperatury{<br />int histereza,zew,wew,zadana,t_dzien,t_noc,min_doba,max_doba,min,max;<br />uint8_t wyswietl;<br />}TEMP;<br /><br />#endif /* MAIN_H_ */[/syntax]<br /><br />Plik menu.h<br /><br />[syntax=c]<br />#ifndef MENU_H_<br />#define MENU_H_<br /><br />enum _EMENU {<br />m_tapeta=0, m_reg, m_historia,  m_zegar, m_beep, m_pods,<br />sub_reg_hist=10,sub_reg_dzien,sub_reg_noc,<br />sub_reg_h,<br />sub_reg_dt,sub_reg_dg,sub_reg_dm,<br />sub_reg_nt,sub_reg_ng,sub_reg_nm,<br />sub_zegar_h=30,sub_zegar_m,sub_zegar_dy,sub_zegar_mh,sub_zegar_yr,<br />sub_pods=40,<br />};<br />enum _EMENU idx = m_tapeta;<br /><br />enum _EPODS {<br />epod_0=0, epod_10=25, epod_25=64, epod_50=128, epod_75=190, epod_100=255<br />};<br />enum _EPODS epods = epod_100;<br /><br />void akcja_up(void);<br /><br />#endif /* MENU_H_ */[/syntax]<br /><br />Plik menu.c<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &quot;main.h&quot;<br />#include &quot;menu.h&quot;<br /><br />void akcja_up(void)<br />{<br /><br />switch (idx)<br />{<br />case sub_reg_h:if(TEMP.histereza &lt; 100) TEMP.histereza++;break;<br />}<br />}[/syntax]<br /><br />No i problemem jest to, że kompilator krzyczy o podwójną deklarację:<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">./menu.o:(.bss+0x0): multiple definition of `idx'<br />./main.o:(.bss+0x0): first defined here<br />./menu.o:(.data+0x0): multiple definition of `epods'<br />./main.o:(.data+0x0): first defined here<br />make: *** &#91;Duzy_pokoj_panel_v2.elf&#93; Error 1</div><br /><br />Nie wiem w jakich plikach zrobić odpowiednie odwołania do innych używanych plików.<br />Jak widać w bibliotece &quot;C&quot; potrzebuję operować na zmiennych z bibloteki &quot;B&quot;, a plik główny to &quot;A&quot;.<br /><br />A druga sprawa to:<br />[syntax=c]enum _EPODS {<br />epod_0=0, epod_10=25, epod_25=64, epod_50=128, epod_75=190, epod_100=255<br />};<br />enum _EPODS epods = epod_10;[/syntax]<br /><br />i jak wykonam w programie:<br />[syntax=c]epods++;[/syntax]<br />to zapewne otrzymam wartość 26, a nie 64? Jest na to myk? czy jedynie konstrukcja tablicy i inkrementacja indeksu?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=393">savian86</a> — 31 lip 2012, o 21:55</p><hr />
]]></content>
</entry>
</feed>