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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-09-27T20:58:20+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=13063&amp;mode</id>
<entry>
<author><name><![CDATA[Jarcio]]></name></author>
<updated>2015-09-27T20:58:20+01:00</updated>
<published>2015-09-27T20:58:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13063&amp;p=140905#p140905</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13063&amp;p=140905#p140905"/>
<title type="html"><![CDATA[Re: problem z rozpoznaniem typu zmiennej w pliku *.h]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13063&amp;p=140905#p140905"><![CDATA[
Doczytałem w BB.<br />Ponieważ funkcja menu_czas_wyswietl (...) jest funkcją wewnętrzną modułu to nie musi występować w pliku nagłówkowym ponieważ jej nie udostępniamy dla innych modułów.<br />Podanie jej deklaracji na pliku menu_czas.c rozwiązuje problem.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10579">Jarcio</a> — 27 wrz 2015, o 20:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-09-27T16:39:19+01:00</updated>
<published>2015-09-27T16:39:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13063&amp;p=140865#p140865</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13063&amp;p=140865#p140865"/>
<title type="html"><![CDATA[Re: problem z rozpoznaniem typu zmiennej w pliku *.h]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13063&amp;p=140865#p140865"><![CDATA[
Przede wszystkim to wróć do Bluebooka (bo widzę że go masz) i poczytaj o podziale projektu na pliki, <br /><br />Po drugie - skoro masz swój typ CAS_t w pliku czas.h to jakim cudem chcesz żeby on był widziany w pliku menu_czas.h jeśli go tam nie zainkludujesz ?<br /><br /><div class="quotetitle">Jarcio napisał(a):</div><div class="quotecontent"><br />Przeniesienie funkcji menu_czas_wyswietl (...) do modułu czas problem rozwiązuje.<br /></div><br /><br />Jeszcze raz - pamiętaj nowy TYP MUSI być widoczny wszędzie tam gdzie go próbujesz użyć - czyli wszędzie musisz zainkludować plik nagłówkowy w którym tej definicji typu dokonałeś ....<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 27 wrz 2015, o 16:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ps19]]></name></author>
<updated>2015-09-27T16:35:39+01:00</updated>
<published>2015-09-27T16:35:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13063&amp;p=140864#p140864</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13063&amp;p=140864#p140864"/>
<title type="html"><![CDATA[Re: problem z rozpoznaniem typu zmiennej w pliku *.h]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13063&amp;p=140864#p140864"><![CDATA[
Sprawdź to:<br /><br />[syntax=c]// plik menu_czas.h<br />//struktura do określania czasu<br />typedef struct  {<br />                        uint8_t godz;  // godzina<br />                        uint8_t min;   // minuta<br />                        uint8_t sek;   // sekunda<br />                     } strukturka;<br /><br />extern strukturka CZAS_t;<br /><br />void menu_czas_wyswietl (CZAS_t *czas, uint8_t pozycja, bool wyswietlaj_sekundy);<br /> <br />//plik menu_czas.c<br />#include &quot;czas.h&quot;<br /><br />strukturka CZAS_t;<br /><br />void menu_czas_wyswietl (CZAS_t *czas, uint8_t pozycja, bool wyswietlaj_sekundy)<br />{<br />   // tu coś sobie robimy<br />}[/syntax]<br /><br />Kod wstawiaj jako &quot;[syntax=c]&quot; nie &quot;[code]&quot;<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=230">ps19</a> — 27 wrz 2015, o 16:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jarcio]]></name></author>
<updated>2015-09-27T15:13:09+01:00</updated>
<published>2015-09-27T15:13:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13063&amp;p=140855#p140855</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13063&amp;p=140855#p140855"/>
<title type="html"><![CDATA[problem z rozpoznaniem typu zmiennej w pliku *.h]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13063&amp;p=140855#p140855"><![CDATA[
Witam<br />Podczas pisania kodu napotkałem problem z rozpoznaniem typy zmiennej w pliku *.h<br />Otóż mam dwa modułu czas i menu_czas. Pierwszy zawiera podstawowe funkcje do obsługi czasu, drugi jest modułem wyższego poziomu i zawiera funkcje do ustawiania czasu w menu.<br />Poniżej wyciąg z nich:<br />[syntax=c]// plik czas. h<br /><br />//struktura do określania czasu<br />typedef struct  {<br />                        uint8_t godz;  // godzina<br />                        uint8_t min;   // minuta<br />                        uint8_t sek;   // sekunda<br />     } CZAS_t;<br /><br /><br />// plik menu_czas.h<br />void menu_czas_wyswietl (CZAS_t *czas, uint8_t pozycja, bool wyswietlaj_sekundy);<br /><br />//plik menu_czas.c<br />#include &quot;czas.h&quot;<br />void menu_czas_wyswietl (CZAS_t *czas, uint8_t pozycja, bool wyswietlaj_sekundy)<br />{<br />   // tu coś sobie robimy<br />}[/syntax]<br />To co otrzymuje w wyniku kompilacji to jest błąd pokazany poniżej. Kompilator ewidentnie nie rozpoznaje typu CZAS_t w pliku menu_czas.h. Pewno trzeba gdzieś dopisać jakiś extern. Tylko jak to zrobić w sposób prawidłowy ?<br />[syntax=c]make all <br />'Building file: ../Temp/temp.c'<br />'Invoking: AVR Compiler'<br />avr-gcc -Wall -Os -fpack-struct -fshort-enums -ffunction-sections -fdata-sections -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega32 -DF_CPU=11059200UL -MMD -MP -MF&quot;Temp/temp.d&quot; -MT&quot;Temp/temp.d&quot; -c -o &quot;Temp/temp.o&quot; &quot;../Temp/temp.c&quot;<br />'Finished building: ../Temp/temp.c'<br />' '<br />'Building file: ../Menu/menu.c'<br />'Invoking: AVR Compiler'<br />avr-gcc -Wall -Os -fpack-struct -fshort-enums -ffunction-sections -fdata-sections -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega32 -DF_CPU=11059200UL -MMD -MP -MF&quot;Menu/menu.d&quot; -MT&quot;Menu/menu.d&quot; -c -o &quot;Menu/menu.o&quot; &quot;../Menu/menu.c&quot;<br />In file included from ../Menu/menu.c:16:0:<br />../Menu/menu_czas.h:22:26: error: unknown type name 'CZAS_t'<br /> void menu_czas_wyswietl (CZAS_t *czas, uint8_t pozycja, bool wyswietlaj_sekundy);<br />                          ^<br />make: *** &#91;Menu/menu.o&#93; Błąd 1[/syntax]<br />Przeniesienie funkcji menu_czas_wyswietl (...) do modułu czas problem rozwiązuje. Tylko że ona mi tam za bardzo nie pasuje. Funkcjonalnie bardziej jest w menu_czas, ponieważ służy do wyświetlania czasu na LCD podczas jego ustawiania w menu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10579">Jarcio</a> — 27 wrz 2015, o 15:13</p><hr />
]]></content>
</entry>
</feed>