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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-07-21T19:14:58+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=12324&amp;mode</id>
<entry>
<author><name><![CDATA[Alan Bejnarowicz]]></name></author>
<updated>2015-07-21T19:14:58+01:00</updated>
<published>2015-07-21T19:14:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=135163#p135163</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=135163#p135163"/>
<title type="html"><![CDATA[Re: Problem z modułem MPU-6050.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=135163#p135163"><![CDATA[
Tym bardziej że odczytuję poprawnie rejestry. Może mam go fabrycznie uszkodzonego.<br /><br /><br />Wysłane z iPad za pomocą Tapatalk<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2551">Alan Bejnarowicz</a> — 21 lip 2015, o 19:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Daniel880]]></name></author>
<updated>2015-07-21T19:01:58+01:00</updated>
<published>2015-07-21T19:01:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=135157#p135157</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=135157#p135157"/>
<title type="html"><![CDATA[Re: Problem z modułem MPU-6050.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=135157#p135157"><![CDATA[
Ja mojego MPU zasilałem swego czasu z 5V i sygnały podawałem też 5V i działa do dzisiaj;)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2328">Daniel880</a> — 21 lip 2015, o 19:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Alan Bejnarowicz]]></name></author>
<updated>2015-07-21T18:52:17+01:00</updated>
<published>2015-07-21T18:52:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=135155#p135155</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=135155#p135155"/>
<title type="html"><![CDATA[Re: Problem z modułem MPU-6050.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=135155#p135155"><![CDATA[
Może <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br /><br />Wysłane z iPad za pomocą Tapatalk<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2551">Alan Bejnarowicz</a> — 21 lip 2015, o 18:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ps19]]></name></author>
<updated>2015-07-21T18:17:02+01:00</updated>
<published>2015-07-21T18:17:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=135150#p135150</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=135150#p135150"/>
<title type="html"><![CDATA[Re: Problem z modułem MPU-6050.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=135150#p135150"><![CDATA[
Może zabiłeś układ podając na niego 5V, żyroskopy i akcelerometry są dosyć wrażliwe na ESD i przepięcia.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=230">ps19</a> — 21 lip 2015, o 18:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Alan Bejnarowicz]]></name></author>
<updated>2015-07-21T16:52:46+01:00</updated>
<published>2015-07-21T16:52:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=135127#p135127</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=135127#p135127"/>
<title type="html"><![CDATA[Re: Problem z modułem MPU-6050.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=135127#p135127"><![CDATA[
Zasiliłem ATB za pomocą 3,3v i dalej nie działa<br /><br /><br />Wysłane z iPad za pomocą Tapatalk<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2551">Alan Bejnarowicz</a> — 21 lip 2015, o 16:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Alan Bejnarowicz]]></name></author>
<updated>2015-07-21T15:28:00+01:00</updated>
<published>2015-07-21T15:28:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=135118#p135118</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=135118#p135118"/>
<title type="html"><![CDATA[Re: Problem z modułem MPU-6050.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=135118#p135118"><![CDATA[
Mam takiego gotowca. Zaraz go podłącze.<br /><br /><br />Wysłane z iPad za pomocą Tapatalk<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2551">Alan Bejnarowicz</a> — 21 lip 2015, o 15:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ps19]]></name></author>
<updated>2015-07-21T14:31:48+01:00</updated>
<published>2015-07-21T14:31:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=135111#p135111</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=135111#p135111"/>
<title type="html"><![CDATA[Re: Problem z modułem MPU-6050.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=135111#p135111"><![CDATA[
No ok, ale stabilizator nie zmniejsza napięcia na pinach tylko na zasilaniu, musisz dać konwerter poziomów logicznych np. taki<br /><!-- m --><a class="postlink" href="http://botland.com.pl/moduly-rozszerzajace-raspberry-pi-2/2259-konwerter-poziomow-logicznych-dwukierunkowy-czterokanalowy-sparkfun.html" >http://botland.com.pl/moduly-rozszerzaj ... rkfun.html</a><!-- m --><br /><br />albo zbudować samemu (ten schemat co wrzucił Mirek):<br /><!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic11618.html#postingbox" >topic11618.html#postingbox</a><!-- l --><br /><br /><img src="http://forum.atnel.pl/_obrazki/o/54/53fbd58bb126a87180b3788f0150713f.png" alt="Obrazek" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=230">ps19</a> — 21 lip 2015, o 14:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Alan Bejnarowicz]]></name></author>
<updated>2015-07-21T12:39:56+01:00</updated>
<published>2015-07-21T12:39:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=135101#p135101</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=135101#p135101"/>
<title type="html"><![CDATA[Re: Problem z modułem MPU-6050.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=135101#p135101"><![CDATA[
Pisze że ma wbudowany stabilizator. Daje link do sklepu gdzie kupiłem.<br /><!-- m --><a class="postlink" href="http://electropark.pl/moduly-przemieszczenia-odleglosci/3367-modul-mpu-6050-3-osiowy-akcelerometr-i-3-osiowy-zyroskop.html" >http://electropark.pl/moduly-przemieszc ... oskop.html</a><!-- m --><br /><br /><br />Wysłane z iPad za pomocą Tapatalk<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2551">Alan Bejnarowicz</a> — 21 lip 2015, o 12:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ps19]]></name></author>
<updated>2015-07-21T12:21:26+01:00</updated>
<published>2015-07-21T12:21:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=135100#p135100</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=135100#p135100"/>
<title type="html"><![CDATA[Re: Problem z modułem MPU-6050.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=135100#p135100"><![CDATA[
Może problem leży po stronie sprzętowej ?<br /><br />Z czego zasilasz układ i czy masz konwerter napięć na linii danych ? - układ pracuje na napięciu do 3.3V<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=230">ps19</a> — 21 lip 2015, o 12:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Alan Bejnarowicz]]></name></author>
<updated>2015-07-21T10:17:45+01:00</updated>
<published>2015-07-21T10:17:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=135081#p135081</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=135081#p135081"/>
<title type="html"><![CDATA[Re: Problem z modułem MPU-6050.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=135081#p135081"><![CDATA[
Zaraz to sprawdzę<br /><br /><br />Wysłane z iPad za pomocą Tapatalk<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 32 minutach ]</span></strong><br /><br />Dodałem do kodu funkcje init i stwierdzam, że funkcja zapis dobrze działa. Sprawdziłem wszystkie zapisywane rejestry i zapisane są dobrze.<br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 20 lip 2015<br /> *      Author: Alan<br /> */<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#include &quot;I2C_TWI/i2c_twi.h&quot;<br />#include &quot;MKUART/mkuart.h&quot;<br />#include &quot;mpu.h&quot;<br /><br /><br /><br /><br />#define ADDRESSW 0xD0<br /><br />void init_mpu6050(void);<br />uint8_t TWI_odczyt_bajt( uint8_t adr);<br />void TWI_zapis_znak(uint8_t SLA, uint8_t adr, uint8_t bajt);<br /><br />int main (void){<br /><br />USART_Init(__UBRR);<br />i2cSetBitrate(100);<br />sei();<br /><br /><br />while(1) {<br />TWI_zapis_znak(0,0x6B, 0);  //sleep mode<br />init_mpu6050();<br /><br /><br />int i;<br />for( i = 13; i &lt;= 117; i++ )<br />{<br /> char data =   TWI_odczyt_bajt(i);<br /><br /> uart_putc('\r');// wyślij znak CR (enter)<br /> uart_putc('\n');// wyślij znak LF (nowa linia)<br />uart_putint(i,10);<br />uart_puts(&quot;. &quot;);<br />int dataint = data;<br />uart_putint(dataint,10);<br /><br />}<br /><br />_delay_ms(1000);<br /><br />}<br /><br /><br />}<br /><br /><br />uint8_t TWI_odczyt_bajt( uint8_t adr)<br />{<br />uint8_t temp;<br />TWI_start();<br />TWI_write(ADDRESSW);<br />TWI_write(adr);<br />TWI_start();<br />TWI_write(ADDRESSW+1);<br />temp = TWI_read(NACK);<br />TWI_stop();<br />return temp;<br />}<br />void TWI_zapis_znak(uint8_t SLA, uint8_t adr, uint8_t bajt)<br />{<br />TWI_start();<br />TWI_write(ADDRESSW);<br />TWI_write(adr);<br />TWI_write(bajt);<br />TWI_stop();<br />}<br /><br />void init_mpu6050(void)<br />{<br />//Sets clock source to gyro reference w/ PLL<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_PWR_MGMT_1, 0x02);<br /><br />//Sets sample rate to 1000/1+9 = 100Hz<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_SMPLRT_DIV, 0x09);<br /><br />//Disable FSync, 5Hz DLPF<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_CONFIG, 0x06);<br /><br />//Disable gyro self tests, scale of 2000 degrees/s<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_GYRO_CONFIG, 0x18);<br /><br />//Disable accel self tests, scale of +-16g, no DHPF<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_ACCEL_CONFIG, 0x18);<br /><br />//Freefall threshold of &lt;|0mg|<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_FF_THR, 0x00);<br /><br />//Freefall duration limit of 0<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_FF_DUR, 0x00);<br /><br />//Motion threshold of &gt;0mg<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_MOT_THR, 0x00);<br /><br />//Motion duration of &gt;0s<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_MOT_DUR, 0x00);<br /><br />//Zero motion threshold<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_ZRMOT_THR, 0x00);<br /><br />//Zero motion duration threshold<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_ZRMOT_DUR, 0x00);<br /><br />//Disable sensor output to FIFO buffer<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_FIFO_EN, 0x00);<br /><br />//AUX I2C setup<br />//Sets AUX I2C to single master control, plus other config<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_MST_CTRL, 0x00);<br />//Setup AUX I2C slaves<br />  TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV0_ADDR, 0x00);<br />  TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV0_REG, 0x00);<br />  TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV0_CTRL, 0x00);<br />  TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV1_ADDR, 0x00);<br />  TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV1_REG, 0x00);<br />  TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV1_CTRL, 0x00);<br />  TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV2_ADDR, 0x00);<br />  TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV2_REG, 0x00);<br />  TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV2_CTRL, 0x00);<br />  TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV3_ADDR, 0x00);<br />  TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV3_REG, 0x00);<br />  TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV3_CTRL, 0x00);<br />  TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV4_ADDR, 0x00);<br />  TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV4_REG, 0x00);<br />  TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV4_DO, 0x00);<br />  TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV4_CTRL, 0x00);<br />  TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV4_DI, 0x00);<br /><br />  //Setup INT pin and AUX I2C pass through<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_INT_PIN_CFG, 0x00);<br />//Enable data ready interrupt<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_INT_ENABLE, 0x00);<br /><br />//Slave out, dont care<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV0_DO, 0x00);<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV1_DO, 0x00);<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV2_DO, 0x00);<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV3_DO, 0x00);<br /><br />//More slave config<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_MST_DELAY_CTRL, 0x00);<br /><br />//Reset sensor signal paths<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_SIGNAL_PATH_RESET, 0x00);<br /><br />//Motion detection control<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_MOT_DETECT_CTRL, 0x00);<br /><br />//Disables FIFO, AUX I2C, FIFO and I2C reset bits to 0<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_USER_CTRL, 0x00);<br /><br />//Controls frequency of wakeups in accel low power mode plus the sensor standby modes<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_PWR_MGMT_2, 0x00);<br /><br />//Data transfer to and from the FIFO buffer<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_FIFO_R_W, 0x00);<br /><br />}[/syntax]<br /><br />plik mpu.h jest ten sam co ostatnio<br /><br />Wynik w terminalu zgadza się.<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">13. 0<br />14. 0<br />15. 0<br />16. 0<br />17. 0<br />18. 0<br />19. 0<br />20. 0<br />21. 0<br />22. 0<br />23. 0<br />24. 0<br />25. 9         --TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_SMPLRT_DIV, 0x09);<br />26. 6         --TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_CONFIG, 0x06);<br />27. 24       --TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_GYRO_CONFIG, 0x18);<br />28. 24       --TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_ACCEL_CONFIG, 0x18);<br />29. 0<br />30. 0<br />31. 0<br />32. 0<br />33. 0<br />34. 0<br />35. 0<br />36. 0<br />37. 0<br />38. 0<br />39. 0<br />40. 0<br />41. 0<br />42. 0<br />43. 0<br />44. 0<br />45. 0<br />46. 0<br />47. 0<br />48. 0<br />49. 0<br />50. 0<br />51. 0<br />52. 0<br />53. 0<br />54. 0<br />55. 0<br />56. 0<br />57. 0<br />58. 0<br />59. 0<br />60. 0<br />61. 0<br />62. 0<br />63. 0<br />64. 0<br />65. 0     -- MPU6050_RA_TEMP_OUT_H <br />66. 0     -- MPU6050_RA_TEMP_OUT_L   <br />67. 0     --MPU6050_RA_GYRO_XOUT_H<br />68. 0     --MPU6050_RA_GYRO_XOUT_L                Tu powinny pokazać się jakiekolwiek wartości.<br />69. 0     --MPU6050_RA_GYRO_YOUT_H<br />70. 0     --MPU6050_RA_GYRO_YOUT_L<br />71. 0     --MPU6050_RA_GYRO_ZOUT_H<br />72. 0     --MPU6050_RA_GYRO_ZOUT_L<br />73. 0<br />74. 0<br />75. 0<br />76. 0<br />77. 0<br />78. 0<br />79. 0<br />80. 0<br />81. 0<br />82. 0<br />83. 0<br />84. 0<br />85. 0<br />86. 0<br />87. 0<br />88. 0<br />89. 0<br />90. 0<br />91. 0<br />92. 0<br />93. 0<br />94. 0<br />95. 0<br />96. 0<br />97. 0<br />98. 0<br />99. 0<br />100. 0<br />101. 0<br />102. 0<br />103. 0<br />104. 0<br />105. 0<br />106. 0<br />107. 2   --TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_PWR_MGMT_1, 0x02);<br />108. 0<br />109. 0<br />110. 18<br />111. 4<br />112. 0<br />113. 0<br />114. 0<br />115. 0<br />116. 0<br />117. 104<br /><br /></div><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2551">Alan Bejnarowicz</a> — 21 lip 2015, o 10:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Daniel880]]></name></author>
<updated>2015-07-20T17:46:25+01:00</updated>
<published>2015-07-20T17:46:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=135021#p135021</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=135021#p135021"/>
<title type="html"><![CDATA[Re: Problem z modułem MPU-6050.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=135021#p135021"><![CDATA[
hmmm... ciekawa sprawa. Rejestry 110 i 111 nie mają za bardzo znaczenia. Nie są nawet uwzględnione w spisie rejestrów. U mnie taka inicjalizaca działa. Rejestry też dobrze odczytujesz bo w 117 jest to co powinno. Jedyne co to twoja funkcja do zapisu znaku średnio działa.. zapisałeś 0 a po odczytaniu masz w nim 2.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2328">Daniel880</a> — 20 lip 2015, o 17:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Alan Bejnarowicz]]></name></author>
<updated>2015-07-20T11:58:06+01:00</updated>
<published>2015-07-20T11:58:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=135000#p135000</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=135000#p135000"/>
<title type="html"><![CDATA[Re: Problem z modułem MPU-6050.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=135000#p135000"><![CDATA[
Dziś zauważyłem że jestem głupi, ponieważ źle ustawiłem adres modułu. odczytałem poprawnie rejestry.<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">1. 0<br />2. 0<br />3. 0<br />4. 0<br />5. 0<br />6. 0<br />7. 0<br />8. 0<br />9. 0<br />10. 0<br />11. 0<br />12. 0<br />13. 0<br />14. 0<br />15. 0<br />16. 0<br />17. 0<br />18. 0<br />19. 0<br />20. 0<br />21. 0<br />22. 0<br />23. 0<br />24. 0<br />25. 9<br />26. 6<br />27. 24<br />28. 24<br />29. 0<br />30. 0<br />31. 0<br />32. 0<br />33. 0<br />34. 0<br />35. 0<br />36. 0<br />37. 0<br />38. 0<br />39. 0<br />40. 0<br />41. 0<br />42. 0<br />43. 0<br />44. 0<br />45. 0<br />46. 0<br />47. 0<br />48. 0<br />49. 0<br />50. 0<br />51. 0<br />52. 0<br />53. 0<br />54. 0<br />55. 0<br />56. 0<br />57. 0<br />58. 0<br />59. 0<br />60. 0<br />61. 0<br />62. 0<br />63. 0<br />64. 0<br />65. 0<br />66. 0<br />67. 0<br />68. 0<br />69. 0<br />70. 0<br />71. 0<br />72. 0<br />73. 0<br />74. 0<br />75. 0<br />76. 0<br />77. 0<br />78. 0<br />79. 0<br />80. 0<br />81. 0<br />82. 0<br />83. 0<br />84. 0<br />85. 0<br />86. 0<br />87. 0<br />88. 0<br />89. 0<br />90. 0<br />91. 0<br />92. 0<br />93. 0<br />94. 0<br />95. 0<br />96. 0<br />97. 0<br />98. 0<br />99. 0<br />100. 0<br />101. 0<br />102. 0<br />103. 0<br />104. 0<br />105. 0<br />106. 0<br />107. 2<br />108. 0<br />109. 0<br />110. 95<br />111. 199<br />112. 0<br />113. 0<br />114. 0<br />115. 0<br />116. 0<br />117. 104<br /> <br /></div><br /><br /><br />Kod programu jest taki.<br /><br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 20 lip 2015<br /> *      Author: Alan<br /> */<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#include &quot;I2C_TWI/i2c_twi.h&quot;<br />#include &quot;MKUART/mkuart.h&quot;<br /><br /><br /><br /><br /><br />#define ADDRESSW 0xD0<br /><br /><br />uint8_t TWI_odczyt_bajt( uint8_t adr);<br />void TWI_zapis_znak( uint8_t adr, uint8_t bajt);<br /><br />int main (void){<br /><br />USART_Init(__UBRR);<br />i2cSetBitrate(100);<br />sei();<br />TWI_zapis_znak(0x6B, 0);  //sleep mode<br /><br /><br />while(1) {<br /><br />int i;<br />for( i = 1; i &lt;= 117; i++ )<br />{<br /> char data =   TWI_odczyt_bajt(i);<br /><br /> uart_putc('\r');// wyślij znak CR (enter)<br /> uart_putc('\n');// wyślij znak LF (nowa linia)<br />uart_putint(i,10);<br />uart_puts(&quot;. &quot;);<br />int dataint = data;<br />uart_putint(dataint,10);<br /><br />}<br /><br />_delay_ms(1000);<br /><br />}<br /><br /><br />}<br /><br /><br />uint8_t TWI_odczyt_bajt( uint8_t adr)<br />{<br />uint8_t temp;<br />TWI_start();<br />TWI_write(ADDRESSW);<br />TWI_write(adr);<br />TWI_start();<br />TWI_write(ADDRESSW+1);<br />temp = TWI_read(NACK);<br />TWI_stop();<br />return temp;<br />}<br />void TWI_zapis_znak( uint8_t adr, uint8_t bajt)<br />{<br />TWI_start();<br />TWI_write(ADDRESSW);<br />TWI_write(adr);<br />TWI_write(bajt);<br />TWI_stop();<br />}[/syntax]<br />Rejestry 110 i 111 się zmieniają.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2551">Alan Bejnarowicz</a> — 20 lip 2015, o 11:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Alan Bejnarowicz]]></name></author>
<updated>2015-07-20T10:42:44+01:00</updated>
<published>2015-07-20T10:42:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=134987#p134987</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=134987#p134987"/>
<title type="html"><![CDATA[Re: Problem z modułem MPU-6050.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=134987#p134987"><![CDATA[
Zaraz odczytam wszystkie rejestry i powiem<br /><br /><br />Wysłane z iPad za pomocą Tapatalk<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2551">Alan Bejnarowicz</a> — 20 lip 2015, o 10:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Daniel880]]></name></author>
<updated>2015-07-17T10:47:02+01:00</updated>
<published>2015-07-17T10:47:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=134787#p134787</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=134787#p134787"/>
<title type="html"><![CDATA[Re: Problem z modułem MPU-6050.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=134787#p134787"><![CDATA[
Tak na pierwszy rzut oka trzeba by jeszcze wyjść z trybu SLEEP. Rejestr 0x6B. Mógłbys napisać coś więcej.. Co się dzieje.. co nie działa. Czy masz jakieś odczyty?? Jeśli tak to jakie? Program się zawiesza?? Osobiście korzystam z MPU6050 i jego podstawowa inicjalizacja to 2-3 komendy.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2328">Daniel880</a> — 17 lip 2015, o 10:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Alan Bejnarowicz]]></name></author>
<updated>2015-07-15T22:18:40+01:00</updated>
<published>2015-07-15T22:18:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=134669#p134669</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=134669#p134669"/>
<title type="html"><![CDATA[Re: Problem z modułem MPU-6050.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=134669#p134669"><![CDATA[
Trudzę się tym kolejny dzień ale moje próby okiełznania tego nic nie dały. Spróbuję użyć jeszcze kodu z arduino.<br /><br /><br />Wysłane z iPad za pomocą Tapatalk<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2551">Alan Bejnarowicz</a> — 15 lip 2015, o 22:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Alan Bejnarowicz]]></name></author>
<updated>2015-07-14T16:09:43+01:00</updated>
<published>2015-07-14T16:09:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=134524#p134524</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=134524#p134524"/>
<title type="html"><![CDATA[Problem z modułem MPU-6050.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12324&amp;p=134524#p134524"><![CDATA[
Witam wszystkich forumowiczów. W trakcie udowy robota napotkałem problem z akcelerometrem i żyroskopem MPU 6050.<br />Napisałem taki kod , funkcje odpowiedzialne za moduł przeportowałem z Arduino. W kodzie jest jeszcze napisana obsługa czujnika koloru, ale on działa poprawnie. Z góry dziękuję za pomoc. Na wyświetlaczu pojawiają się tylko Wyniki X,Y,Z = -5912 . <br />[syntax=c]/*<br /> * main.c<br /><br /> *<br /> *  Created on: 14 lip 2015<br /> *      Author: Alan<br /> */<br /><br /><br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#include &quot;LCD/lcd44780.h&quot;<br />#include &quot;I2C_TWI/i2c_twi.h&quot;<br />#include &quot;mpu.h&quot;<br /><br /><br /><br /><br />void TWIM_WriteRegister(char reg, char value);<br />char TWIM_ReadRegister(char reg);<br /><br /><br />char TWI_odczyt_bajt (uint8_t addr,uint8_t reg);<br />void TWI_zapis_znak (uint8_t addr,uint8_t reg,uint8_t val);<br /><br /><br /><br />void init_mpu6050(void);<br /><br />int16_t mpu6050_get_gyro(char os);<br /><br />int16_t mpu6050_get_accel(char os);<br /><br />int16_t mpu6050_get_temp(void);<br /><br />// definicje dla preprocesora<br />#define S3_PIN (1&lt;&lt;PB0)// definicja pinu do którego podłączona jest dioda<br />#define S3_OFF PORTB &amp;= ~S3_PIN// makrodefinicja – załączenie diody<br />#define S3_ON PORTB |= S3_PIN// makrodefinicja – wyłączenie diody<br />// definicje dla preprocesora<br />#define S2_PIN (1&lt;&lt;PB1)// definicja pinu do którego podłączona jest dioda<br />#define S2_OFF PORTB &amp;= ~S2_PIN// makrodefinicja – załączenie diody<br />#define S2_ON PORTB |= S2_PIN// makrodefinicja – wyłączenie diody<br /><br /><br />#define ADDRESSW 0x68<br />#define ADDRESSR 0xE8<br /><br /><br />int s0=3,s1=4,s2=5,s3=6;<br />int out=2;<br />int flag=0;<br />uint8_t counter=0;<br />uint8_t countR=0,countG=0,countB=0;<br />uint32_t sredniaR=0, sredniaG=0, sredniaB=0;<br />uint8_t dt=3;<br /><br /><br /><br /><br /><br />int main (void) {<br />i2cSetBitrate(100);<br />lcd_init();<br /><br />// ustawienie TIMER0<br />TCCR0 |= (1&lt;&lt;WGM01);// tryb CTC<br />TCCR0 |= (1&lt;&lt;CS02)|(1&lt;&lt;CS00);// preskaler = 1024<br />OCR0 =155;// dodatkowy podział przez 39 (rej. przepełnienia)<br />TIMSK |= (1&lt;&lt;OCIE0);// zezwolenie na przerwanie CompareMatch<br /><br />// Przerwanie INT0<br />MCUCR |= (1&lt;&lt;ISC01);// wyzwalanie zboczem opadającym<br />GICR |= (1&lt;&lt;INT0);// odblokowanie przerwania<br /><br />DDRB |= S3_PIN | S2_PIN;<br /><br />DDRA |= (1&lt;&lt;PA7);// ustawiamy kierunek linii podświetlenia LCD jako WYJŚCIE<br />PORTA |= (1&lt;&lt;PA7);// załączamy podświetlenie LCD - stan wysoki<br /><br />sei();<br /><br />lcd_str(&quot;Start.....&quot;);<br />//TWIM_WriteRegister(0x6B, 0);  //sleep mode<br /><br />_delay_ms(30);<br />init_mpu6050();<br /><br />_delay_ms(30);<br />char c;<br />uint8_t x;<br />c = TWIM_ReadRegister(0x75);<br />x= c;<br />lcd_cls();<br />lcd_int(x);<br />_delay_ms(2000);<br /><br />lcd_cls();<br />lcd_int(mpu6050_get_temp());<br />_delay_ms(2000);<br />while (1){<br />//TWIM_WriteRegister(0x3B, 0);  //sleep mode<br /><br /> lcd_locate(0,0);<br /><br />   lcd_str(&quot;X=&quot;);<br />   lcd_int(mpu6050_get_gyro('x'));<br />   lcd_str(&quot; &quot;);<br />   lcd_str(&quot;Y=&quot;);<br />   lcd_int(mpu6050_get_gyro('y'));<br />   lcd_str(&quot; &quot;);<br />   lcd_locate(1,0);<br />           lcd_str(&quot;Z=&quot;);<br />       lcd_int(mpu6050_get_gyro('z'));<br /><br />// lcd_locate(0,0);<br />//   lcd_str(&quot;X=&quot;);<br />//   lcd_int(MPU6050_ReadGyro(0));<br />//   lcd_str(&quot; &quot;);<br />//   lcd_str(&quot;Y=&quot;);<br />//   lcd_int(MPU6050_ReadGyro(1));<br />//   lcd_str(&quot; &quot;);<br />//   lcd_locate(1,0);<br />//           lcd_str(&quot;Z=&quot;);<br />//       lcd_int(MPU6050_ReadGyro(2));<br /><br />// lcd_locate(0,0);<br />//   lcd_str(&quot;X=&quot;);<br />//   lcd_int(ACC.AXH);<br />//   lcd_int(ACC.AXL);<br />//   lcd_str(&quot; &quot;);<br />//   lcd_str(&quot;Y=&quot;);<br />//   lcd_int(ACC.AYH);<br />//  lcd_int(ACC.AYL);<br />//   lcd_str(&quot; &quot;);<br />//   lcd_locate(1,0);<br />//           lcd_str(&quot;Z=&quot;);<br />//           lcd_int(ACC.AZH);<br />//           lcd_int(ACC.AZL);<br />//           MPU6050_getAcceleration(&amp;ACC);<br />// lcd_locate(0,0);<br />//   lcd_str(&quot;R=&quot;);<br />//   lcd_int(sredniaR);<br />//   lcd_str(&quot; &quot;);<br />//   lcd_str(&quot;G=&quot;);<br />//   lcd_int(sredniaG);<br />//   lcd_str(&quot; &quot;);<br />//   lcd_locate(1,0);<br />//           lcd_str(&quot;B=&quot;);<br />//       lcd_int(sredniaB);<br />//<br />//<br />if(sredniaR&lt;sredniaB) {<br />lcd_locate (1,8);<br />lcd_str(&quot;RED&quot;);<br />}<br /><br />if(sredniaR&gt;sredniaB) {<br />lcd_locate (1,8);<br />lcd_str(&quot;BLUE&quot;);<br />}<br /><br />//if(sredniaR&gt;150&amp;&amp;sredniaG&gt;150) {<br />//lcd_locate (1,7);<br />//lcd_str(&quot;WHITE&quot;);<br />//}<br /><br />     _delay_ms(500);<br />     lcd_cls();<br /><br />}<br /><br /><br /><br /><br />}<br /><br />void TWI_zapis_znak (uint8_t addr,uint8_t reg,uint8_t val){<br />TWIM_WriteRegister(reg,val);<br /><br />}<br /><br /><br /><br />char TWI_odczyt_bajt (uint8_t addr,uint8_t reg){<br />return TWIM_ReadRegister(reg);<br /><br />}<br /><br />void MPU6050_Init(){<br />TWIM_WriteRegister(0x6B, 0x01);//PLL with X axis gyroscope reference , sleep enable<br />TWIM_WriteRegister(0x1B, 0x00);//Scale of gyroscope 250<br />TWIM_WriteRegister(0x1C, 0x00);//Scale range of accelerometr +/- 2g<br />}<br /><br /><br /><br /><br />void TWIM_WriteRegister(char reg, char value)<br />{<br />    TWI_start();<br />    TWI_write(ADDRESSW);<br />    TWI_write(reg);<br />   TWI_write (value);<br />    TWI_stop();<br />}<br /><br />char TWIM_ReadRegister(char reg)<br />{<br />TWI_start();<br />    TWI_write(ADDRESSW);<br />    TWI_write(reg);<br />       TWI_start();<br />       TWI_write(ADDRESSR);<br /><br />    char ret =TWI_read(NACK);<br />    TWI_stop();<br />    return ret;<br />}<br /><br /><br /><br /><br /><br /><br /><br />void init_mpu6050(void)<br />{<br />//Sets clock source to gyro reference w/ PLL<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_PWR_MGMT_1, 0x02);<br /><br />//Sets sample rate to 1000/1+9 = 100Hz<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_SMPLRT_DIV, 0x09);<br /><br />//Disable FSync, 5Hz DLPF<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_CONFIG, 0x06);<br /><br />//Disable gyro self tests, scale of 2000 degrees/s<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_GYRO_CONFIG, 0x18);<br /><br />//Disable accel self tests, scale of +-16g, no DHPF<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_ACCEL_CONFIG, 0x18);<br /><br />//Freefall threshold of &lt;|0mg|<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_FF_THR, 0x00);<br /><br />//Freefall duration limit of 0<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_FF_DUR, 0x00);<br /><br />//Motion threshold of &gt;0mg<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_MOT_THR, 0x00);<br /><br />//Motion duration of &gt;0s<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_MOT_DUR, 0x00);<br /><br />//Zero motion threshold<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_ZRMOT_THR, 0x00);<br /><br />//Zero motion duration threshold<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_ZRMOT_DUR, 0x00);<br /><br />//Disable sensor output to FIFO buffer<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_FIFO_EN, 0x00);<br /><br />//AUX I2C setup<br />//Sets AUX I2C to single master control, plus other config<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_MST_CTRL, 0x00);<br />//Setup AUX I2C slaves<br />  TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV0_ADDR, 0x00);<br />  TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV0_REG, 0x00);<br />  TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV0_CTRL, 0x00);<br />  TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV1_ADDR, 0x00);<br />  TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV1_REG, 0x00);<br />  TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV1_CTRL, 0x00);<br />  TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV2_ADDR, 0x00);<br />  TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV2_REG, 0x00);<br />  TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV2_CTRL, 0x00);<br />  TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV3_ADDR, 0x00);<br />  TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV3_REG, 0x00);<br />  TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV3_CTRL, 0x00);<br />  TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV4_ADDR, 0x00);<br />  TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV4_REG, 0x00);<br />  TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV4_DO, 0x00);<br />  TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV4_CTRL, 0x00);<br />  TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV4_DI, 0x00);<br /><br />  //Setup INT pin and AUX I2C pass through<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_INT_PIN_CFG, 0x00);<br />//Enable data ready interrupt<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_INT_ENABLE, 0x00);<br /><br />//Slave out, dont care<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV0_DO, 0x00);<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV1_DO, 0x00);<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV2_DO, 0x00);<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_SLV3_DO, 0x00);<br /><br />//More slave config<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_I2C_MST_DELAY_CTRL, 0x00);<br /><br />//Reset sensor signal paths<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_SIGNAL_PATH_RESET, 0x00);<br /><br />//Motion detection control<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_MOT_DETECT_CTRL, 0x00);<br /><br />//Disables FIFO, AUX I2C, FIFO and I2C reset bits to 0<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_USER_CTRL, 0x00);<br /><br />//Controls frequency of wakeups in accel low power mode plus the sensor standby modes<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_PWR_MGMT_2, 0x00);<br /><br />//Data transfer to and from the FIFO buffer<br />TWI_zapis_znak(MPU6050_ADDRESS, MPU6050_RA_FIFO_R_W, 0x00);<br /><br />};<br /><br />int16_t mpu6050_get_gyro(char os)<br />{<br />int16_t gyro = 0;<br /><br />if(os == 'x') gyro = (TWI_odczyt_bajt(MPU6050_ADDRESS,MPU6050_RA_GYRO_XOUT_H) &lt;&lt; 8 | TWI_odczyt_bajt(MPU6050_ADDRESS,MPU6050_RA_GYRO_XOUT_L));<br />if(os == 'y') gyro = (TWI_odczyt_bajt(MPU6050_ADDRESS,MPU6050_RA_GYRO_YOUT_H) &lt;&lt; 8 | TWI_odczyt_bajt(MPU6050_ADDRESS,MPU6050_RA_GYRO_YOUT_L));<br />if(os == 'z') gyro = (TWI_odczyt_bajt(MPU6050_ADDRESS,MPU6050_RA_GYRO_ZOUT_H) &lt;&lt; 8 | TWI_odczyt_bajt(MPU6050_ADDRESS,MPU6050_RA_GYRO_ZOUT_L));<br /><br />return gyro;<br />};<br /><br />int16_t mpu6050_get_accel(char os)<br />{<br />int16_t accel = 0;<br /><br />if(os == 'x') accel = (TWI_odczyt_bajt(MPU6050_ADDRESS,MPU6050_RA_ACCEL_XOUT_H) &lt;&lt; 8 | TWI_odczyt_bajt(MPU6050_ADDRESS,MPU6050_RA_ACCEL_XOUT_L));<br />if(os == 'y') accel = (TWI_odczyt_bajt(MPU6050_ADDRESS,MPU6050_RA_ACCEL_YOUT_H) &lt;&lt; 8 | TWI_odczyt_bajt(MPU6050_ADDRESS,MPU6050_RA_ACCEL_YOUT_L));<br />if(os == 'z') accel = (TWI_odczyt_bajt(MPU6050_ADDRESS,MPU6050_RA_ACCEL_ZOUT_H) &lt;&lt; 8 | TWI_odczyt_bajt(MPU6050_ADDRESS,MPU6050_RA_ACCEL_ZOUT_L));<br /><br />return accel;<br />};<br /><br />int16_t mpu6050_get_temp(void)<br />{<br />int16_t temp = 0;<br /><br />temp = (TWI_odczyt_bajt(MPU6050_ADDRESS,MPU6050_RA_TEMP_OUT_H) &lt;&lt; 8 | TWI_odczyt_bajt(MPU6050_ADDRESS,MPU6050_RA_TEMP_OUT_L));<br /><br />return (temp/340)+36.53;<br />};<br /><br />   //Function to read the gyroscope rate data and convert it into degrees/s<br /><br /><br />ISR(TIMER0_COMP_vect) {<br /><br /><br />    flag++;<br /> if(flag==1)<br />  {<br />    countR=counter;<br /><br />    S2_ON;<br />    S3_ON;<br />  }<br />  else if(flag==2)<br />   {<br />    countG=counter;<br /><br />   S2_OFF;<br />    S3_ON;;<br />   }<br />   else if(flag==3)<br />    {<br />    countB=counter;<br /><br /><br /><br />    S2_OFF;<br />    S3_OFF;<br /><br />    }<br />    else if(flag==4)<br />     {<br />     flag=0;<br /><br />     }<br />       counter=0;<br /><br />   sredniaR = sredniaR * dt;<br />   sredniaR = sredniaR + countR;<br />   sredniaR = sredniaR / (dt+1);<br /><br />   sredniaG = sredniaG * dt;<br />   sredniaG = sredniaG + countG;<br />   sredniaG = sredniaG / (dt+1);<br /><br />   sredniaB = sredniaB * dt;<br />   sredniaB = sredniaB + countB;<br />   sredniaB = sredniaB / (dt+1);<br /><br />}<br /><br />// procedura obsługi przerwania INT 0<br />ISR( INT0_vect ) {<br />counter++;<br />}[/syntax]<br /><br />i plik mpu.h<br /><br />[syntax=c]#define MPU6050_ADDRESS 0xD0<br />#define MPU6050_RA_XG_OFFS_TC 0x00<br />#define MPU6050_RA_YG_OFFS_TC 0x01<br />#define MPU6050_RA_ZG_OFFS_TC 0x02<br />#define MPU6050_RA_X_FINE_GAIN 0x03<br />#define MPU6050_RA_Y_FINE_GAIN 0x04<br />#define MPU6050_RA_Z_FINE_GAIN 0x05<br />#define MPU6050_RA_XA_OFFS_H 0x06<br />#define MPU6050_RA_XA_OFFS_L_TC 0x07<br />#define MPU6050_RA_YA_OFFS_H 0x08<br />#define MPU6050_RA_YA_OFFS_L_TC 0x09<br />#define MPU6050_RA_ZA_OFFS_H 0x0A<br />#define MPU6050_RA_ZA_OFFS_L_TC 0x0B<br />#define MPU6050_RA_XG_OFFS_USRH 0x13<br />#define MPU6050_RA_XG_OFFS_USRL 0x14<br />#define MPU6050_RA_YG_OFFS_USRH 0x15<br />#define MPU6050_RA_YG_OFFS_USRL 0x16<br />#define MPU6050_RA_ZG_OFFS_USRH 0x17<br />#define MPU6050_RA_ZG_OFFS_USRL 0x18<br />#define MPU6050_RA_SMPLRT_DIV 0x19<br />#define MPU6050_RA_CONFIG 0x1A<br />#define MPU6050_RA_GYRO_CONFIG 0x1B<br />#define MPU6050_RA_ACCEL_CONFIG 0x1C<br />#define MPU6050_RA_FF_THR 0x1D<br />#define MPU6050_RA_FF_DUR 0x1E<br />#define MPU6050_RA_MOT_THR 0x1F<br />#define MPU6050_RA_MOT_DUR 0x20<br />#define MPU6050_RA_ZRMOT_THR 0x21<br />#define MPU6050_RA_ZRMOT_DUR 0x22<br />#define MPU6050_RA_FIFO_EN 0x23<br />#define MPU6050_RA_I2C_MST_CTRL 0x24<br />#define MPU6050_RA_I2C_SLV0_ADDR 0x25<br />#define MPU6050_RA_I2C_SLV0_REG 0x26<br />#define MPU6050_RA_I2C_SLV0_CTRL 0x27<br />#define MPU6050_RA_I2C_SLV1_ADDR 0x28<br />#define MPU6050_RA_I2C_SLV1_REG 0x29<br />#define MPU6050_RA_I2C_SLV1_CTRL 0x2A<br />#define MPU6050_RA_I2C_SLV2_ADDR 0x2B<br />#define MPU6050_RA_I2C_SLV2_REG 0x2C<br />#define MPU6050_RA_I2C_SLV2_CTRL 0x2D<br />#define MPU6050_RA_I2C_SLV3_ADDR 0x2E<br />#define MPU6050_RA_I2C_SLV3_REG 0x2F<br />#define MPU6050_RA_I2C_SLV3_CTRL 0x30<br />#define MPU6050_RA_I2C_SLV4_ADDR 0x31<br />#define MPU6050_RA_I2C_SLV4_REG 0x32<br />#define MPU6050_RA_I2C_SLV4_DO 0x33<br />#define MPU6050_RA_I2C_SLV4_CTRL 0x34<br />#define MPU6050_RA_I2C_SLV4_DI 0x35<br />#define MPU6050_RA_I2C_MST_STATUS 0x36<br />#define MPU6050_RA_INT_PIN_CFG 0x37<br />#define MPU6050_RA_INT_ENABLE 0x38<br />#define MPU6050_RA_DMP_INT_STATUS 0x39<br />#define MPU6050_RA_INT_STATUS 0x3A<br />#define MPU6050_RA_ACCEL_XOUT_H 0x3B<br />#define MPU6050_RA_ACCEL_XOUT_L 0x3C<br />#define MPU6050_RA_ACCEL_YOUT_H 0x3D<br />#define MPU6050_RA_ACCEL_YOUT_L 0x3E<br />#define MPU6050_RA_ACCEL_ZOUT_H 0x3F<br />#define MPU6050_RA_ACCEL_ZOUT_L 0x40<br />#define MPU6050_RA_TEMP_OUT_H 0x41<br />#define MPU6050_RA_TEMP_OUT_L 0x42<br />#define MPU6050_RA_GYRO_XOUT_H 0x43<br />#define MPU6050_RA_GYRO_XOUT_L 0x44<br />#define MPU6050_RA_GYRO_YOUT_H 0x45<br />#define MPU6050_RA_GYRO_YOUT_L 0x46<br />#define MPU6050_RA_GYRO_ZOUT_H 0x47<br />#define MPU6050_RA_GYRO_ZOUT_L 0x48<br />#define MPU6050_RA_EXT_SENS_DATA_00 0x49<br />#define MPU6050_RA_EXT_SENS_DATA_01 0x4A<br />#define MPU6050_RA_EXT_SENS_DATA_02 0x4B<br />#define MPU6050_RA_EXT_SENS_DATA_03 0x4C<br />#define MPU6050_RA_EXT_SENS_DATA_04 0x4D<br />#define MPU6050_RA_EXT_SENS_DATA_050x4E<br />#define MPU6050_RA_EXT_SENS_DATA_060x4F<br />#define MPU6050_RA_EXT_SENS_DATA_07 0x50<br />#define MPU6050_RA_EXT_SENS_DATA_08 0x51<br />#define MPU6050_RA_EXT_SENS_DATA_09 0x52<br />#define MPU6050_RA_EXT_SENS_DATA_10 0x53<br />#define MPU6050_RA_EXT_SENS_DATA_11 0x54<br />#define MPU6050_RA_EXT_SENS_DATA_12 0x55<br />#define MPU6050_RA_EXT_SENS_DATA_13 0x56<br />#define MPU6050_RA_EXT_SENS_DATA_14 0x57<br />#define MPU6050_RA_EXT_SENS_DATA_15 0x58<br />#define MPU6050_RA_EXT_SENS_DATA_16 0x59<br />#define MPU6050_RA_EXT_SENS_DATA_17 0x5A<br />#define MPU6050_RA_EXT_SENS_DATA_18 0x5B<br />#define MPU6050_RA_EXT_SENS_DATA_19 0x5C<br />#define MPU6050_RA_EXT_SENS_DATA_20 0x5D<br />#define MPU6050_RA_EXT_SENS_DATA_21 0x5E<br />#define MPU6050_RA_EXT_SENS_DATA_22 0x5F<br />#define MPU6050_RA_EXT_SENS_DATA_23 0x60<br />#define MPU6050_RA_MOT_DETECT_STATUS 0x61<br />#define MPU6050_RA_I2C_SLV0_DO 0x63<br />#define MPU6050_RA_I2C_SLV1_DO 0x64<br />#define MPU6050_RA_I2C_SLV2_DO 0x65<br />#define MPU6050_RA_I2C_SLV3_DO 0x66<br />#define MPU6050_RA_I2C_MST_DELAY_CTRL 0x67<br />#define MPU6050_RA_SIGNAL_PATH_RESET 0x68<br />#define MPU6050_RA_MOT_DETECT_CTRL 0x69<br />#define MPU6050_RA_USER_CTRL 0x6A<br />#define MPU6050_RA_PWR_MGMT_1 0x6B<br />#define MPU6050_RA_PWR_MGMT_2 0x6C<br />#define MPU6050_RA_BANK_SEL 0x6D<br />#define MPU6050_RA_MEM_START_ADDR 0x6E<br />#define MPU6050_RA_MEM_R_W 0x6F<br />#define MPU6050_RA_DMP_CFG_1 0x70<br />#define MPU6050_RA_DMP_CFG_2 0x71<br />#define MPU6050_RA_FIFO_COUNTH 0x72<br />#define MPU6050_RA_FIFO_COUNTL0x73<br />#define MPU6050_RA_FIFO_R_W 0x74<br />#define MPU6050_RA_WHO_AM_I 0x75[/syntax]   <br /><br />Pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2551">Alan Bejnarowicz</a> — 14 lip 2015, o 16:09</p><hr />
]]></content>
</entry>
</feed>