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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-01-31T23:20:57+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=17495&amp;mode</id>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2017-01-31T23:20:57+01:00</updated>
<published>2017-01-31T23:20:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17495&amp;p=181361#p181361</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17495&amp;p=181361#p181361"/>
<title type="html"><![CDATA[Re: Przekazanie struktury do funkcji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17495&amp;p=181361#p181361"><![CDATA[
<div class="quotetitle">nariox napisał(a):</div><div class="quotecontent"><br />Czy tutaj jedynym wyjściem jest napisanie dwóch osobnych funkcji wysyłających dla tych pól bitowych?<br /></div><br />Nie. Stosując unię można ten sam obszar pamięci interpretować na różne sposoby:<br />[syntax=c]typedef union {<br />struct __attribute__((packed)){<br />uint8_t valve1 : 1;<br />uint8_t valve2 : 1;<br />uint8_t valve3 : 1;<br />uint8_t valve4 : 1;<br />uint8_t pomp1 : 1;<br />uint8_t pomp2 : 1;<br />uint8_t pomp3 : 1;<br />uint8_t pomp4 : 1;<br />uint8_t pomps;<br />};<br />uint8_t st&#91;2&#93;;<br />}STATE;[/syntax]<br />[syntax=c]STATE s;<br />s.st&#91;0&#93; = 0b11110000;<br />s.pomp1 = true;[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 31 sty 2017, o 23:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[nariox]]></name></author>
<updated>2017-01-31T10:28:38+01:00</updated>
<published>2017-01-31T10:28:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17495&amp;p=181311#p181311</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17495&amp;p=181311#p181311"/>
<title type="html"><![CDATA[Re: Przekazanie struktury do funkcji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17495&amp;p=181311#p181311"><![CDATA[
Do tej pory wysylalem tak,  ze robilem #define SRUCT 20<br />I robilem w funkcji switch case,  przez co caly kod byl duzy bardzo.... A tak przekaze wskaznik i zrobie petle.  Dzieki Tobie bedzie to o wiele bardziej przejrzyste<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11938">nariox</a> — 31 sty 2017, o 10:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[nariox]]></name></author>
<updated>2017-01-31T02:29:20+01:00</updated>
<published>2017-01-31T02:29:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17495&amp;p=181304#p181304</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17495&amp;p=181304#p181304"/>
<title type="html"><![CDATA[Re: Przekazanie struktury do funkcji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17495&amp;p=181304#p181304"><![CDATA[
Problem w tym,że ten wskaźnik muszę przekazywać za każdym razem do innej struktury, no chyba że moge przekazać wskaźnik do pierwszego elementu w strukturze, i potem zwiększać jego adres określoną ilość razy? A ponieważ każdy element każdej struktury jest typu int8_t to wskaźnik będzie po prostu typu int8_t, po prostu?:)<br /><br /><br />UPDATE: faktycznie, działa, zwiększam po prostu adres wskaźnika odpowiedniąi ilość razy.<br /><br /><br />Pytanie z innej beczki: chciałem się pobawić w optymalizacje zasobów i wyszło,że niektóre  struktury to pola bitowe, kompilator mówi, że nie może pobrać adresu<br />do tego pola -wg pomysłu proponowanego przez  @squeez<br />Pola bitowe dla zaworów i pomp: 1-otwarty/zalaczona , 0- zamkniety/niezalaczona<br />Czy tutaj jedynym wyjściem jest napisanie dwóch osobnych funkcji wysyłających dla tych pól bitowych?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11938">nariox</a> — 31 sty 2017, o 02:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[nariox]]></name></author>
<updated>2017-01-30T23:36:29+01:00</updated>
<published>2017-01-30T23:36:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17495&amp;p=181295#p181295</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17495&amp;p=181295#p181295"/>
<title type="html"><![CDATA[Przekazanie struktury do funkcji]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17495&amp;p=181295#p181295"><![CDATA[
Witam !<br /><br />Temat może i banalny, jeżeli mamy jedną strukturę. W swoim programie mam rożne struktury zawierające różne zmienne, każda struktura ma różną ilość zmiennych. Łączenie tego w jedną strukturę jest bezsensu, dlatego podzieliłem to sobie na parę rożnych struktur. Potrzebuję przekazać teraz te struktury do funkcji i wysyłać przez UART, wszystkie zmienne w strukturach są tego samego typu- np int8_t. Jak najprościej to zrobić, by nie tworzyć tylu funkcji ile typów struktur ani jednej funkcji, w której argumentami będą wszystkie typy funkcji...<br />tj:<br /><br />[syntax=c]typedef struct{<br />int8_t dana1;<br />int8_t dana2;<br />int8_t dana3;<br />}struktura1;<br /><br />typedef struct{<br />int8_t dana4;<br />int8_t dana5;<br />}struktura2;<br /><br />typedef struct{<br />int8_t dana7;<br />int8_t dana8;<br />int8_t dana9;<br />int8_t dana10;<br />}struktura3;<br /><br />/* Potrzebuję  jedną funkcję dla której argumentem będzie struktura1, lub struktura 2,lub struktura3.<br />a następnie przesyłać ją bajt po bajcie<br /> tutaj myślałem o skorzystaniu ze wskaźnika do kolejnych elementów struktury<br /> i odwoływaniu się przez niego do kolejnych elementów struktury do chwili, aż będzie pusty*/[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11938">nariox</a> — 30 sty 2017, o 23:36</p><hr />
]]></content>
</entry>
</feed>