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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2018-06-06T17:27:22+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=20834&amp;mode</id>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2018-06-06T17:27:22+01:00</updated>
<published>2018-06-06T17:27:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20834&amp;p=208655#p208655</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20834&amp;p=208655#p208655"/>
<title type="html"><![CDATA[Re: Jak odwołać się do struktury utworzonej w innym pliku?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20834&amp;p=208655#p208655"><![CDATA[
<div class="quotetitle">janusz17 napisał(a):</div><div class="quotecontent"><br />Najlepiej było by wiedzieć i rozumieć jedno i drugie.<br /></div><br />Podałem przecież wyjaśnienie <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> chodzi o nazwę funkcji na etapie czerpania informacji z pliku *.h dlatego działa - ale jak sam zauważyłeś robi się bajzel w kodzie <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> — 6 cze 2018, o 17:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[janusz17]]></name></author>
<updated>2018-06-06T16:58:35+01:00</updated>
<published>2018-06-06T16:58:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20834&amp;p=208652#p208652</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20834&amp;p=208652#p208652"/>
<title type="html"><![CDATA[Re: Jak odwołać się do struktury utworzonej w innym pliku?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20834&amp;p=208652#p208652"><![CDATA[
<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Powiem krótko - chcesz się nauczyć jak należy robić żeby było prawidłowo czy rozpatrywać przypadki, dlaczego ... akurat zadziałało skoro nie powinno ...<br /></div><br />Najlepiej było by wiedzieć i rozumieć jedno i drugie. <br />Ale na tym etapie problem rozwiązany, wiec jeszcze raz dziękuję za wszelkie wskazówki.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1226">janusz17</a> — 6 cze 2018, o 16:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2018-06-06T16:44:51+01:00</updated>
<published>2018-06-06T16:44:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20834&amp;p=208651#p208651</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20834&amp;p=208651#p208651"/>
<title type="html"><![CDATA[Re: Jak odwołać się do struktury utworzonej w innym pliku?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20834&amp;p=208651#p208651"><![CDATA[
Powiem krótko - chcesz się nauczyć jak należy robić żeby było prawidłowo czy rozpatrywać przypadki, dlaczego ... akurat zadziałało skoro nie powinno ...<br /><br />To tak jak z ludźmi - jedni jak dotkną palcami 230V to ich &quot;kopnie&quot; <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /> i tak powinno być prawda ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> Ale sam dobrze, wiesz, że zdarzają się ludzie którzy mogą dotknąć 230V albo i więcej i ich &quot;nie kopnie&quot; <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ... i co z tego wynika ? Będziesz dzielił włos na czworo i szukał sposobu &quot;jak oszukać przeznaczenie&quot; <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> hahahaha no wiadomo że jest jakieś wyjaśnienie ale to zależy od rezystancji naskórka itp itd<br /><br />w tym przypadku - programu, nie szkoda ci czasu szukać odpowiedzi na pytanie dlaczego zrobiłem ŹLE i mi zadziałało ?  .... Oczywiście jak z naskórkiem tak tutaj trzeba zdać sobie sprawę z kroków kompilacji i na ten temat robiłem oddzielny poradnik. Na etapie kompilacji pliku C, nagłówek funkcji jest potrzebny tylko po to aby ZNAĆ NAZWĘ funkcji - a argumenty w pierwszym przebiegu nie są istotne - dlatego ci to działa<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 6 cze 2018, o 16:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[janusz17]]></name></author>
<updated>2018-06-06T16:11:48+01:00</updated>
<published>2018-06-06T16:11:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20834&amp;p=208647#p208647</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20834&amp;p=208647#p208647"/>
<title type="html"><![CDATA[Re: Jak odwołać się do struktury utworzonej w innym pliku?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20834&amp;p=208647#p208647"><![CDATA[
<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />sorki ale co to za dziwny przypadek że tworzysz sobie gdzieś funkcję z jakimś tam argumentem (jej ciało)<br /><br />a do pliku H dajesz nagłówek funkcji ale bez argumentu - wybacz ale to bez sensu - i nie wiem nad czym tu się głowić, że to nie działa właściwie<br /></div><br /><br />ależ ja właśnie się dziwię, że to działa i kompilator nie zgłasza żadnych uwag<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1226">janusz17</a> — 6 cze 2018, o 16:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2018-06-06T15:12:08+01:00</updated>
<published>2018-06-06T15:12:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20834&amp;p=208646#p208646</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20834&amp;p=208646#p208646"/>
<title type="html"><![CDATA[Re: Jak odwołać się do struktury utworzonej w innym pliku?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20834&amp;p=208646#p208646"><![CDATA[
sorki ale co to za dziwny przypadek że tworzysz sobie gdzieś funkcję z jakimś tam argumentem (jej ciało)<br /><br />a do pliku H dajesz nagłówek funkcji ale bez argumentu - wybacz ale to bez sensu - i nie wiem nad czym tu się głowić, że to nie działa właściwie<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 6 cze 2018, o 15:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[janusz17]]></name></author>
<updated>2018-06-06T14:04:26+01:00</updated>
<published>2018-06-06T14:04:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20834&amp;p=208645#p208645</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20834&amp;p=208645#p208645"/>
<title type="html"><![CDATA[Re: Jak odwołać się do struktury utworzonej w innym pliku?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20834&amp;p=208645#p208645"><![CDATA[
Bardzo dziękuję wszystkim za pomoc w rozwikłaniu mojego problemu.<br />Muszę przyznać, że nie wiedziałem i nigdy się jak dotąd nie spotkałem z inkludowaniem innych plików , w pliku.h. Nawet sądziłem, że takie dołączanie plików jest błędne.<br />Jednak teraz żeby jeszcze lepiej zrozumieć jak to jest z tym inkludowaniem, przerabiam ten mój przykład na różne warianty i &quot;odkryłem&quot; jeszcze dwie sytuacje dla mnie dziwne.<br />1. Jeśli w takim układzie folderów i plików jak miałem na początku, w pliku time.c napiszę sobie taką funkcję<br />[syntax=c]void funkcja(TDATETIME *dt) {<br /> <br />}[/syntax]<br />a w pliku time.h, w jej deklaracji pominę argument<br />[syntax=c]void funkcja() ;[/syntax]<br />wszystko kompiluje się prawidłowo i to bez dołączania pliku pcf8583.h.<br />Niestety nie można wtedy dodać do funkcji drugiego argumentu bo kompilator wyrzuca błąd.<br /><br />2. Jeśli funkcję mam zapisaną dalej w pliku time.c , a jej deklarację zamiast umieścić w pliku time.h zapisze w pliku pcf8583.h, to o dziwo kompilator też nie zgłasza żadnych uwag. Tylko, że robi się lekki bałagan w kodzie. Natomiast mogę dodać jako argument zarówno strukturę jak i dodatkową zmienną.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1226">janusz17</a> — 6 cze 2018, o 14:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2018-06-06T09:08:25+01:00</updated>
<published>2018-06-06T09:08:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20834&amp;p=208627#p208627</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20834&amp;p=208627#p208627"/>
<title type="html"><![CDATA[Re: Jak odwołać się do struktury utworzonej w innym pliku?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20834&amp;p=208627#p208627"><![CDATA[
dokładnie - a przykład ten pokazuje, że wystarczy zachowywać porządek inkludowania - czyli najpierw pliki systemowe a później własne w cudzysłowach i okaże się, że nie trzeba inkludować stdint.h<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 6 cze 2018, o 09:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Marhef]]></name></author>
<updated>2018-06-06T07:30:57+01:00</updated>
<published>2018-06-06T07:30:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20834&amp;p=208626#p208626</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20834&amp;p=208626#p208626"/>
<title type="html"><![CDATA[Re: Jak odwołać się do struktury utworzonej w innym pliku?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20834&amp;p=208626#p208626"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />co zaś się tyczy inkludowania pliku<br /><br />#include &lt;stdint.h&gt;<br /><br />w plikach nagłówkowych - tzn konieczności tego inkluda albo nie - to proponuję sobie zrobić ciekawy eksperyment i udzielić sobie odpowiedzi, na pytanie<br /><br />dlaczego w takim wypadku początku main.c:<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />    #include &lt;avr/pgmspace.h&gt;<br />    #include &lt;util/delay.h&gt;<br />     <br />    #include &quot;RTC/pcf8583.h&quot;<br />    #include &quot;SD/sd.h&quot;[/syntax]<br /><br /><br />nie trzeba inkludować pliku stdint.h w widocznych tutaj plikach nagłówkowych i kompilacja przechodzi poprawnie ?<br /><br />a dlaczego w takim przypadku początku main.c<br /><br /><br />[syntax=c]#include &quot;RTC/pcf8583.h&quot;<br />    #include &quot;SD/sd.h&quot;<br />     <br />    #include &lt;avr/io.h&gt;<br />    #include &lt;avr/pgmspace.h&gt;<br />    #include &lt;util/delay.h&gt;[/syntax]<br /><br /><br />kompilator zgłosi błędy, że w plikach nagłówkowych (o ile występuje typ np uint8_t) - to że jest on nieznany i uda się to rozwiązać przez właśnie zainkludowanie stdint.h ???<br /></div>Dzieje się tak, ponieważ stdint.h jest dodawany w jednym z trzech pierwszych plików (obstawiam, że w io.h, ale nie mam jak sprawdzić)?<br />Natomiast w drugim przypadku najpierw dodawana jest zawartość plików pcf8583.h oraz sd.h, w których pojawia się typ uint8_t. A ponieważ dodawanie bibliotek powoduje &quot;wklejenie&quot; ich w miejscu wstawienia, więc deklaracja typuuint8_t jest później niż użycie. I kompilator zgłasza błąd <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Mam rację?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12752">Marhef</a> — 6 cze 2018, o 07:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2018-06-06T06:26:20+01:00</updated>
<published>2018-06-06T06:26:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20834&amp;p=208625#p208625</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20834&amp;p=208625#p208625"/>
<title type="html"><![CDATA[Re: Jak odwołać się do struktury utworzonej w innym pliku?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20834&amp;p=208625#p208625"><![CDATA[
Piszę w odpowiedzi do kolejnego zaczepnego żeby nie powiedzieć chamskiego wpisu gościa o nicku robespiere którego pożegnałem już po kolejnym takim wybryku z forum ..<br /><br />a także celem uzupełnienia mojej powyższej wypowiedzi .... którą pisałem na szybko i oczywiście popełniłem błąd ale nie co do meritum które chciałem pokazać.<br /><br />Tzn oczywiście tak jak na samym początku kolega Zelaota podpowiedział aby inkludować plik nagłówkowy w pliku nagłówkowym - to przecież nie błąd i tak się robi ... chociaż może z tym inkludowaniem &quot;stdint.h&quot; w plikach nagłówkowych to nie zawsze się zgodzę ale wyjaśnię jak i to widzę.<br /><br />Wracając do meritum podtrzymuję co ja bym zrobił - co nie oznacza, że to jest jakiś standard czy wymóg czy cokolwiek.<br /><br />Wyżej pisałem o pliku common.h w którym zdefiniowałbym sobie typ TDATETIME (można byłoby go nazwać nawet np time.h i time.c) wg mnie dla lepszej przejrzystości całego projektu, jeśli ta struktura byłaby wykorzystywana w wielu plikach projektu. Naturalnie (tu był mój błąd pod koniec wypowiedzi) ten plik time.h (czy tak jak wcześniej common.h) trzeba byłoby oczywiście zainkludować nie tylko do plików *.c które korzystają z tego typu ale także w plikach nagłówkowych gdzie ten typ występuje<br /><br />tak poglądowo spróbowałem rozrysować ala graficznie pseudo projekt:<br /><a href="https://obrazkiforum.atnel.pl/54/434b520f669e6c5bc6e8671e1d1b6cf0.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/54/434b520f669e6c5bc6e8671e1d1b6cf0.png" alt="Obrazek" /></a><br /><br />jak widać w korzeniu projektu jest para plików time.h i time.c To w pliku załóżmy biblioteki do karty SD, czyli w sd.h widać inkluda time.h z typem strukturalnym. Gdyby nie to, że typ występuje w argumencie funkcji to można byłoby tego inkluda dać tylko w sd.c gdzie jest ten CZERWONY numerek JEDEN. Ale przez fakt wystąpienia typu w pliku nagłówkowym trzeba jednak inkludować time.h właśnie w pliku sd.h ... ma to tę zaletę, że później już nie trzeba go inkludować w pliku sd.c<br /><br />Krótko mówiąc - moja końcepcja polegała na tym, aby wydzielić taką strukturę i ew specyficzne funkcje tylko do jej obróbki np przeliczania czasu na unixowy czy inne - tylko do logicznej jednostki (pary time.c i time.h) a później korzystać z tego w tych plikach projektu gdzie zajdzie potrzeba<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 7 minutach ]</span></strong><br /><br />co zaś się tyczy inkludowania pliku <br /><br />#include &lt;stdint.h&gt; <br /><br />w plikach nagłówkowych - tzn konieczności tego inkluda albo nie - to proponuję sobie zrobić ciekawy eksperyment i udzielić sobie odpowiedzi, na pytanie <br /><br />dlaczego w takim wypadku początku main.c:<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#include &quot;RTC/pcf8583.h&quot;<br />#include &quot;SD/sd.h&quot;[/syntax]<br /><br />nie trzeba inkludować pliku stdint.h w widocznych tutaj plikach nagłówkowych i kompilacja przechodzi poprawnie ?<br /><br />a dlaczego w takim przypadku początku main.c<br /><br /><br />[syntax=c]#include &quot;RTC/pcf8583.h&quot;<br />#include &quot;SD/sd.h&quot;<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;util/delay.h&gt;[/syntax]<br /><br />kompilator zgłosi błędy, że w plikach nagłówkowych (o ile występuje typ np uint8_t) - to że jest on nieznany i uda się to rozwiązać przez właśnie zainkludowanie stdint.h ???<br /><br />---------------------------<br /><br />Na koniec - czy ja twierdzę, że NIGDY nie należy inkludować plików *.h w innych plikach *.h (co mi tu często zarzucają takie robespiery) ? Oczywiście, że tak nie twierdzę - tylko, że jeśli można tego uniknąć - a zagadka wyżej pokazuje w jak PROSTY sposób uniknąć konieczności inkludowania stdint.h ... co wydaje się OCZYWISTE JAK SŁOŃCE mam nadzieję, ale jeśli nie to proszę dopytać ...- więc jeśli można uniknąć to wolę nie inkludować &quot;na zapas&quot; ... <br /><br />Bo też już nieraz widziałem kody, gdy ktoś &quot;na zapas&quot; - tak na wszelki wypadek inkludował wszystkie pliki systemowe jakie się tylko da bo przecież jeśli będzie ich nadmiar to nic nie szkodzi - jak tłumaczył. Ale niestety w kodzie jak się patrzyło to było (z włoskiego) &quot;burdello bum bum&quot; <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> — 6 cze 2018, o 06:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2018-06-05T21:02:26+01:00</updated>
<published>2018-06-05T21:02:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20834&amp;p=208616#p208616</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20834&amp;p=208616#p208616"/>
<title type="html"><![CDATA[Re: Jak odwołać się do struktury utworzonej w innym pliku?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20834&amp;p=208616#p208616"><![CDATA[
A ja z kolei nigdy bym nie tworzył definicji typu strukturalnego w jakimś pliku specyficznym - związanym np TYLKO z RTC ... jak u ciebie &quot;pcf8583.h&quot;<br /><br />dlaczego ? Ano dlatego, że definicję tegoż typu próbujesz wykorzystywać w innych plikach projektu, które są KOMPLETNIE jakby nie związane z tym plikem RTC ... więc jaki sens ?<br /><br />Absolutnie fajnym sposobem jest np utworzenie w korzeniu projektu pliku np:<br /><br />common.h i common.c<br /><br />i właśnie w common.h zdefiniowanie typu za pomocą typedef, zaś w pliku common.c utworzenie definicji tejże zmiennej<br /><br />a następnie INKLUDOWANIE tam gdzie trzeba czyli w plikach *.c pliku &quot;common.h&quot; oczywiście w logicznej kolejności np gdy tworzysz pliki sdcard.h i sdcard.c to w pliku <br /><br />sdcard.c inkludujesz:<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />// ... itp systemowe<br /><br />#include &quot;common.h&quot;<br /><br />#include &quot;sdcard.h&quot;[/syntax]<br /><br />wtedy nawet jeśli typ będzie występował w &quot;sdcard.h&quot; to będzie normalnie zauważony przez kompilator<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 5 cze 2018, o 21:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xentis]]></name></author>
<updated>2018-06-05T20:36:29+01:00</updated>
<published>2018-06-05T20:36:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20834&amp;p=208612#p208612</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20834&amp;p=208612#p208612"/>
<title type="html"><![CDATA[Re: Jak odwołać się do struktury utworzonej w innym pliku?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20834&amp;p=208612#p208612"><![CDATA[
<div class="quotetitle">janusz17 napisał(a):</div><div class="quotecontent"><br />A czy mógłbyś wyjaśnić po co jeszcze dodawać bibliotekę stdint.h?<br /></div><div class="quotetitle">Zealota napisał(a):</div><div class="quotecontent"><br />Bardzo prosta odpowiedź: bo u mnie nie działało bez <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Brak wpisu skutkuje błędem z nieznanym typem uint8_t.<br /></div><br />Nie trzeba inkludować stdint.h. Problemy z brakiem definicji typu uint8_t jest zapewne spowodowany tym, że w eclipse przy tworzeniu projektu w kreatorze wybrałeś procka bądź zostawiłeś domyślny. Po prostu kreator nie do końca wszystko robi jak trzeba, a wystarczy wejść we właściwości projektu zmienić procka (jeśli był wybrany właściwy w kreatorze to trzeba wybrać inny i zatwierdzić, następnie wrócić i wybrać ponownie właściwy) i zatwierdzić. Dla tego Mirek w poradnikach sugerował by procka i taktowania nie wybierać w kreatorze, ale później ręcznie w ustawieniach projektu po zakończeniu działania kreatora - i tak trzeba tam zajrzeć by ustawić programator...<br />Nie wiem w czym konkretnie tkwi problem ale z tego co Mirek gdzieś kiedyś mówił to kreator nie tworzy kilku parametrów w projekcie, a ustawienie procka i zatwierdzenie powoduje że brakujące rzeczy są uzupełniane.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6265">xentis</a> — 5 cze 2018, o 20:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Zealota]]></name></author>
<updated>2018-06-05T19:36:47+01:00</updated>
<published>2018-06-05T19:36:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20834&amp;p=208609#p208609</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20834&amp;p=208609#p208609"/>
<title type="html"><![CDATA[Re: Jak odwołać się do struktury utworzonej w innym pliku?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20834&amp;p=208609#p208609"><![CDATA[
<div class="quotetitle">janusz17 napisał(a):</div><div class="quotecontent"><br />Bardzo dziękuję za podpowiedź, jakoś nie dotarło do mnie , że w plikach.h też trzeba inkludować inne pliki.h.<br />Dodałem [syntax=c]#include &quot;../PCF8583/pcf8583.h&quot;[/syntax]<br />i wszystko jest ok.<br />A czy mógłbyś wyjaśnić po co jeszcze dodawać bibliotekę stdint.h?<br /></div><br />Bardzo prosta odpowiedź: bo u mnie nie działało bez <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Brak wpisu  skutkuje błędem z nieznanym typem <strong>uint8_t</strong>.<br />Tak prawdopodobnie będzie w całkiem pustym projekcie, jak u mnie, Twój być może ma już więcej plików i definicja przychodzi z innymi plikami nagłówkowymi, lub masz jakieś inne opcje kompilacji, że nawet &quot;tego nie widać&quot;.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=16487">Zealota</a> — 5 cze 2018, o 19:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[janusz17]]></name></author>
<updated>2018-06-05T19:05:16+01:00</updated>
<published>2018-06-05T19:05:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20834&amp;p=208608#p208608</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20834&amp;p=208608#p208608"/>
<title type="html"><![CDATA[Re: Jak odwołać się do struktury utworzonej w innym pliku?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20834&amp;p=208608#p208608"><![CDATA[
Bardzo dziękuję za podpowiedź, jakoś nie dotarło do mnie , że w plikach.h też trzeba inkludować inne pliki.h.<br />Dodałem [syntax=c]#include &quot;../PCF8583/pcf8583.h&quot;[/syntax]<br />i wszystko jest ok.<br />A czy mógłbyś wyjaśnić po co jeszcze dodawać bibliotekę stdint.h?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1226">janusz17</a> — 5 cze 2018, o 19:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Zealota]]></name></author>
<updated>2018-06-05T18:31:07+01:00</updated>
<published>2018-06-05T18:31:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20834&amp;p=208607#p208607</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20834&amp;p=208607#p208607"/>
<title type="html"><![CDATA[Re: Jak odwołać się do struktury utworzonej w innym pliku?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20834&amp;p=208607#p208607"><![CDATA[
A skąd plik time.h może wiedzieć coś o nowym typie?<br />[syntax=c]#ifndef TIME_TIME_H_<br />#define TIME_TIME_H_<br />  <br />void funkcja(TDATETIME *dt, uint8_t x);<br /> <br />#endif /* TIME_TIME_H_ */[/syntax]<br />Ewidentnie brakuje tutaj wpisu<br />[syntax=c]#include &quot;PCF8583/pcf8583.h&quot;[/syntax]<br /><br />To, że dałeś w pliku time.c to jest za mało, a właściwie za dużo, bo wystarczy zainkludować w time.h, a potem time.h w time.c.<br /><br />Do pliku time.h też należy dorzucić:<br />[syntax=c]#include &lt;stdint.h&gt;[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=16487">Zealota</a> — 5 cze 2018, o 18:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[janusz17]]></name></author>
<updated>2018-06-05T18:00:57+01:00</updated>
<published>2018-06-05T18:00:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20834&amp;p=208606#p208606</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20834&amp;p=208606#p208606"/>
<title type="html"><![CDATA[Jak odwołać się do struktury utworzonej w innym pliku?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20834&amp;p=208606#p208606"><![CDATA[
Bardzo proszę o pomoc i podpowiedź dlaczego kompilator nie rozpoznaje typu struktury mimo, że została zadeklarowana ze specyfikatorem extern.<br />Tworzę program, w którym oprócz funkcji main(), mam jeszcze dwa foldery z plikami. <br />Folder PCF8583 zawiera pliki pcf8583.h gdzie zadeklarowałem następującą strukturę:<br />[syntax=c]#ifndef PCF8583_PCF8583_H_<br />#define PCF8583_PCF8583_H_<br /><br /><br />typedef struct {<br />uint8_t ss;<br />uint8_t mm;<br />}TDATETIME;<br /><br />extern TDATETIME datetime;<br /><br /><br /><br /><br />#endif /* PCF8583_PCF8583_H_ */[/syntax]<br />oraz plik pcf8583.c<br />[syntax=c]#include &lt;avr/io.h&gt;<br /><br /><br />#include &quot;../TIME/time.h&quot;<br />#include &quot;pcf8583.h&quot;<br /><br />TDATETIME datetime;[/syntax]<br />Folder TIME zawiera time.h<br />[syntax=c]#ifndef TIME_TIME_H_<br />#define TIME_TIME_H_<br /><br /><br /><br /><br />void funkcja(TDATETIME *dt, uint8_t x);<br /><br />#endif /* TIME_TIME_H_ */[/syntax]<br />oraz time.c<br />[syntax=c]#include &lt;avr/io.h&gt;<br /><br /><br />#include &quot;../PCF8583/pcf8583.h&quot;<br />#include &quot;time.h&quot;<br /><br /><br /><br />void funkcja(TDATETIME *dt, uint8_t x) {<br /><br />}[/syntax]<br />i jeszcze funkcja main()<br />[syntax=c]#include &lt;avr/io.h&gt;<br /><br /><br />#include &quot;PCF8583/pcf8583.h&quot;<br />#include &quot;TIME/time.h&quot;<br /><br /><br /><br />int main(void) {<br /><br /><br />while(1) {<br /><br />}<br />}[/syntax]<br /><br />Jak widać nic specjalnego w tych plikach nie ma, jednak po kompilacji wyskakuje błąd<br />../PCF8583/../TIME/time.h:7:7: error: unknown type name 'TDATETIME'<br /> void funkcja(TDATETIME *dt, uint8_t x);<br />              ^<br />make: *** [PCF8583/pcf8583.o] Błąd 1<br />Nie mogę zrozumieć dlaczego nie rozpoznaje typu struktury mimo dodanego specyfikatora extern.<br /><br />Zamieszczam jeszcze obrazek z rozmieszczenia plików w projekcie.<br /><a href="https://obrazkiforum.atnel.pl/1226/66bef6d8766fce87d009419d7bc39b3a.jpg"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/1226/66bef6d8766fce87d009419d7bc39b3a.jpg" alt="Obrazek" /></a><br />Będę wdzięczny za wszelką pomoc i wyjaśnienie na czym polega błąd.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1226">janusz17</a> — 5 cze 2018, o 18:00</p><hr />
]]></content>
</entry>
</feed>