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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-09-14T23:36:57+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=12940&amp;mode</id>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-09-14T23:36:57+01:00</updated>
<published>2015-09-14T23:36:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12940&amp;p=139854#p139854</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12940&amp;p=139854#p139854"/>
<title type="html"><![CDATA[Re: Problem z odczytem wartości ze struktury poprzez wskaźni]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12940&amp;p=139854#p139854"><![CDATA[
<div class="quotetitle">Konradev2 napisał(a):</div><div class="quotecontent"><br />Dla 1 marca 2016 roku kod oblicza, że jest to Poniedziałek a faktycznie to Wtorek.<br /></div><br />O żesz w mordę! ależ BABOLA znalazłeś <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .... ooo jak dobrze <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> bo od 1-go marca 2016 roku już wszystkie dalej dni są źle obliczane - masakra! <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />ale na szczęście już znalazłem na to lekarstwo!<br /><br />trzeba zmienić tylko ciało funkcji do obliczania dnia tygodnia w ten sposób:<br /><br />[syntax=&quot;c&quot;]<br />uint8_t oblicz_week_day(uint8_t dzien, uint8_t miesiac, uint16_t year) {<br /><br />int Y,C,M,N,D;<br />M=1+(9+miesiac)%12;<br />Y=year-(M&gt;10);<br />C=Y/100;<br />D=Y%100;<br />N=((13*M-1)/5+D+D/4+6*C+dzien+5)%7;<br />return (7+N)%7;<br />}[/syntax]<br /><br />muszę to opublikować na blogu i dać notkę na poradniku wideo ! <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br /><br />dzięki za zgłoszenie tego BABOLA<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 1 minucie ]</span></strong><br /><br /><div class="quotetitle">Konradev2 napisał(a):</div><div class="quotecontent"><br />Czyli mam rozumieć, że nie można operować uin16_t * Problem. na zmiennych typu uint8_t po wczesniejszym przypisaniu ich do tego wskaźnika ?<br /></div><br /><br />Posłuchaj - tak jak mówię, czuję, że nie rozumiesz wskaźników bo czym innym jest rzutowanie na typ wskaźnikowy a czym innym przekazanie zmiennej przez wskaźnik ... tu widzę masz jakiś problem. Podaj lepiej konkretny przykład co np chcesz zrobić - to łatwiej na konkretnym przykładzie będzie mi coś wyjaśnić.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 14 wrz 2015, o 23:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Konradev2]]></name></author>
<updated>2015-09-14T22:50:41+01:00</updated>
<published>2015-09-14T22:50:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12940&amp;p=139851#p139851</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12940&amp;p=139851#p139851"/>
<title type="html"><![CDATA[Re: Problem z odczytem wartości ze struktury poprzez wskaźni]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12940&amp;p=139851#p139851"><![CDATA[
A właśnie Mirku, skoro już piszesz to chciałbym zgłosić błędnie dzialajacy kod do obliczania dnia tygodnia z Twojego poradnika o RTC ( ktory pomogł mi i zainspirował ). Dla 1 marca 2016 roku kod oblicza, że jest to Poniedziałek a faktycznie to Wtorek.<br /><br /><br />Czyli mam rozumieć, że nie można operować uin16_t * Problem.  na zmiennych typu  uint8_t po wczesniejszym przypisaniu ich do tego wskaźnika ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4057">Konradev2</a> — 14 wrz 2015, o 22:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-09-14T22:42:30+01:00</updated>
<published>2015-09-14T22:42:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12940&amp;p=139850#p139850</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12940&amp;p=139850#p139850"/>
<title type="html"><![CDATA[Re: Problem z odczytem wartości ze struktury poprzez wskaźni]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12940&amp;p=139850#p139850"><![CDATA[
<div class="quotetitle">Konradev2 napisał(a):</div><div class="quotecontent"><br />Do funkcji przyjmującej Liczbę int16_t moge przesłać Liczbę int8_t.<br /><br />Przyznam się bez bicia, że myślałem iż ze wskaźnikiem jest tak samo.<br /></div><br /><br />Przyznam, że ja niestety też nie za bardzo rozumiem o co tobie chodzi i pewnie się dlatego nie rozumiemy<br /><br />jak można by było nie móc przesłać liczby uint8_t do funkcji której argumentem jest uint16_t ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> kompletnie nie wiem dlaczego tak sądzisz ...?<br />oczywiście że można - tylko, że ty piszesz o zwykłych typach a na obrazku pokazujesz rzutowanie na typ wskaźnikowy (int16_t *) <br /><br />jednocześnie nie pokazujesz swojego nagłówka funkcji .... sorki ale tak to rzeczywiście ciężko pomóc <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ... musisz jaśniej zadawać pytania i w takim przypadku posłużyć się fragmentem kodu zamieszczonym w poście a nie obrazkiem z eclipsa<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 14 wrz 2015, o 22:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Konradev2]]></name></author>
<updated>2015-09-14T22:36:26+01:00</updated>
<published>2015-09-14T22:36:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12940&amp;p=139849#p139849</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12940&amp;p=139849#p139849"/>
<title type="html"><![CDATA[Re: Problem z odczytem wartości ze struktury poprzez wskaźni]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12940&amp;p=139849#p139849"><![CDATA[
Mirku, cenię sobie wszelkie uwagi i bardzo ludzkie Forum ale chyba źle się zrozumieliśmy,<br /><br />Potrafie operować wskaźnikami,bo fakt bez nich kod wygląda niekiedy fatalnie i zajmuje dużo za dużo miejsca, Ale tutaj zdziwiłem się, ale i to dobre, człowiek uczy się przez całe, życie.<br /><br />Ta UNIWERSALNOŚĆ funkcji ma polegać na tym, że potrafi ona przyjąć Liczbę  int16_t, i jednocześnie bez zwracania niczego ma ona zmodyfikować tą przesłaną Liczbę np. wpisać jej 0 <br /><br /><br />Do funkcji przyjmującej Liczbę int16_t moge przesłać Liczbę int8_t.<br /><br />Przyznam się bez bicia, że myślałem iż ze wskaźnikiem jest tak samo.<br /><br />Do tej uniwersalnej funkcji chciałbym  wysylać liczby z pól struktur i liczby z poza struktur.<br /><br />P.S. Coś ostatnio wszyscy robią zegary :d<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4057">Konradev2</a> — 14 wrz 2015, o 22:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-09-14T19:50:46+01:00</updated>
<published>2015-09-14T19:50:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12940&amp;p=139823#p139823</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12940&amp;p=139823#p139823"/>
<title type="html"><![CDATA[Re: Problem z odczytem wartości ze struktury poprzez wskaźni]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12940&amp;p=139823#p139823"><![CDATA[
<div class="quotetitle">Konradev2 napisał(a):</div><div class="quotecontent"><br />We własciwym użyciu ma to być taka Funkcja, którą potrafi odebrać zmienną typu int16_t i zmodyfikować ją. Dlatego, że w C nie ma referencji, muszę przesłać ją jako wskażnik na int16_t. Funkcja ma być uniwersalna.<br /></div><br />Nie za bardzo widzę związku w tym co piszesz - bo co to za uniwersalność funkcji że ma mieć rzutowanie na typ wskaźnikowy uint16_t ?<br /><br />Raczej mi wynika z tego, że na razie nie do końca albo prawie w ogóle jeszcze nie rozumiesz jak działają wskaźniki i jakie to daje możliwości. A sądzę tak po tym, co piszesz - że dla ciebie jakimś problemem jest to że w C nie ma referencji .... Wskaźniki to dużo więcej niż przekazywanie przez referencję w porównaniu do języków w których nie ma wskaśników więc jak widać na tym etapie próbujesz się dopasować w programowaniu w C do jakiegoś tam innego swojego języka<br /><br />[syntax=c]typededf struct {<br />   uint8_t hh;<br />   uint8_t mm;<br />   uint8_t ss;<br />} TCZAS;<br /><br />TCZAS czas;<br /><br />void fun( TCZAS czas );[/syntax]<br /><br /><br />a ciało funkcji np:<br /><br />[syntax=c]void fun( TCZAS * czas ) {<br /><br />   czas-&gt;hh = 23;<br />   czas-&gt;mm = 12;<br />   czas-&gt;ss = 53;<br /><br />}[/syntax]<br /><br />to tylko jedna z miliona możliwości bo np .... dzięki wskaźnikom można robić jeszcze może mniej czytelne dla początkującego ale nawet takie rzeczy: <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />[syntax=c]void fun( uint8_t * dane ) {<br /><br />   *dane = 23;<br />   *(dane+1) = 12;<br />   *(dane+2) = 53;<br /><br />}[/syntax]<br /><br />a później w kodzie wywołać to tak:<br /><br />[syntax=c]fun( uint8_t * czas );[/syntax]<br /><br /><br />albo jeszcze inne ciało funkcji<br /><br /><br />[syntax=c]void fun( uint8_t * dane ) {<br /><br />   dane&#91;0&#93; = 23;<br />   dane&#91;1&#93; = 12;<br />   dane&#91;2&#93; = 53;<br /><br />}[/syntax]<br /><br /><br />albo jakbym się uparł to i nawet tak (ale uprzedam to już bezsens totalny - pokazuję tylko, że w C dzięki wskaźnikom można WSZYSTKO - rozumiesz? ) <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />[syntax=c]void fun( uint16_t * dane ) {<br /><br />   *dane = (23&lt;&lt;8) | 12;<br />   *(dane+1) = (*(dane+1) &amp; 0x00ff) | (53&lt;&lt;8);<br /><br />}[/syntax]<br />(dziwnie wygląda co ?) <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />i później można by to wywołać tak jak masz w kodzie czyli<br /><br />[syntax=c]fun( (uint16_t *) czas );[/syntax]<br /><br />ale uwaga - NIE RÓB TAK przypadkiem <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> bo to kompletna BZDURA pomimo że może działać, tyle, że jeden mały błąd w ciele tej funkcji (a że nie znasz wskaźników to niechybnie byś go popełnił) i nie pozbierasz się, jak ci zacznie program fikołki wyprawiać.<br /><br />Reasumując - jeśli chcesz szybciej i wydajniej zacząć pracować w C to postaraj się oderwać od nawyków poprzedniego języka którego używasz może do innych celów i powoli zacznij myśleć w C. A żeby to zrobić ćwicz jak najwięcej wskaźniki i staraj się je zrozumieć. Bo jak zaskoczysz - to zobaczysz, że będziesz miał tak jak ja - <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> że teraz jak zabieram się za programowanie czegoś na PC w moim Delphi to pluję sobie w brodę że tam nie ma połowy tych mechanizmów co mam w C na prockach <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> — 14 wrz 2015, o 19:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Konradev2]]></name></author>
<updated>2015-09-14T17:34:30+01:00</updated>
<published>2015-09-14T17:34:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12940&amp;p=139816#p139816</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12940&amp;p=139816#p139816"/>
<title type="html"><![CDATA[Re: Problem z odczytem wartości ze struktury poprzez wskaźni]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12940&amp;p=139816#p139816"><![CDATA[
Mirku, ta Funkcja_testowa jest tylko do podglądania czy nie dzieją się jakieś krzaki.  <br /><br />We własciwym użyciu ma to być taka Funkcja, którą  potrafi odebrać zmienną typu int16_t i zmodyfikować ją. Dlatego, że w C nie ma  referencji, muszę  przesłać ją jako wskażnik na int16_t. Funkcja ma być uniwersalna.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4057">Konradev2</a> — 14 wrz 2015, o 17:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-09-14T17:10:07+01:00</updated>
<published>2015-09-14T17:10:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12940&amp;p=139814#p139814</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12940&amp;p=139814#p139814"/>
<title type="html"><![CDATA[Re: Problem z odczytem wartości ze struktury poprzez wskaźni]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12940&amp;p=139814#p139814"><![CDATA[
No zobacz jakiego typu masz elementy w strukturze ? 8-bitowe tak ? więc jeśli chcesz miziać je za pomocą indeksów 8-bitowych to zmień rzutowanie na 8-bitowe jawne rzutowanie zamiast 16-bitowego<br /><br />ale z drugiej strony zastanawiam się po co takie sztuczki masz czynić skoro można przekazać do funkcji typ strukturalny - tyle że ty w tym zrzucie ekanu jak widać, najpierw dobrze zacząłeś i zdefiniowałeś sobie typ strukturalny Czas_t; ale później go bez sensu zakomentowałeś i stworzyłeś czystą strukturę w pamięci, wtedy co ? brak typu<br /><br />A tak mógłbyś przekazać do funkcji argument tego typu<br /><br />fun( Czas_t * czas);<br /><br />i w funkcji odwoływać się do pól<br /><br />czas-&gt;minuty<br />czas-_godziny<br /><br />itp<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 14 wrz 2015, o 17:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Konradev2]]></name></author>
<updated>2015-09-14T17:01:48+01:00</updated>
<published>2015-09-14T17:01:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12940&amp;p=139813#p139813</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12940&amp;p=139813#p139813"/>
<title type="html"><![CDATA[Re: Problem z odczytem wartości ze struktury poprzez wskaźni]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12940&amp;p=139813#p139813"><![CDATA[
Jak to Mirku zrobić fachowo?<br /><br />Myślałem, że jak można rzutować liczbę 8 bitową na 16 bitową tak samo można postąpić ze wskaźnikem. <br /><br />Ciekaw jestem jak przekazać tą wartość zachowując uniwersalność funkcji.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4057">Konradev2</a> — 14 wrz 2015, o 17:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-09-14T16:20:59+01:00</updated>
<published>2015-09-14T16:20:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12940&amp;p=139812#p139812</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12940&amp;p=139812#p139812"/>
<title type="html"><![CDATA[Re: Problem z odczytem wartości ze struktury poprzez wskaźni]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12940&amp;p=139812#p139812"><![CDATA[
A czy ty wiesz co ty robisz rzutując jawnie na typ wskaźnikowy (uint16_t *) swoją strukturę w której masz wartości 8-bitowe ? .... toż sam na własne życzenie robisz sobie masakrę <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 14 wrz 2015, o 16:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Konradev2]]></name></author>
<updated>2015-09-14T16:10:15+01:00</updated>
<published>2015-09-14T16:10:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12940&amp;p=139811#p139811</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12940&amp;p=139811#p139811"/>
<title type="html"><![CDATA[Problem z odczytem wartości ze struktury poprzez wskaźnik.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12940&amp;p=139811#p139811"><![CDATA[
Witam. Posiadam taki oto problem.<br /><br />Próba odczytu wartości poprzez wskaźnik daje czasami zawyżoną wartość o 256 <img src="https://forum.atnel.pl/images/smilies/icon_eek.gif" alt=":shock:" title="Zaszokowany" /> <br /><br />W przerwaniach nie korzystam z tych zmiennych.<br /><br /><a href="https://obrazkiforum.atnel.pl/4057/18f84233974b5ca46176108a742bc5f2.jpg"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/4057/18f84233974b5ca46176108a742bc5f2.jpg" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4057">Konradev2</a> — 14 wrz 2015, o 16:10</p><hr />
]]></content>
</entry>
</feed>