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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-10-20T17:25:42+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=13288&amp;mode</id>
<entry>
<author><name><![CDATA[JungleMan]]></name></author>
<updated>2015-10-20T17:25:42+01:00</updated>
<published>2015-10-20T17:25:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13288&amp;p=142942#p142942</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13288&amp;p=142942#p142942"/>
<title type="html"><![CDATA[Re: Różnica w typach dla struktury w unii]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13288&amp;p=142942#p142942"><![CDATA[
Dziękuje, wszystko działa sprawnie.<br />Problem dotyczył pośrednio czujnika BMP280. Jeżeli ktoś by potrzebował wsparcia to zaoferuję.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3945">JungleMan</a> — 20 paź 2015, o 17:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-10-20T13:16:20+01:00</updated>
<published>2015-10-20T13:16:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13288&amp;p=142906#p142906</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13288&amp;p=142906#p142906"/>
<title type="html"><![CDATA[Re: Różnica w typach dla struktury w unii]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13288&amp;p=142906#p142906"><![CDATA[
dokładnie jak mówi kolega wyżej ....<br /><br />itoa - ( Integer To ASCII )<br />utoa - (Unsigned To ASCII )<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 20 paź 2015, o 13:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jacekk232]]></name></author>
<updated>2015-10-20T12:12:49+01:00</updated>
<published>2015-10-20T12:12:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13288&amp;p=142899#p142899</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13288&amp;p=142899#p142899"/>
<title type="html"><![CDATA[Re: Różnica w typach dla struktury w unii]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13288&amp;p=142899#p142899"><![CDATA[
Jeśli chcesz wyświetlić liczbę uint16_t czyli liczbę 16-bitową bez znaku to zamiast <strong>itoa</strong> powinieneś użyć <strong>utoa</strong>. Funkcja itoa konwertuje liczby 16-bitowe ze znakiem.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=204">jacekk232</a> — 20 paź 2015, o 12:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[JungleMan]]></name></author>
<updated>2015-10-20T10:03:14+01:00</updated>
<published>2015-10-20T10:03:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13288&amp;p=142888#p142888</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13288&amp;p=142888#p142888"/>
<title type="html"><![CDATA[Re: Różnica w typach dla struktury w unii]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13288&amp;p=142888#p142888"><![CDATA[
Faktycznie, niezła gafa. Dzięki, Mirku.<br />Jednak występuje pewien problem, bo gdy chcę wyświetlić owego uinta16 za pomocą funkcji:<br />[C]<br />usart_putstring(itoa(c_regs.comp_regs.dig_1, buffer, 10));<br />[/C]<br />to wyświetla liczbę ujemną:<br />w rejestrze jest 0x9134(H) a ta funkcja wyświetla -28364...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3945">JungleMan</a> — 20 paź 2015, o 10:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-10-19T22:01:53+01:00</updated>
<published>2015-10-19T22:01:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13288&amp;p=142860#p142860</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13288&amp;p=142860#p142860"/>
<title type="html"><![CDATA[Re: Różnica w typach dla struktury w unii]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13288&amp;p=142860#p142860"><![CDATA[
A po kiszkę ty przy odbieraniu czegoś z układu bawisz się w jakieś inty czy uinty ??? sam sobie robisz kuku<br /><br />już ci mówiłem - odbierasz surowe bajty - jako uint8_t ... i pakujesz je do struktury ale .... <br /><br />[syntax=c]typedef struct {<br />        uint16_t dig_1;<br />        int16_t dig_2;<br />        int16_t dig_3;<br />        uint16_t dig_4;<br />        int16_t dig_5;<br />        int16_t dig_6;<br />        int16_t dig_7;<br />        int16_t dig_8;<br />        int16_t dig_9;<br />        int16_t dig_10;<br />        int16_t dig_11;<br />        int16_t dig_12;<br />} comp_regs_s;<br /> <br />typedef union {<br />        uint8_t comp_reg&#91;24&#93;;<br />        comp_regs_s comp_regs;<br />} comp_regs_t;[/syntax]<br /><br />i ładuj po kolei 24 bajty odczytane z układu do comp_reg[ idx ] ....<br /><br />a później odczytuj sobie ze struktury<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 19 paź 2015, o 22:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[JungleMan]]></name></author>
<updated>2015-10-19T21:11:15+01:00</updated>
<published>2015-10-19T21:11:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13288&amp;p=142852#p142852</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13288&amp;p=142852#p142852"/>
<title type="html"><![CDATA[Re: Różnica w typach dla struktury w unii]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13288&amp;p=142852#p142852"><![CDATA[
Teraz jest taki problem, że owe uinty są traktowane jako inty ze znakiem. <br />Całość polega na tym, że pobieram z rejestrów czujnika te 24 bajty do tablicy tymczasowej uint8_t.<br />W bajtach są przechowywane liczby typu uint16 oraz int16.<br />Konwersji z 2 oddzielnych bajtów do liczby przechowywanej na 16 bitach przeprowadzam poprzez funkcję:<br />[C]<br />int conv_2xuint8t_toint16t(uint8_t LSB, uint8_t MSB)<br />{<br />return ((((int16_t)MSB) &lt;&lt; 8) | (int16_t)LSB);<br />}<br />[/C]<br />Niestety zmienne, które w strukturze są zapisane jako uint16, a w unii jako jeden z elementów tablicy int16 przyjmują wartości ujemne. Próbowałem na wszystkie strony i nadal nic z tego nie wynika. Jak to naprawić?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3945">JungleMan</a> — 19 paź 2015, o 21:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-10-19T16:23:02+01:00</updated>
<published>2015-10-19T16:23:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13288&amp;p=142837#p142837</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13288&amp;p=142837#p142837"/>
<title type="html"><![CDATA[Re: Różnica w typach dla struktury w unii]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13288&amp;p=142837#p142837"><![CDATA[
Nic nie musi utrzymywać typu panie kochany ....<br /><br />int a uint16_t ... to liczba 16-bitowa .... nie ważne czy siedzi w niej -1 czy 32768 <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .... <br /><br />typy są po to aby kompilator odpowiednio je interpretował do działań ... więc spokojnie można tak zrobić <br /><br />zwróć tylko uwagę czy dane otrzymujesz LITTLE ENDIAN czy BIG ENDIAN<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 19 paź 2015, o 16:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[JungleMan]]></name></author>
<updated>2015-10-19T14:40:13+01:00</updated>
<published>2015-10-19T14:40:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13288&amp;p=142833#p142833</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13288&amp;p=142833#p142833"/>
<title type="html"><![CDATA[Różnica w typach dla struktury w unii]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13288&amp;p=142833#p142833"><![CDATA[
Chciałbym odczytać z czujnika 12 danych kalibracyjnych, które są przechowywane w 24 rejestrach 8 bitowych, ale jest taki problem, że nie są one tego samego typu, a wygląda to tak:<br /><br />[C]<br />typedef struct {<br />uint16_t dig_1;<br />int16_t dig_2;<br />int16_t dig_3;<br />uint16_t dig_4;<br />int16_t dig_5;<br />int16_t dig_6;<br />int16_t dig_7;<br />int16_t dig_8;<br />int16_t dig_9;<br />int16_t dig_10;<br />int16_t dig_11;<br />int16_t dig_12;<br />} comp_regs_s;<br /><br />typedef union {<br />int16_t comp_reg[12];<br />comp_regs_s comp_regs;<br />} comp_regs_t;<br />[/C]<br /><br />Nie wiem, jak zadziała ta konwersja. Czy zmienne dig_1  i dig_4 utrzymają typ uint_16t przy obliczeniach?<br />Może lepiej to rozwiązać w taki sposób, że użyć po prostu tablicy 12 wartości a przed każdym użyciem dig_1 oraz dig_4 rzutować na uint_16t?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3945">JungleMan</a> — 19 paź 2015, o 14:40</p><hr />
]]></content>
</entry>
</feed>