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

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

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=11165&amp;mode</id>
<entry>
<author><name><![CDATA[janusz17]]></name></author>
<updated>2015-04-28T17:29:42+01:00</updated>
<published>2015-04-28T17:29:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=127690#p127690</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=127690#p127690"/>
<title type="html"><![CDATA[Re: I2C - problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=127690#p127690"><![CDATA[
Czy TY masz Mirkowego blue booka? Jeśli tak to masz tam biblioteki do obsługi I2C. Na pewno masz błąd w funkcji void Read() - no bo skoro coś odczytujesz to chyba jest oczywiste, ze funkcja musi coś zwracać. Druga sprawa, to zachowanie funkcji gdy układ wysyła lub nie potwierdzenie czyli tzw sygnał ACK. Oczywiście błąd w tej funkcji pociaga za sobą błąd w funkcji uint8_t TWI_read_register(uint8_t address, uint8_t reg).<br />Trzecia sprawa to kolejność definiowania funkcji w programie. Musisz mieć zdefiniowane najpierw te najprostsze a potem dopiero bardziej złożone, w których korzystasz z tych pierwszych. Czy Tobie się to wogóle kompiluje bez błędów?<br />Patrząc na fotografię Twojego układu zastanawiam się też czy dobrze masz wlutowany układ MPL3115A2. Chodzi o wielkość pól lutowniczych w tym układzie i widoczne na płytce luty - większe od całego układu MPL3115A2.<br />Musisz się też niestety liczyć z możliwością uszkodzenia układu kiedy zasilałeś go z 5V.<br />Ale podstawa to poprawna obsługa magistrali I2C.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1226">janusz17</a> — 28 kwi 2015, o 17:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-04-28T11:39:06+01:00</updated>
<published>2015-04-28T11:39:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=127676#p127676</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=127676#p127676"/>
<title type="html"><![CDATA[Re: I2C - problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=127676#p127676"><![CDATA[
<div class="quotetitle">osip7 napisał(a):</div><div class="quotecontent"><br />Nie podciagalem. A powinienem? Rowniez przez rezystory 4,7k om?<br /></div><br />A może tak zajrzyj na schemat tego &quot;urządzenia&quot; które kupiłeś do konwersji hmmm? ... widzę że nie zaglądałeś<br /><br />Bo za chwilę to zbudujesz wieżę ajfla z rezystorów na PCB. W ogóle zastanów się czy jest sens brać takie &quot;urządzenie&quot; ... skoro to tylko dwa tranzystory i 4 rezystory - a ty i tak sam sobie lutujesz tego typu rzeczy ....<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 28 kwi 2015, o 11:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[osip7]]></name></author>
<updated>2015-04-28T11:29:12+01:00</updated>
<published>2015-04-28T11:29:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=127675#p127675</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=127675#p127675"/>
<title type="html"><![CDATA[Re: I2C - problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=127675#p127675"><![CDATA[
Nie podciagalem. A powinienem? Rowniez przez rezystory 4,7k om?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9089">osip7</a> — 28 kwi 2015, o 11:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Nefarious19]]></name></author>
<updated>2015-04-28T07:06:54+01:00</updated>
<published>2015-04-28T07:06:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=127660#p127660</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=127660#p127660"/>
<title type="html"><![CDATA[Re: I2C - problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=127660#p127660"><![CDATA[
a SDA i SCL atmegi dp +5V podciągniete?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2500">Nefarious19</a> — 28 kwi 2015, o 07:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[osip7]]></name></author>
<updated>2015-04-27T23:58:24+01:00</updated>
<published>2015-04-27T23:58:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=127658#p127658</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=127658#p127658"/>
<title type="html"><![CDATA[Re: I2C - problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=127658#p127658"><![CDATA[
Zakupiłem to urządzenie : <!-- m --><a class="postlink" href="http://botland.com.pl/moduly-rozszerzajace-raspberry-pi-2/1513-konwerter-poziomow-logicznych-33v-5v-i2c-uart-spi.html" >http://botland.com.pl/moduly-rozszerzaj ... t-spi.html</a><!-- m --><br />Oto mój schemat teraz.<br /><a href="http://forum.atnel.pl/_obrazki/o/9089/e2654575445f8c6b39a33f949314cf2f.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/9089/e2654575445f8c6b39a33f949314cf2f.jpg" alt="Obrazek" /></a><br /><br />Sprawdziłem teraz czy działa mój program. Poprzez zapalanie kontrolnej diodki wnioskuję, że wszystkie czynności się wykonują(program nie zapętla się), lecz PORTD wciąż wskazuje same zera. Macie pomysł w czym tkwi problem?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9089">osip7</a> — 27 kwi 2015, o 23:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[osip7]]></name></author>
<updated>2015-04-16T21:46:29+01:00</updated>
<published>2015-04-16T21:46:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=126717#p126717</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=126717#p126717"/>
<title type="html"><![CDATA[Re: I2C - problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=126717#p126717"><![CDATA[
Dzięki wielkie za rady, nie wiedziałem(widocznie za mało szukałem) o tym. Zakupię takie urządzonko i będę dalej walczył  <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=9089">osip7</a> — 16 kwi 2015, o 21:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Nefarious19]]></name></author>
<updated>2015-04-16T08:04:44+01:00</updated>
<published>2015-04-16T08:04:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=126637#p126637</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=126637#p126637"/>
<title type="html"><![CDATA[Re: I2C - problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=126637#p126637"><![CDATA[
<strong>osip7</strong>, weź że porządnie zrób tą konwersję napięć bo na razie to błądzisz jak ślepy w w opuszczonej kopalnii węgla kamiennego. Jak połączysz wszystko dobrze i pewnie, to wtedy się bierz za program. Tu masz schemat bardzo prostej konwersji poziomów logicznych:<br /><br /><!-- m --><a class="postlink" href="https://www.sparkfun.com/products/12009" >https://www.sparkfun.com/products/12009</a><!-- m --><br /><br />jest tam wszystko, schemat, pcb, opis.<br /><br />Powodzenia.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2500">Nefarious19</a> — 16 kwi 2015, o 08:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[janusz17]]></name></author>
<updated>2015-04-16T07:21:48+01:00</updated>
<published>2015-04-16T07:21:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=126632#p126632</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=126632#p126632"/>
<title type="html"><![CDATA[Re: I2C - problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=126632#p126632"><![CDATA[
No niestety Kolega lemurek ma rację,  przy takim podłączeniu jak pokazałeś układ może się uszkodzić. Zrób porządną konwersje napięć albo zasil wszystko z 3,3V i wtedy się przekonasz.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1226">janusz17</a> — 16 kwi 2015, o 07:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[lemurek]]></name></author>
<updated>2015-04-15T23:44:42+01:00</updated>
<published>2015-04-15T23:44:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=126624#p126624</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=126624#p126624"/>
<title type="html"><![CDATA[Re: I2C - problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=126624#p126624"><![CDATA[
<div class="quotetitle">osip7 napisał(a):</div><div class="quotecontent"><br />Nie do końca rozumiem. Atmega jest zasilana z 5V, ale używam stabilizatora i do czujnika dochodzi napięcie 3,3V<br /></div><br /><br />Zasilanie to jedno a drugie to napięcia panujące na liniach i2c...<br />Ujmę to bardzo ogólnie .... w przypadku atmegi zasilanej z 5v to stan wysoki panujący na liniach I/O wynosi (powinien wynosić) 5v a w/g noty MPL3115A2 I/O Supply Voltage max 3.6v... nie twierdzę, iż na 100% padł czujnik ale w takich przypadkach należy zadbać o konwersję napięć lub zasilić całość z 3.3v a nie prosić się o kłopoty z tego wynikające...<br /><br />ps. tak na szybko jeśli chodzi o konwersję napięć i co można zastosować <a href="http://botland.com.pl/moduly-rozszerzajace-raspberry-pi-2/1513-konwerter-poziomow-logicznych-33v-5v-i2c-uart-spi.html"  class="postlink">http://botland.com.pl/moduly-rozszerzajace-raspberry-pi-2/1513-konwerter-poziomow-logicznych-33v-5v-i2c-uart-spi.html</a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=776">lemurek</a> — 15 kwi 2015, o 23:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[osip7]]></name></author>
<updated>2015-04-15T23:22:45+01:00</updated>
<published>2015-04-15T23:22:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=126623#p126623</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=126623#p126623"/>
<title type="html"><![CDATA[Re: I2C - problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=126623#p126623"><![CDATA[
Nie do końca rozumiem. Atmega jest zasilana z 5V, ale używam stabilizatora i do czujnika dochodzi napięcie 3,3V<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9089">osip7</a> — 15 kwi 2015, o 23:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[lemurek]]></name></author>
<updated>2015-04-15T21:11:59+01:00</updated>
<published>2015-04-15T21:11:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=126611#p126611</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=126611#p126611"/>
<title type="html"><![CDATA[Re: I2C - problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=126611#p126611"><![CDATA[
<div class="quotetitle">osip7 napisał(a):</div><div class="quotecontent"><br /><a href="http://forum.atnel.pl/_obrazki/o/9089/c6d26de3ea29f43e1db0454be3ca1d92.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/9089/c6d26de3ea29f43e1db0454be3ca1d92.jpg" alt="Obrazek" /></a><br /></div><br /><br /><br />To jeśli dobrze widzę to atmega jest zasilana 5v a MPL3115A2 3.3v wiec moim zdaniem mogłeś usmażyć czujnik ... aby to zadziałało to albo całość zasilasz z 3.3v lub musisz zastosować konwersję napięć.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=776">lemurek</a> — 15 kwi 2015, o 21:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[osip7]]></name></author>
<updated>2015-04-15T21:01:10+01:00</updated>
<published>2015-04-15T21:01:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=126610#p126610</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=126610#p126610"/>
<title type="html"><![CDATA[Re: I2C - problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=126610#p126610"><![CDATA[
<a href="http://forum.atnel.pl/_obrazki/o/9089/c6d26de3ea29f43e1db0454be3ca1d92.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/9089/c6d26de3ea29f43e1db0454be3ca1d92.jpg" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9089">osip7</a> — 15 kwi 2015, o 21:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[janusz17]]></name></author>
<updated>2015-04-15T06:35:21+01:00</updated>
<published>2015-04-15T06:35:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=126549#p126549</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=126549#p126549"/>
<title type="html"><![CDATA[Re: I2C - problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=126549#p126549"><![CDATA[
Pisałeś , że procesor zasilasz napięciem 5V. Masz zrobioną konwersję napięć na magistrali I2C?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1226">janusz17</a> — 15 kwi 2015, o 06:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[osip7]]></name></author>
<updated>2015-04-14T00:18:29+01:00</updated>
<published>2015-04-14T00:18:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=126460#p126460</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=126460#p126460"/>
<title type="html"><![CDATA[Re: I2C - problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=126460#p126460"><![CDATA[
Tak to teraz wygląda, lecz PORTD siedzi cicho  <img src="https://forum.atnel.pl/images/smilies/icon_e_confused.gif" alt=":?" title="Boi się" /> <br />[syntax=c]#define MPL3115A2_ADDRESS 0xC0<br />#define CTRL_REG1       0x26<br />#define ACTIVE_MASK           0x01<br />#define OS2_MASK        0x20<br />#define OS1_MASK        0x10<br />#define OS0_MASK        0x08<br />#define CTRL_REG2       0x27<br />#define CLEAR_CTRLREG2  0x00<br />#define CTRL_REG3       0x28<br />#define PP_OD1_MASK     0x10<br />#define PP_OD2_MASK     0x01<br />#define CTRL_REG4       0x29<br />#define INT_EN_CLEAR         0x00<br />#define CTRL_REG5             0x2A<br />#define INT_CFG_CLEAR         0x00<br />#define PT_DATA_CFG_REG      0x13<br />#define DREM_MASK            0x04<br />#define PDEFE_MASK           0x02<br />#define TDEFE_MASK           0x01<br />     <br />    <br /><br /><br />void TWI_write_register(uint8_t address, uint8_t reg, uint8_t val)<br />{<br /> <br />Start(); // Send Start<br />Write(address); // Send IIC &quot;Write&quot; Address<br />Write(reg); // Send Register<br />Write(val); // Send Value<br />Stop(); // Send Stop<br />}<br /><br />uint8_t TWI_read_register(uint8_t address, uint8_t reg)<br />{<br />            Start();<br />            Write(address); //adres slave<br />            //pisanie adresu rejestru<br />            Write(reg); //adres rejestru<br />            Start();<br />            Write(address+1); //adres slave+1<br />            Read();<br />            Stop();<br />return TWDR;<br />}<br /><br />void MPL3115A2_Active (void)<br />{<br />  TWI_write_register(MPL3115A2_ADDRESS, CTRL_REG1, (TWI_read_register(MPL3115A2_ADDRESS, CTRL_REG1) | ACTIVE_MASK));<br />}<br /><br /><br /><br />void MPL3115A2_Init_Bar (void)<br />{<br /> <br />  /*<br />  **  Configure sensor for:<br />  **    - 128 Oversampling<br />  **    - Barometer Mode<br />  **    - Set Interrupts to Active Low/Open Drain<br />  **    - Set Data Event Flags for Pressure/Altitude and Temperature<br />  **    - Set Generate Data Event Flag<br />  */<br />        TWI_write_register(MPL3115A2_ADDRESS, CTRL_REG1, (OS2_MASK | OS1_MASK | OS0_MASK));<br />        TWI_write_register(MPL3115A2_ADDRESS, CTRL_REG2, CLEAR_CTRLREG2);<br />        TWI_write_register(MPL3115A2_ADDRESS, CTRL_REG3, (PP_OD1_MASK | PP_OD2_MASK));<br />        TWI_write_register(MPL3115A2_ADDRESS, CTRL_REG4, INT_EN_CLEAR);<br />        TWI_write_register(MPL3115A2_ADDRESS, CTRL_REG5, INT_CFG_CLEAR);<br />        TWI_write_register(MPL3115A2_ADDRESS, PT_DATA_CFG_REG, (DREM_MASK | PDEFE_MASK | TDEFE_MASK));<br /> <br />}<br /><br /><br />void Inicjacja(void)<br />    {<br />            TWCR &amp;= ~(1&lt;&lt;TWIE);<br />            TWBR = 2;<br />            TWSR &amp;= ~(1&lt;&lt;TWPS1) | (1&lt;&lt;TWPS0);<br />    }<br />     <br />    void Start(void)<br />    {<br />            TWCR = (1&lt;&lt;TWINT)|(1&lt;&lt;TWEN)|(1&lt;&lt;TWSTA);<br />            while(!(TWCR &amp; (1&lt;&lt;TWINT)));<br />    }<br />     <br />    void Write(uint8_t address)<br />    {<br />            TWDR = address;<br />            TWCR = (1&lt;&lt;TWINT)|(1&lt;&lt;TWEN);<br />            while(!(TWCR&amp;(1&lt;&lt;TWINT)));<br />    }<br />     <br />    void Read()<br />    {<br />            uint8_t zmienna=0;<br />            zmienna = TWDR;<br />            TWCR = (1&lt;&lt;TWINT)|(1&lt;&lt;TWEN);<br />            while(!(TWCR&amp;(1&lt;&lt;TWINT)));<br />    }<br />     <br />    void Stop()<br />    {<br />            TWCR = (1&lt;&lt;TWINT)|(1&lt;&lt;TWEN)|(1&lt;&lt;TWSTO);<br />    }<br /><br /><br /><br />     <br />    int main(void)<br />    {<br />            DDRD=0xFF;<br />            PORTD=0x00;<br />           <br />           <br /><br />           Inicjacja();<br />   MPL3115A2_Init_Bar();<br />MPL3115A2_Active();<br /><br />            <br />PORTD =   TWI_read_register(MPL3115A2_ADDRESS,0x03);<br /><br />           <br />            while(1)<br />        {<br />           <br />        }<br />    }[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9089">osip7</a> — 14 kwi 2015, o 00:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[janusz17]]></name></author>
<updated>2015-04-13T08:08:15+01:00</updated>
<published>2015-04-13T08:08:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=126352#p126352</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=126352#p126352"/>
<title type="html"><![CDATA[Re: I2C - problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=126352#p126352"><![CDATA[
Widzę , że strasznie się tu zakałapućkałeś <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":-)" title="Szczęśliwy" /><br />Po pierwsze dobrze by było widzieć schemat tego układu.<br />Co do samego kodu, to ciekaw jestem czy on się kompiluje bez ostrzeżeń.<br />Funkcję uint8_t TWI_read_register(uint8_t address, uint8_t reg) - zadeklarowałeś jako zwracającą wartość typu uint8_t. Natomiast w jej definicji nie masz nigdzie instrukcji return. Kompilator chyba zgłasza to jako błąd.<br />Ale nawet gdyby kod tej funkcji był poprawny, to i tak w swoim programie nie masz nigdzie przypisania wartości, którą ona zwraca.<br />Masz tylko wywołanie tej funkcji i gdzie niby ma być widoczny wynik?<br />Trzecia sprawa, to kolejność instrukcji w głównej pętli programu - main, która powinna wyglądać tak:<br />[syntax=c]int main(void)<br />    {<br />            DDRD=0xFF;<br />            PORTD=0x00;<br /><br />            Inicjacja();  // najpierw inicjalizujesz nastawy I2C<br />            MPL3115A2_Init_Bar(); // następnie ustawiasz tryb pracy układu MPL3115A2<br />            MPL3115A2_Active();  // potem włączasz go w tryb aktywny<br />           <br />            PORTD =   TWI_read_register(MPL3115A2_ADDRESS,0x02); // i wreszcie odczytujesz rejestr i jego wartość wpisujesz np. do PORTD               <br /> <br />           <br />            while(1)<br />            {<br />           <br />            }<br />    }[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1226">janusz17</a> — 13 kwi 2015, o 08:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[osip7]]></name></author>
<updated>2015-04-13T01:10:14+01:00</updated>
<published>2015-04-13T01:10:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=126345#p126345</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=126345#p126345"/>
<title type="html"><![CDATA[Re: I2C - problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=126345#p126345"><![CDATA[
Starałem się uważać i zawsze sprawdzałem multimetrem napięcie.<br />Napisałem teraz taki kod, lecz dalej komunikacja nie chce wystartować.<br />Moim celem jest po prostu cokolwiek odczytytać, więc ustawiam BarometrMode, a następnie na diodkach na porcie D chcę wyświetlić wynik. Komunikacja jednak wciąż nie działa<br /><br />[syntax=c]#define MPL3115A2_ADDRESS 0xC0<br />#define CTRL_REG1       0x26<br />#define ACTIVE_MASK           0x01<br />#define OS2_MASK        0x20<br />#define OS1_MASK        0x10<br />#define OS0_MASK        0x08<br />#define CTRL_REG2       0x27<br />#define CLEAR_CTRLREG2  0x00<br />#define CTRL_REG3       0x28<br />#define PP_OD1_MASK     0x10<br />#define PP_OD2_MASK     0x01<br />#define CTRL_REG4       0x29<br />#define INT_EN_CLEAR         0x00<br />#define CTRL_REG5             0x2A<br />#define INT_CFG_CLEAR         0x00<br />#define PT_DATA_CFG_REG      0x13<br />#define DREM_MASK            0x04<br />#define PDEFE_MASK           0x02<br />#define TDEFE_MASK           0x01<br />     <br />    <br /><br /><br />void TWI_write_register(uint8_t address, uint8_t reg, uint8_t val)<br />{<br /> <br />Start(); // Send Start<br />Write(address); // Send IIC &quot;Write&quot; Address<br />Write(reg); // Send Register<br />Write(val); // Send Value<br />Stop(); // Send Stop<br />}<br /><br />uint8_t TWI_read_register(uint8_t address, uint8_t reg)<br />{<br />            Start();<br />            Write(address); //adres slave<br />            //pisanie adresu rejestru<br />            Write(reg); //adres rejestru<br />            Start();<br />            Write(address+1); //adres slave+1<br />            Read();<br />            Stop();<br />}<br /><br />void MPL3115A2_Active (void)<br />{<br />  TWI_write_register(MPL3115A2_ADDRESS, CTRL_REG1, (TWI_read_register(MPL3115A2_ADDRESS, CTRL_REG1) | ACTIVE_MASK));<br />}<br /><br /><br /><br />void MPL3115A2_Init_Bar (void)<br />{<br /> <br />  /*<br />  **  Configure sensor for:<br />  **    - 128 Oversampling<br />  **    - Barometer Mode<br />  **    - Set Interrupts to Active Low/Open Drain<br />  **    - Set Data Event Flags for Pressure/Altitude and Temperature<br />  **    - Set Generate Data Event Flag<br />  */<br />        TWI_write_register(MPL3115A2_ADDRESS, CTRL_REG1, (OS2_MASK | OS1_MASK | OS0_MASK));<br />        TWI_write_register(MPL3115A2_ADDRESS, CTRL_REG2, CLEAR_CTRLREG2);<br />        TWI_write_register(MPL3115A2_ADDRESS, CTRL_REG3, (PP_OD1_MASK | PP_OD2_MASK));<br />        TWI_write_register(MPL3115A2_ADDRESS, CTRL_REG4, INT_EN_CLEAR);<br />        TWI_write_register(MPL3115A2_ADDRESS, CTRL_REG5, INT_CFG_CLEAR);<br />        TWI_write_register(MPL3115A2_ADDRESS, PT_DATA_CFG_REG, (DREM_MASK | PDEFE_MASK | TDEFE_MASK));<br /> <br />}<br /><br /><br />void Inicjacja(void)<br />    {<br />            TWCR &amp;= ~(1&lt;&lt;TWIE);<br />            TWBR = 2;<br />            TWSR &amp;= ~(1&lt;&lt;TWPS1) | (1&lt;&lt;TWPS0);<br />    }<br />     <br />    void Start(void)<br />    {<br />            TWCR = (1&lt;&lt;TWINT)|(1&lt;&lt;TWEN)|(1&lt;&lt;TWSTA);<br />            while(!(TWCR &amp; (1&lt;&lt;TWINT)));<br />    }<br />     <br />    void Write(uint8_t address)<br />    {<br />            TWDR = address;<br />            TWCR = (1&lt;&lt;TWINT)|(1&lt;&lt;TWEN);<br />            while(!(TWCR&amp;(1&lt;&lt;TWINT)));<br />    }<br />     <br />    void Read()<br />    {<br />            uint8_t zmienna=0;<br />            zmienna = TWDR;<br />            TWCR = (1&lt;&lt;TWINT)|(1&lt;&lt;TWEN);<br />            while(!(TWCR&amp;(1&lt;&lt;TWINT)));<br />PORTD=zmienna;<br />    }<br />     <br />    void Stop()<br />    {<br />            TWCR = (1&lt;&lt;TWINT)|(1&lt;&lt;TWEN)|(1&lt;&lt;TWSTO);<br />    }<br /><br /><br /><br />     <br />    int main(void)<br />    {<br />            DDRD=0xFF;<br />            PORTD=0x00;<br />           <br />           <br /><br />           <br />MPL3115A2_Active();<br />MPL3115A2_Init_Bar();<br />            Inicjacja();<br />TWI_read_register(MPL3115A2_ADDRESS,0x02);<br /><br />           <br />            while(1)<br />        {<br />           <br />        }<br />    }[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9089">osip7</a> — 13 kwi 2015, o 01:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[janusz17]]></name></author>
<updated>2015-03-26T18:54:17+01:00</updated>
<published>2015-03-26T18:54:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=124708#p124708</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=124708#p124708"/>
<title type="html"><![CDATA[Re: I2C - problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=124708#p124708"><![CDATA[
No to jak podłączyłeś ten czujnik ciśnienia do procka zasilanego napięciem 5V , to niestety może już być po nim. A przecież ATmega8 może być zasilana niższym napięciem i wtedy konwersja nie była by potrzebna.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1226">janusz17</a> — 26 mar 2015, o 18:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[HCOOH]]></name></author>
<updated>2015-03-26T09:43:37+01:00</updated>
<published>2015-03-26T09:43:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=124664#p124664</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=124664#p124664"/>
<title type="html"><![CDATA[Re: I2C - problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=124664#p124664"><![CDATA[
Czyli układ barometru masz zasilany z 3,3V a atmegę z 5V.<br />Magistrala I2C atmegi operuje na napięciach 0-5V a barometru na 0-3,3V. O ile się nie mylę, to nawet z pull-upami do 3,3V nie można tak po prostu podłączyć jednego standardu napięciowego do innego z uwagi na prądy wyrównujące. Trzeba zrobić konwersję napięć przy pomocy dwóch MOSFETów (jak na płytce atnel air).<br /><br />Jeśli to Twoja pierwsza próba z I2C to na początek spróbuj się skomunikować z układem pięciowoltowym. Wyeliminujesz znaczną część problemu. Może komunikacja nawet od razu Ci wystartuje.<br /><br />Wysłane z mojego GT-S7710<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2954">HCOOH</a> — 26 mar 2015, o 09:43</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[osip7]]></name></author>
<updated>2015-03-25T23:42:53+01:00</updated>
<published>2015-03-25T23:42:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=124653#p124653</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=124653#p124653"/>
<title type="html"><![CDATA[Re: I2C - problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=124653#p124653"><![CDATA[
<a href="http://forum.atnel.pl/_obrazki/o/9089/0041f4267a5f0e966c26d73113205774.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/9089/0041f4267a5f0e966c26d73113205774.jpg" alt="Obrazek" /></a><br /><br />Jakość jest jaka jest, ale mam nadzieję, że coś widać. Tak wyglądają podłączenia. A tak jak pisałem od góry do pinów podłączam 4 linie barometru - SDA, SCL, GND, VCC.<br /><br />Które zdanie?  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br />Proszę o wyrozumiałość, to moja pierwsza próba z I2C.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9089">osip7</a> — 25 mar 2015, o 23:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[HCOOH]]></name></author>
<updated>2015-03-25T23:16:11+01:00</updated>
<published>2015-03-25T23:16:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=124650#p124650</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=124650#p124650"/>
<title type="html"><![CDATA[Re: I2C - problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=124650#p124650"><![CDATA[
Pokaż połączenia (schemat, fotki lub jedno i drugie) bo Twoje pierwsze zdanie zabrzmiało interesująco <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2954">HCOOH</a> — 25 mar 2015, o 23:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[osip7]]></name></author>
<updated>2015-03-25T22:59:22+01:00</updated>
<published>2015-03-25T22:59:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=124648#p124648</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=124648#p124648"/>
<title type="html"><![CDATA[Re: I2C - problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=124648#p124648"><![CDATA[
ATmegę zasilam napięciem 5V i używam stabilizatora 3,3V. <br /><br />Dziękuję za pomoc, spróbuję to uruchomić i napiszę jak efekty.<br /><br />Wniosek o tym, że program zapętla się wysnuwam na podstawie tego, że próbowałem włączać diodę wewnątrz funkcji start uruchomiając ją w funkcji main i przed pętlą normalnie się włączała, a za pętlą już nie. <br />A odczytać chciałem jeden rejestr 8 bitowy na diodach LED na porcie B, jednak faktycznie pominąłem tę część kodu pisząc tutaj post.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9089">osip7</a> — 25 mar 2015, o 22:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[HCOOH]]></name></author>
<updated>2015-03-25T20:54:26+01:00</updated>
<published>2015-03-25T20:54:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=124630#p124630</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=124630#p124630"/>
<title type="html"><![CDATA[Re: I2C - problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=124630#p124630"><![CDATA[
<div class="quotetitle">osip7 napisał(a):</div><div class="quotecontent"><br />Podłączyłem linie SDA i SCL z procesora do barometru oraz podciągnąłem przez rezystory 4,7kOm do napięcia 3,3V<br /></div><br /><br />A atmegę jakim napięciem zasilasz?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2954">HCOOH</a> — 25 mar 2015, o 20:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[janusz17]]></name></author>
<updated>2015-03-25T10:09:57+01:00</updated>
<published>2015-03-25T10:09:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=124567#p124567</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=124567#p124567"/>
<title type="html"><![CDATA[Re: I2C - problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=124567#p124567"><![CDATA[
Z całym szacunkiem, ale na podstawie czego wnioskujesz, że program się zawiesza na na pętli while?<br />Właściwie to zapisujesz coś do rejestrów układu MPL3115, potem odczytujesz i gdzie niby ma być widoczny wynik tego odczytu? Bo w kodzie nie widać nigdzie obsługi jakiegoś wyświetlacza lub wysyłania przez UART. Poza tym chyba nie za dokładnie czytałeś notę PDF tego układu. Jest tam napisane, że wymaga on pewnej inicjalizacji w zależności od tego czy ma mierzyć wysokość npm. , czy ciśnienie, no i jeszcze trzeba go wprowadzić w stan aktywny ze zstanu stand-by.<br />Poniżej przykładowe procedury:<br />[syntax=c]/* Put MPL3115A2 into Active Mode*/<br /><br />void MPL3115A2_Active (void)<br />{<br />  TWI_write_register(MPL3115A2_ADDRESS, CTRL_REG1, (TWI_read_register(MPL3115A2_ADDRESS, CTRL_REG1) | ACTIVE_MASK));<br />}<br /><br /><br />/* Initialize MPL3115A2*/<br />// pomiar wysokości npm.<br />void MPL3115A2_Init_Alt (void)<br />{<br /><br />  /*<br />  **  Configure sensor for:<br />  **    - 128 Oversampling<br />  **    - Altitude Mode<br />  **    - Set Interrupts to Active Low/Open Drain<br />  **    - Set Data Event Flags for Pressure/Altitude and Temperature<br />  **    - Set Generate Data Event Flag<br />  */<br />  TWI_write_register(MPL3115A2_ADDRESS, CTRL_REG1, (ALT_MASK | OS2_MASK | OS1_MASK | OS0_MASK));<br />  TWI_write_register(MPL3115A2_ADDRESS, CTRL_REG2, CLEAR_CTRLREG2);<br />  TWI_write_register(MPL3115A2_ADDRESS, CTRL_REG3, (PP_OD1_MASK | PP_OD2_MASK));<br />  TWI_write_register(MPL3115A2_ADDRESS, CTRL_REG4, INT_EN_CLEAR);<br />  TWI_write_register(MPL3115A2_ADDRESS, CTRL_REG5, INT_CFG_CLEAR);<br />  TWI_write_register(MPL3115A2_ADDRESS, PT_DATA_CFG_REG, (DREM_MASK | PDEFE_MASK | TDEFE_MASK));<br /><br />}<br /><br /><br />/* Initialize MPL3115A2*/<br />// pomiar ciśnienia<br />void MPL3115A2_Init_Bar (void)<br />{<br /><br />  /*<br />  **  Configure sensor for:<br />  **    - 128 Oversampling<br />  **    - Barometer Mode<br />  **    - Set Interrupts to Active Low/Open Drain<br />  **    - Set Data Event Flags for Pressure/Altitude and Temperature<br />  **    - Set Generate Data Event Flag<br />  */<br />TWI_write_register(MPL3115A2_ADDRESS, CTRL_REG1, (OS2_MASK | OS1_MASK | OS0_MASK));<br />TWI_write_register(MPL3115A2_ADDRESS, CTRL_REG2, CLEAR_CTRLREG2);<br />TWI_write_register(MPL3115A2_ADDRESS, CTRL_REG3, (PP_OD1_MASK | PP_OD2_MASK));<br />TWI_write_register(MPL3115A2_ADDRESS, CTRL_REG4, INT_EN_CLEAR);<br />TWI_write_register(MPL3115A2_ADDRESS, CTRL_REG5, INT_CFG_CLEAR);<br />TWI_write_register(MPL3115A2_ADDRESS, PT_DATA_CFG_REG, (DREM_MASK | PDEFE_MASK | TDEFE_MASK));<br /><br />}<br /><br />// Definicje nazw rejestrów układu<br />/*<br />**  CTRL_REG1 Interrupt Control Register<br />*/<br />#define CTRL_REG1       0x26<br />//<br />#define ALT_BIT         Bit._7<br />#define RAW_BIT         Bit._6<br />#define OS2_BIT         Bit._5<br />#define OS1_BIT         Bit._4<br />#define OS0_BIT         Bit._3<br />#define RST_BIT         Bit._2<br />#define OST_BIT         Bit._1<br />#define SBYB_BIT        Bit._0<br />//<br />#define ALT_MASK        0x80<br />#define RAW_MASK        0x40<br />#define OS2_MASK        0x20<br />#define OS1_MASK        0x10<br />#define OS0_MASK        0x08<br />#define RST_MASK        0x04<br />#define OST_MASK        0x02<br />#define SBYB_MASK       0x01<br /><br />#define STANDBY_SBYB_0        0xFE<br />#define ACTIVE_MASK           0x01<br />#define RESET_MASK            0x04<br />#define ACTIVE_SBYB_OST       OST_MASK+SBYB_MASK<br />#define FULL_SCALE_STANDBY    0x00<br />#define CLEAR_OSR             0xC3<br />#define OSR_2                 0x08<br />#define OSR_4                 0x10<br />#define OSR_8                 0x18<br />#define OSR_16                0x20<br />#define OSR_32                0x28<br />#define OSR_64                0x30<br />#define OSR_128               0x38<br /><br />#define DR_MASK               0x38<br />#define MODE_MASK             0x80<br />#define CLEAR_MODE_MASK       0x7F<br /><br />/*<br />**  CTRL_REG2 Interrupt Control Register<br />*/<br />#define CTRL_REG2       0x27<br />//<br />#define FIFO_GATE_BIT   Bit._4<br />#define ST3_BIT         Bit._3<br />#define ST2_BIT         Bit._2<br />#define ST1_BIT         Bit._1<br />#define ST0_BIT         Bit._0<br />//<br />#define FIFO_GATE_MASK  0x10<br />#define ST3_MASK        0x08<br />#define ST2_MASK        0x04<br />#define ST1_MASK        0x02<br />#define ST0_MASK        0x01<br />#define ST_MASK         0x0F<br />#define CLEAR_ST_MASK   0xF0<br />#define CLEAR_CTRLREG2  0x00<br /><br />/*<br />**  CTRL_REG3 Interrupt Control Register<br />*/<br />#define CTRL_REG3       0x28<br />//<br /><br />#define IPOL1_BIT       Bit._5<br />#define PP_OD1_BIT      Bit._4<br />#define IPOL2_BIT       Bit._1<br />#define PP_OD2_BIT      Bit._0<br />//<br /><br />#define IPOL1_MASK      0x20<br />#define PP_OD1_MASK     0x10<br />#define IPOL2_MASK      0x02<br />#define PP_OD2_MASK     0x01<br /><br />/*<br />**  CTRL_REG4 Interrupt Control Register<br />*/<br />#define CTRL_REG4       0x29<br />//<br />#define INT_EN_DRDY_BIT  Bit._7<br />#define INT_EN_FIFO_BIT  Bit._6<br />#define INT_EN_PW_BIT    Bit._5<br />#define INT_EN_TW_BIT    Bit._4<br />#define INT_EN_PTH_BIT   Bit._3<br />#define INT_EN_TTH_BIT   Bit._2<br />#define INT_EN_PCHG_BIT  Bit._1<br />#define INT_EN_TCHG_BIT  Bit._0<br />//<br />#define INT_EN_CLEAR         0x00<br />#define INT_EN_DRDY_MASK     0x80<br />#define INT_EN_FIFO_MASK     0x40<br />#define INT_EN_PW_MASK       0x20<br />#define INT_EN_TW_MASK       0x10<br />#define INT_EN_PTH_MASK      0x08<br />#define INT_EN_TTH_MASK      0x04<br />#define INT_EN_PCHG_MASK     0x02<br />#define INT_EN_TCHG_MASK     0x01<br /><br />/*<br />**  CTRL_REG5 Interrupt Control Register<br />*/<br />#define CTRL_REG5             0x2A<br />//<br />#define INT_CFG_CLEAR         0x00<br />#define INT_CFG_DRDY_MASK     0x80<br />#define INT_CFG_FIFO_MASK     0x40<br />#define INT_CFG_PW_MASK       0x20<br />#define INT_CFG_TW_MASK       0x10<br />#define INT_CFG_PTH_MASK      0x08<br />#define INT_CFG_TTH_MASK      0x04<br />#define INT_CFG_PCHG_MASK     0x02<br />#define INT_CFG_TCHG_MASK     0x01<br /><br />/*<br />**  PT_DATA_CFG Sensor Data Configuration Register<br />*/<br />#define PT_DATA_CFG_REG      0x13<br />//<br />#define DREM_BIT             2<br />#define PDEFE_BIT            1<br />#define TDEFE_BIT            0<br />//<br />#define DREM_MASK            0x04<br />#define PDEFE_MASK           0x02<br />#define TDEFE_MASK           0x01<br /><br />// przykładowe funkcje zapisu/odczytu rejestrów MPL3115A2:<br /><br />void TWI_write_register(uint8_t address, uint8_t reg, uint8_t val)<br />{<br /><br />TWI_start(); // Send Start<br />TWI_write(address); // Send IIC &quot;Write&quot; Address<br />TWI_write(reg); // Send Register<br />TWI_write(val); // Send Value<br />TWI_stop(); // Send Stop<br />}<br /><br />uint8_t TWI_read_register(uint8_t address, uint8_t reg)<br />{<br />uint8_t b;<br /><br />TWI_start(); // Send Start<br />TWI_write(address); // Send IIC &quot;Write&quot; Address<br />TWI_write(reg); // Send Register<br />TWI_start(); // Send Repeat Start<br />TWI_write(address+1); // Send IIC &quot;Read&quot; Address<br />b = TWI_read(ACK); // *** Dummy read: read<br /><br />return b;<br />}[/syntax]<br /><br />Podsumowując: najpierw musisz ustawić rejestry układu w odpowiedni tryb - albo pomiar wysokości , albo pomiar ciśnienia. Następnie wprowadzasz go w stan aktywny. Teraz dopiero możesz odczytywać zmierzone wartości i po odpowiednim przeliczeniu wysłać je gdzieś do odczytu czyli na wyświetlacz lub przez UART do terminala.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1226">janusz17</a> — 25 mar 2015, o 10:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[osip7]]></name></author>
<updated>2015-03-24T23:20:06+01:00</updated>
<published>2015-03-24T23:20:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=124549#p124549</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=124549#p124549"/>
<title type="html"><![CDATA[Re: I2C - problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=124549#p124549"><![CDATA[
Używam ATmegi8 , taktowanie 1MHz. Podłączyłem linie SDA i SCL z procesora do barometru oraz podciągnąłem przez rezystory 4,7kOm do napięcia 3,3V<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9089">osip7</a> — 24 mar 2015, o 23:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[HCOOH]]></name></author>
<updated>2015-03-24T17:39:10+01:00</updated>
<published>2015-03-24T17:39:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=124500#p124500</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=124500#p124500"/>
<title type="html"><![CDATA[Re: I2C - problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11165&amp;p=124500#p124500"><![CDATA[
podobnie jest z bitami TWPS - też je zerujesz, choć wyzerowane <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 1 minucie ]</span></strong><br /><br />podaj też taktowanie, bo nie wiadomo, z jaką prędkością zasuwa I2C<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2954">HCOOH</a> — 24 mar 2015, o 17:39</p><hr />
]]></content>
</entry>
</feed>