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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2012-07-21T22:46:01+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=1283&amp;mode</id>
<entry>
<author><name><![CDATA[szopler]]></name></author>
<updated>2012-07-21T22:25:58+01:00</updated>
<published>2012-07-21T22:25:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1283&amp;p=10464#p10464</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1283&amp;p=10464#p10464"/>
<title type="html"><![CDATA[Re: Przekazanie przez wskaźnik powoduje błąd...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1283&amp;p=10464#p10464"><![CDATA[
Nie rozumiem dlaczego teraz mam błędy:<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">incompatible type for argument 1 of 'ds1307_getTime'<br />incompatible type for argument 1 of 'ds1307_getDate'</div><br />[syntax=c]void RTC_READ(volatile Time *wskaz)<br />{<br />if (_FLAGA.Read_RTC != 0)<br />{<br />ds1307_getTime(*wskaz); // Tu wyrzuca błąd<br />ds1307_getDate(*wskaz); // Tu wyrzuca błąd<br /><br />_FLAGA.Read_RTC = 0;// Zerowanie flagi<br />}<br />}[/syntax]<br />Gdy funkcje _get wyglądają tak:<br />[syntax=c]//void ds1307_getTime(uint8_t *h, uint8_t *m, uint8_t *s)<br />void ds1307_getTime(volatile Time *wskaznik)<br />{<br />uint8_t tmp,sec,min,hour;<br /><br />tmp=ds1307_readByte(0x00)&amp;0x7f;<br />sec=tmp&amp;0x0f;<br />sec+=(tmp&gt;&gt;4)*10;<br />(*wskaznik).s = sec;<br /><br />tmp=ds1307_readByte(0x01);<br />min=tmp&amp;0x0f;<br />min+=(tmp&gt;&gt;4)*10;<br />(*wskaznik).m = min;<br /><br />tmp=ds1307_readByte(0x02)&amp;0x3f;<br />hour=tmp&amp;0x0f;<br />hour+=(tmp&gt;&gt;4)*10;<br />(*wskaznik).H = hour;<br />}<br /> <br />//void ds1307_getDate(uint8_t *d, uint8_t *m, uint8_t *y, uint8_t *D){<br />void ds1307_getDate(volatile Time *wskaznik)<br />{<br />uint8_t tmp,day,month,year,dayofweek;<br /><br />tmp=ds1307_readByte(0x03);<br />dayofweek=tmp;<br />(*wskaznik).DoW = dayofweek;<br /><br />tmp=ds1307_readByte(0x04);<br />day=tmp&amp;0x0f;<br />day+=(tmp&gt;&gt;4)*10;<br />(*wskaznik).D = day;<br /><br />tmp=ds1307_readByte(0x05);<br />month=tmp&amp;0x0f;<br />month+=(tmp&gt;&gt;4)*10;<br />(*wskaznik).M = month;<br /><br />tmp=ds1307_readByte(0x06);<br />year=tmp&amp;0x0f;<br />year+=(tmp&gt;&gt;4)*10;<br />(*wskaznik).Y = year;<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=82">szopler</a> — 21 lip 2012, o 22:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-07-21T22:03:01+01:00</updated>
<published>2012-07-21T22:03:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1283&amp;p=10460#p10460</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1283&amp;p=10460#p10460"/>
<title type="html"><![CDATA[Re: Przekazanie przez wskaźnik powoduje błąd...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1283&amp;p=10460#p10460"><![CDATA[
<div class="quotetitle">szopler napisał(a):</div><div class="quotecontent"><br />To jest możliwe jeżeli zadeklaruję RTC_Time tak:<br /><br />volatile Time RTC_Time;<br /></div><br /><br />Ale to przepraszam - kalambury robisz? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> napiszesz kawałek w pytaniu a reszty mamy się sami domyśleć i podać właściwą odpowiedź ??? Nie tędy droga. Zawsze powtarzam proszę bardziej precyzować pytania to będą dwie korzyści:<br /><br />1. szybciej ktoś odpowie i pomoże<br />2. mniej czasu stracimy wspólnie na dojście do problemu<br /><br />a teraz do meritum:<br /><br />jeśli dajesz:<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">volatile Time RTC_Time;</div><br /><br />to panie kochany zdeklaruj później odpowiednio z tym funkcję:<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">void READ_RTC( volatile Time * wskaźnik );</div><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 21 lip 2012, o 22:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[szopler]]></name></author>
<updated>2012-07-21T22:46:01+01:00</updated>
<published>2012-07-21T20:28:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1283&amp;p=10453#p10453</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1283&amp;p=10453#p10453"/>
<title type="html"><![CDATA[Re: Przekazanie przez wskaźnik powoduje błąd...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1283&amp;p=10453#p10453"><![CDATA[
1) To jest możliwe jeżeli zadeklaruję RTC_Time tak:<br />volatile Time RTC_Time;<br /><br />2) Jak to powinno wyglądać tutaj, bo już skrętu dostaję... co nie wpiszę to błąd np. &quot;request for member 's' in something not a structure or union&quot;:<br />[syntax=c]void ds1307_getTime(Time *wskaznik)<br />{<br />uint8_t tmp,sec,min,hour;<br /><br />tmp=ds1307_readByte(0x00)&amp;0x7f;<br />sec=tmp&amp;0x0f;<br />sec+=(tmp&gt;&gt;4)*10;<br /><br />*(wskaznik-&gt;s) = sec; // ??<br /><br />tmp=ds1307_readByte(0x01);<br />min=tmp&amp;0x0f;<br />min+=(tmp&gt;&gt;4)*10;<br /><br />*wskaznik-&gt;m = min; // ??<br /><br />tmp=ds1307_readByte(0x02)&amp;0x3f;<br />hour=tmp&amp;0x0f;<br />hour+=(tmp&gt;&gt;4)*10;<br /><br />*wskaznik-&gt;H = hour; // ??<br />}[/syntax]<br /><br />Czyżby... (*wskaznik).s = sec; ?!<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=82">szopler</a> — 21 lip 2012, o 20:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-07-21T19:22:56+01:00</updated>
<published>2012-07-21T19:22:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1283&amp;p=10446#p10446</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1283&amp;p=10446#p10446"/>
<title type="html"><![CDATA[Re: Przekazanie przez wskaźnik powoduje błąd...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1283&amp;p=10446#p10446"><![CDATA[
<div class="quotetitle">szopler napisał(a):</div><div class="quotecontent"><br />Bo tak jak podałeś:<br />[syntax=c]RTC_READ( &amp;RTC_Time );[/syntax]<br />wywołuje błąd w stylu &quot;passing argument 1 of 'RTC_READ' discards qualifiers from pointer target type&quot;.<br /></div><br /><br />Tego co dalej już nie będę nawet rozpatrywał ale strasznie coś kręcisz, na prawdę;)<br /><br />posłuchaj uważnie i sobie to przetestuj, jeśli masz zdefiniowany typ strukturalny <strong><span style="color: #0040FF">Time</span></strong>, następnie masz zmienną tego typu czyli strukturę<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">Time RTC_Time;</div><br /><br />oraz funkcję:<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">void RTC_READ(Time *wskaznik) {<br />   <br />}</div><br /><br />to nie ma możliwości żeby przy wywołaniu teh funkcji w kodzie w ten sposób:<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">RTC_READ( &amp;RTC_Time );</div><br /><br />pokazywał się warning o jakim piszesz ponieważ argument funkcji jest dokładnie takiego typu jak adres przekazywanej zmiennej czyli wskaźnik<br /><br />Tylko nie udowadniaj mi że u ciebie jest inaczej <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> bo nie jest - coś źle robisz, coś namieszałeś coś gdzieś pomyliłeś - to MUSI działać poprawnie bo jest zgodnie syntaktycznie. I nie ma że boli. Zamiast więc szukać kolejnego lekarstwa i sposobów na ominięcie tego - dojdź co źle robisz - bo mówię już się sam zakręcił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> — 21 lip 2012, o 19:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[szopler]]></name></author>
<updated>2012-07-21T20:29:26+01:00</updated>
<published>2012-07-21T15:27:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1283&amp;p=10433#p10433</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1283&amp;p=10433#p10433"/>
<title type="html"><![CDATA[Re: Przekazanie przez wskaźnik powoduje błąd...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1283&amp;p=10433#p10433"><![CDATA[
Bo tak jak podałeś:<br />[syntax=c]RTC_READ( &amp;RTC_Time );[/syntax]<br />wywołuje błąd w stylu &quot;passing argument 1 of 'RTC_READ' discards qualifiers from pointer target type&quot;.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=82">szopler</a> — 21 lip 2012, o 15:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-07-21T15:09:48+01:00</updated>
<published>2012-07-21T15:09:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1283&amp;p=10432#p10432</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1283&amp;p=10432#p10432"/>
<title type="html"><![CDATA[Re: Przekazanie przez wskaźnik powoduje błąd...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1283&amp;p=10432#p10432"><![CDATA[
<div class="quotetitle">szopler napisał(a):</div><div class="quotecontent"><br />Jakiś większy HINT ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /></div><br /><br />Jakieś bardziej precyzyjne pytanie ? bo nie rozumiem o co chodzi - pytanie było krótkie to i odpowiedź krótka.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: kilkunastu sekundach ]</span></strong><br /><br />a po co tak:<br /><br />RTC_READ((Time*)&amp;RTC_Time);<br /><br />skoro masz deklarację funkcji tak:<br /><br />void RTC_READ(Time *wskaznik)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 21 lip 2012, o 15:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[szopler]]></name></author>
<updated>2012-07-21T15:29:42+01:00</updated>
<published>2012-07-21T14:56:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1283&amp;p=10430#p10430</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1283&amp;p=10430#p10430"/>
<title type="html"><![CDATA[Re: Przekazanie przez wskaźnik powoduje błąd...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1283&amp;p=10430#p10430"><![CDATA[
Jakiś większy HINT* ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />* - podpowiedź<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=82">szopler</a> — 21 lip 2012, o 14:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-07-21T14:47:46+01:00</updated>
<published>2012-07-21T14:47:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1283&amp;p=10428#p10428</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1283&amp;p=10428#p10428"/>
<title type="html"><![CDATA[Re: Przekazanie przez wskaźnik powoduje błąd...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1283&amp;p=10428#p10428"><![CDATA[
RTC_READ( &amp;RTC_Time );<br /><br />Tylko że ty się niedługo przewskaźnikujesz <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> już ktoś chyba wyżej podpowiedział - jeśli to zmienna globalna to nie do końca jest sens słania tego w ogóle w postaci argumentów, wskaźników, wskaźników do wskaźników itd<br /><br />ale żeby poćwiczyć wskaźniki to OK <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> — 21 lip 2012, o 14:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[szopler]]></name></author>
<updated>2012-07-21T14:31:17+01:00</updated>
<published>2012-07-21T14:31:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1283&amp;p=10427#p10427</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1283&amp;p=10427#p10427"/>
<title type="html"><![CDATA[Re: Przekazanie przez wskaźnik powoduje błąd...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1283&amp;p=10427#p10427"><![CDATA[
1) Jak to zrobić?<br /><br />2) Teraz chciałbym jeszcze bardziej zamotać... i ta sama funkcja miała by umożliwiać odczyt czasu do więcej niż jednej zmiennej typu Time:<br />[syntax=c]typedef struct {<br />u08 Y, M, D, DoW, H, m, s; // Y-ear, M-onth, D-ay, DoW-Day of Week, H-our, m-inute, s-econd<br />} Time;<br /><br />Time RTC_Time;<br />Time Another_Time;[/syntax]<br />[syntax=c]void RTC_READ(*jakis_wskaznik)<br />{<br />if (_FLAGA.Read_RTC != 0)<br />{<br />ds1307_getTime((u08*)&amp;RTC_Time.H, (u08*)&amp;RTC_Time.m, (u08*)&amp;RTC_Time.s); //Modyfikacja linii żeby czytało do wskazanej zmiennej<br />ds1307_getDate((u08*)&amp;RTC_Time.D, (u08*)&amp;RTC_Time.M, (u08*)&amp;RTC_Time.Y, (u08*)&amp;RTC_Time.DoW);<br /><br />_FLAGA.Read_RTC = 0;// Zerowanie flagi<br />}<br />}[/syntax]<br /><br />Hmm... to chyba będzie coś takiego:<br />[syntax=c]void RTC_READ(Time *wskaznik)<br />{<br />if (_FLAGA.Read_RTC != 0)<br />{<br />ds1307_getTime(&amp;wskaznik-&gt;H,&amp;wskaznik-&gt;m,&amp;wskaznik-&gt;s);<br />//ds1307_getDate((u08*)&amp;RTC_Time.D, (u08*)&amp;RTC_Time.M, (u08*)&amp;RTC_Time.Y, (u08*)&amp;RTC_Time.DoW);<br /><br />_FLAGA.Read_RTC = 0;// Zerowanie flagi<br />}<br />}[/syntax]<br />Tylko teraz jak prawidłowo wywołać funkcję...<br />RTC_READ(...?...);<br /><br />Chyba mam <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />RTC_READ((Time*)&amp;RTC_Time);<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=82">szopler</a> — 21 lip 2012, o 14:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mikandrzej]]></name></author>
<updated>2012-07-16T13:48:35+01:00</updated>
<published>2012-07-16T13:48:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1283&amp;p=9954#p9954</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1283&amp;p=9954#p9954"/>
<title type="html"><![CDATA[Odp: Przekazanie przez wskaźnik powoduje błąd...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1283&amp;p=9954#p9954"><![CDATA[
A w sumie nie lepiej byloby przesylac cala klase, a nie poszczegolne jej pola? W sensie przekazac wskaznik do klasy, a w funkcji juz sobie to rozbijac na poszczegolne pola?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=431">mikandrzej</a> — 16 lip 2012, o 13:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2012-07-16T13:40:20+01:00</updated>
<published>2012-07-16T13:40:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1283&amp;p=9952#p9952</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1283&amp;p=9952#p9952"/>
<title type="html"><![CDATA[Re: Przekazanie przez wskaźnik powoduje błąd...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1283&amp;p=9952#p9952"><![CDATA[
A zmienna RTC_Time nie jest przypadkiem zmienną globalną? <br />Jeśli tak to możesz wywołać funkcję bez argumentów, bo zmienna globalna jest dostępna dla wszystkich funkcji.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 2 minutach ]</span></strong><br /><br /><div class="quotetitle">mikandrzej napisał(a):</div><div class="quotecontent"><br />Chodzi o to, żeby zmienić wartość tych zmiennych, a nie przekazać je tylko do funkcji <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Do tego właśnie służą wskaźniki<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: kilkunastu sekundach ]</span></strong><br /><br />Post, na który odpowiedziałem zniknął <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><br /></div><br />Przepraszam, ale sam go usunąłem, bo były tam tylko przypuszczenia, a nie fakty.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 16 lip 2012, o 13:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[szopler]]></name></author>
<updated>2012-07-16T13:35:50+01:00</updated>
<published>2012-07-16T13:35:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1283&amp;p=9951#p9951</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1283&amp;p=9951#p9951"/>
<title type="html"><![CDATA[Re: Przekazanie przez wskaźnik powoduje błąd...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1283&amp;p=9951#p9951"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />...<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">ds1307_getTime( (uint8_t*)&amp;RTC_Time.H, (uint8_t*)&amp;RTC_Time.m, (uint8_t*)&amp;RTC_Time.s);</div><br />...<br /></div><br /><br />No tak znów czegoś zapomniałem - gwiazdki <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br />Próbowałem pisać np.:<br />[syntax=c](uint8_t)&amp;RTC_Time.H[/syntax]<br />i się dziwiłem, że nadal jest warning... <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=82">szopler</a> — 16 lip 2012, o 13:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mikandrzej]]></name></author>
<updated>2012-07-16T13:24:31+01:00</updated>
<published>2012-07-16T13:24:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1283&amp;p=9947#p9947</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1283&amp;p=9947#p9947"/>
<title type="html"><![CDATA[Re: Przekazanie przez wskaźnik powoduje błąd...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1283&amp;p=9947#p9947"><![CDATA[
Chodzi o to, żeby zmienić wartość tych zmiennych, a nie przekazać je tylko do funkcji <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Do tego właśnie służą wskaźniki<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: kilkunastu sekundach ]</span></strong><br /><br />Post, na który odpowiedziałem zniknął <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=431">mikandrzej</a> — 16 lip 2012, o 13:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-07-16T12:59:47+01:00</updated>
<published>2012-07-16T12:59:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1283&amp;p=9943#p9943</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1283&amp;p=9943#p9943"/>
<title type="html"><![CDATA[Re: Przekazanie przez wskaźnik powoduje błąd...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1283&amp;p=9943#p9943"><![CDATA[
Proszę starać się pisać bardziej precyzyjnie. To co kolega dostaje to nie błędy a warningi. Ale bardzo dobrze że kolega z drugiej strony traktuje je jak błędy <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />więc tak deklaracja funkcji jest taka:<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">void ds1307_getTime(uint8_t *h, uint8_t *m, uint8_t *s);</div><br /><br />zatem argumenty mają być typu wskaźnika o typie uint8_t a co kolega przekazuje do funkcji ????<br /><br />adres do zmiennej typu Time - więc jak może nie być warninga ??? dobrze że jest - kompilator nie jest pewien czy aby się autor nie pomylił - a jeśli się nie pomylił to niech ten autor sam jawnie powie mu to wyraźnie. Jak to powiedzieć kompilatorowi ? Ano poprzez jawne rzutowanie typu czyli:<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">ds1307_getTime( (uint8_t*)&amp;RTC_Time.H, (uint8_t*)&amp;RTC_Time.m, (uint8_t*)&amp;RTC_Time.s);</div><br /><br />teraz kompilator już będzie wiedział że typ wskaźnikowy Time ma rzutować na typ wskaźnikowy uint8_t bo autor dokładnie wie co robi i że odwołuje się do poszczególnych zmiennych w tej strukturze <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> — 16 lip 2012, o 12:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[szopler]]></name></author>
<updated>2012-07-16T12:23:37+01:00</updated>
<published>2012-07-16T12:23:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1283&amp;p=9936#p9936</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1283&amp;p=9936#p9936"/>
<title type="html"><![CDATA[Przekazanie przez wskaźnik powoduje błąd...]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1283&amp;p=9936#p9936"><![CDATA[
Utworzyłem nowy typ:<br />[syntax=c]typedef struct {<br />uint8_t Y, M, D, DoW, H, m, s; // Y-ear, M-onth, D-ay, DoW-Day of Week, H-our, m-inute, s-econd<br />} Time;[/syntax]<br />oraz nową zmienną:<br />[syntax=c]volatile TimeRTC_Time;[/syntax]<br />Teraz chcę wykonać:<br />[syntax=c]ds1307_init();<br />ds1307_getTime(&amp;RTC_Time.H, &amp;RTC_Time.m, &amp;RTC_Time.s);<br />ds1307_getDate(&amp;RTC_Time.D, &amp;RTC_Time.M, &amp;RTC_Time.Y, &amp;RTC_Time.DoW);[/syntax]<br />Dostaję błędy:<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">Description   Resource   Path   Location   Type<br />passing argument 3 of 'ds1307_getDate' discards qualifiers from pointer target type   main.c<br />passing argument 2 of 'ds1307_getDate' discards qualifiers from pointer target type   main.c<br />passing argument 4 of 'ds1307_getDate' discards qualifiers from pointer target type   main.c<br />passing argument 2 of 'ds1307_getTime' discards qualifiers from pointer target type   main.c<br />passing argument 1 of 'ds1307_getTime' discards qualifiers from pointer target type   main.c<br />passing argument 1 of 'ds1307_getDate' discards qualifiers from pointer target type   main.c<br />passing argument 3 of 'ds1307_getTime' discards qualifiers from pointer target type   main.c<br /></div><br />Funkcje _get wyglądają tak:<br />[syntax=c]void ds1307_getTime(uint8_t *h, uint8_t *m, uint8_t *s){<br />uint8_t tmp;<br />tmp=ds1307_readByte(0x00)&amp;0x7f;<br />*s=tmp&amp;0x0f;<br />*s+=(tmp&gt;&gt;4)*10;<br />tmp=ds1307_readByte(0x01);<br />*m=tmp&amp;0x0f;<br />*m+=(tmp&gt;&gt;4)*10;<br />tmp=ds1307_readByte(0x02)&amp;0x3f;<br />*h=tmp&amp;0x0f;<br />*h+=(tmp&gt;&gt;4)*10;<br />}<br /> <br />void ds1307_getDate(uint8_t *d, uint8_t *m, uint8_t *y, uint8_t *D){<br />uint8_t tmp;<br />tmp=ds1307_readByte(0x03);<br />*D=tmp;<br />tmp=ds1307_readByte(0x04);<br />*d=tmp&amp;0x0f;<br />*d+=(tmp&gt;&gt;4)*10;<br />tmp=ds1307_readByte(0x05);<br />*m=tmp&amp;0x0f;<br />*m+=(tmp&gt;&gt;4)*10;<br />tmp=ds1307_readByte(0x06);<br />*y=tmp&amp;0x0f;<br />*y+=(tmp&gt;&gt;4)*10;<br />}[/syntax]<br />Co z tym począć?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=82">szopler</a> — 16 lip 2012, o 12:23</p><hr />
]]></content>
</entry>
</feed>