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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-03-13T21:28:55+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=8&amp;t=17717&amp;mode</id>
<entry>
<author><name><![CDATA[Tom277]]></name></author>
<updated>2017-03-13T21:28:55+01:00</updated>
<published>2017-03-13T21:28:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17717&amp;p=184788#p184788</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17717&amp;p=184788#p184788"/>
<title type="html"><![CDATA[Re: MPL3115A2 błędny pomiar cziśnienia]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17717&amp;p=184788#p184788"><![CDATA[
Kolego <strong>janusz17</strong> jak często mogę odczytywać nowe dane z czujnika? Jakoś nie mogę ogarnąć pdf-a. Chciałbym odczytywać minimum 4 pomiary wysokości na sekundę, ale jak ustawię w trybie oczekiwania na nowy pomiar<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">IIC_RegWrite( 0xC0,0x26,0xB9)</div><br />to flaga PTOW w Sensor Status Register &quot;przychodzi&quot; mi co 1 sekundę czyli odczyt wysokości mam co sekundę.<br />Mógłbyś podpowiedzieć mi jak skonfigurować rejestry do częstszego odczytu danych? Chciałem zrobić np. odczyt &quot;ręczny&quot; z timera programowego.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=548">Tom277</a> — 13 mar 2017, o 21:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[janusz17]]></name></author>
<updated>2017-02-24T13:43:33+01:00</updated>
<published>2017-02-24T13:43:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17717&amp;p=183471#p183471</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17717&amp;p=183471#p183471"/>
<title type="html"><![CDATA[Re: MPL3115A2 błędny pomiar cziśnienia]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17717&amp;p=183471#p183471"><![CDATA[
Stacje meteorologiczne często podają tzw. ciśnienie zredukowane w odniesieniu do poziomu morza. Natomiast pomiar dokonywany wprost przez czujnik ciśnienia to ciśnienie bezwzględne. Oba te ciśnienia dość znacznie się różnią.<br />Ja stosowałem kiedyś następujące kody do odczytu tych czujników i nie miałem nigdy większej różnicy wskazań w stosunku do stacji meteorologicznej jak <br />2 hPa. Oczywiście mam na myśli ciśnienie bezwzględne.<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br /><br /><br />#include &quot;mpl3115a2.h&quot;<br />#include &quot;../I2C_TWI/i2c_twi.h&quot;<br /><br />const uint8_t tabela_ulamkow&#91;&#93; PROGMEM = {0, 1, 1, 2, 3, 3, 4, 4, 5, 6, 6, 7, 8, 8, 9, 9};<br /><br />uint32_t H;<br />uint8_t ulamek_H;<br />uint8_t znak_H;<br /><br />uint32_t P;<br />uint8_t ulamek_P;<br /><br />uint32_t delta_P;<br />uint8_t ulamek_delta_P;<br />uint8_t znak_delta_P;<br /><br /><br />/* 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 /><br />/* Put MPL3115A2 into Standby Mode*/<br /><br />uint8_t MPL3115A2_Standby (void)<br />{<br />  uint8_t n;<br />  /*<br />  **  Read current value of System Control 1 Register.<br />  **  Put sensor into Standby Mode.<br />  **  Return with previous value of System Control 1 Register.<br />  */<br />  n = TWI_read_register(MPL3115A2_ADDRESS, CTRL_REG1);<br />  TWI_write_register(MPL3115A2_ADDRESS, CTRL_REG1, n &amp; STANDBY_SBYB_0);<br /><br />  return(n);<br />}<br /><br /><br /><br />/* Initialize MPL3115A2*/<br /><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 /><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 />/* Obliczenie wysokości */<br />void MPL3115A2_oblicz_H (void)<br />{<br />uint8_t bufor&#91;3&#93;;<br />TWI_read_buf(MPL3115A2_ADDRESS, OUT_P_MSB_REG, 3, bufor);<br />H |= bufor&#91;0&#93;;<br />H &lt;&lt;= 8;<br />H |= bufor&#91;1&#93;;<br />if(bufor&#91;0&#93; &gt;= 0x80)<br />{<br />H = (~H) + 1;<br />znak_H = 1;<br />}<br />else<br />znak_H = 0;<br />ulamek_H = pgm_read_byte(tabela_ulamkow&#91;(bufor&#91;2&#93; &gt;&gt; 4)&#93;);<br />}<br /><br />/* Obliczenie ciśnienia */<br />void MPL3115A2_oblicz_P (void)<br />{<br />uint8_t bufor&#91;3&#93;;<br />TWI_read_buf(MPL3115A2_ADDRESS, OUT_P_MSB_REG, 3, bufor);<br />P = 0;<br />P |= bufor&#91;0&#93;;<br />P &lt;&lt;= 8;<br />P |= bufor&#91;1&#93;;<br />P &lt;&lt;= 2;<br />P |= bufor&#91;2&#93; &gt;&gt; 6;<br />ulamek_P = (uint8_t)(P % 100);<br />ulamek_P /= 10;<br />P /= 100;<br />}<br /><br />/* Obliczenie zmiany ciśnienia */<br />void MPL3115A2_oblicz_delta_P (void)<br />{<br />uint8_t bufor&#91;3&#93;;<br />TWI_read_buf(MPL3115A2_ADDRESS, OUT_P_DELTA_MSB_REG, 3, bufor);<br />delta_P = 0;<br />delta_P |= bufor&#91;0&#93;;<br />delta_P &lt;&lt;= 8;<br />delta_P |= bufor&#91;1&#93;;<br />delta_P &lt;&lt;= 2;<br />delta_P |= bufor&#91;2&#93; &gt;&gt; 6;<br />if(bufor&#91;0&#93; &gt; 0x7F)<br />{<br />znak_delta_P = 1;<br />delta_P |= 0xFFFC0000;<br />delta_P = (~delta_P) + 1;<br />}<br />else<br />{<br />znak_delta_P = 0;<br />}<br />ulamek_delta_P = (uint8_t)(P % 100);<br />ulamek_delta_P /= 10;<br />delta_P /= 100;<br />}[/syntax]<br />[syntax=c]#ifndef MPL3115A2_H_<br />#define MPL3115A2_H_<br /><br />#define MPL3115A2_ADDRESS0xC0<br /><br /><br /><br />/*<br />**<br />**  MPL3115A2 Sensor Internal Registers<br />*/<br />enum<br />{<br />  MPL3115A2_STATUS_00 = 0,          // 0x00<br />  MPL3115A2_OUT_P_MSB,              // 0x01<br />  MPL3115A2_OUT_P_CSB,              // 0x02<br />  MPL3115A2_OUT_P_LSB,              // 0x03<br />  MPL3115A2_OUT_T_MSB,              // 0x04<br />  MPL3115A2_OUT_T_LSB,              // 0x05<br />  MPL3115A2_OUT_DR_STATUS,          // 0x06<br />  MPL3115A2_OUT_P_DELTA_MSB,        // 0x07<br />  MPL3115A2_OUT_P_DELTA_CSB,        // 0x08<br />  MPL3115A2_OUT_P_DELTA_LSB,        // 0x09<br />  MPL3115A2_OUT_T_DELTA_MSB,        // 0x0A<br />  MPL3115A2_OUT_T_DELTA_LSB,        // 0x0B<br />  MPL3115A2_WHO_AM_I,               // 0x0C<br />  MPL3115A2_F_STATUS,               // 0x0D<br />  MPL3115A2_F_DATA,                 // 0x0E<br />  MPL3115A2_F_SETUP,                // 0x0F<br />  MPL3115A2_TIME_DLY,               // 0x10<br />  MPL3115A2_SYSMOD,                 // 0x11<br />  MPL3115A2_INT_SOURCE,             // 0x12<br />  MPL3115A2_PT_DATA_CFG,            // 0x13<br />  MPL3115A2_BAR_IN_MSB,             // 0x14<br />  MPL3115A2_BAR_IN_LSB,             // 0x15<br />  MPL3115A2_P_ARM_MSB,              // 0x16<br />  MPL3115A2_P_ARM_LSB,              // 0x17<br />  MPL3115A2_T_ARM,                  // 0x18<br />  MPL3115A2_P_ARM_WND_MSB,          // 0x19<br />  MPL3115A2_P_ARM_WND_LSB,          // 0x1A<br />  MPL3115A2_T_ARM_WND,              // 0x1B<br />  MPL3115A2_P_MIN_MSB,              // 0x1C<br />  MPL3115A2_P_MIN_CSB,              // 0x1D<br />  MPL3115A2_P_MIN_LSB,              // 0x1E<br />  MPL3115A2_T_MIN_MSB,              // 0x1F<br />  MPL3115A2_T_MIN_LSB,              // 0x20<br />  MPL3115A2_P_MAX_MSB,              // 0x21<br />  MPL3115A2_P_MAX_CSB,              // 0x22<br />  MPL3115A2_P_MAX_LSB,              // 0x23<br />  MPL3115A2_T_MAX_MSB,              // 0x24<br />  MPL3115A2_T_MAX_LSB,              // 0x25<br />  MPL3115A2_CTRL_REG1,              // 0x26<br />  MPL3115A2_CTRL_REG2,              // 0x27<br />  MPL3115A2_CTRL_REG3,              // 0x28<br />  MPL3115A2_CTRL_REG4,              // 0x29<br />  MPL3115A2_CTRL_REG5,              // 0x2A<br />  MPL3115A2_OFF_P,                  // 0x2B<br />  MPL3115A2_OFF_T,                  // 0x2C<br />  MPL3115A2_OFF_H                   // 0x2D<br />};<br /><br />/*<br />**  STATUS Registers<br />*/<br />#define STATUS_00_REG         0x00<br />#define DR_STATUS_00_REG      0x06<br />//<br />#define PTOW_BIT              Bit._7<br />#define POW_BIT               Bit._6<br />#define TOR_BIT               Bit._5<br /><br />#define PTDR_BIT              Bit._3<br />#define PDR_BIT               Bit._2<br />#define TDR_BIT               Bit._1<br /><br />#define PDR_MASK              0x04<br />#define TDR_MASK              0x02<br />//<br />#define ZYXOW_MASK            0x80<br />#define ZOW_MASK              0x40<br />#define YOR_MASK              0x20<br />#define XOR_MASK              0x10<br />#define ZYXDR_MASK            0x08<br />#define ZDR_MASK              0x04<br />#define YDR_MASK              0x02<br />#define XDR_MASK              0x01<br /><br />/*<br />**  8-Bit OUT Data Registers<br />*/<br />#define OUT_P_MSB_REG        0x01<br />#define OUT_P_CSB_REG        0x02<br />#define OUT_P_LSB_REG        0x03<br />#define OUT_T_MSB_REG        0x04<br />#define OUT_T_LSB_REG        0x05<br /><br />#define OUT_P_DELTA_MSB_REG  0x07<br />#define OUT_P_DELTA_CSB_REG  0x08<br />#define OUT_P_DELTA_LSB_REG  0x09<br />#define OUT_T_DELTA_MSB_REG  0x0A<br />#define OUT_T_DELTA_LSB_REG  0x0B<br />#define WHO_AM_I_REG         0x0C<br /><br />/*<br />**  F_STATUS FIFO Status Register<br />*/<br />#define F_STATUS_REG          0x0D<br />//<br />#define F_OVF_BIT             Bit._7<br />#define F_WMRK_FLAG_BIT       Bit._6<br />#define F_CNT5_BIT            Bit._5<br />#define F_CNT4_BIT            Bit._4<br />#define F_CNT3_BIT            Bit._3<br />#define F_CNT2_BIT            Bit._2<br />#define F_CNT1_BIT            Bit._1<br />#define F_CNT0_BIT            Bit._0<br />//<br />#define F_OVF_MASK            0x80<br />#define F_WMRK_FLAG_MASK      0x40<br />#define F_CNT5_MASK           0x20<br />#define F_CNT4_MASK           0x10<br />#define F_CNT3_MASK           0x08<br />#define F_CNT2_MASK           0x04<br />#define F_CNT1_MASK           0x02<br />#define F_CNT0_MASK           0x01<br />#define F_CNT_MASK            0x3F<br /><br />/*<br />**  F_8DATA 8-Bit FIFO Data Register<br />*/<br />#define F_DATA_REG            0x0E<br /><br /><br />/*<br />**  F_SETUP FIFO Setup Register<br />*/<br />#define F_SETUP_REG           0x0F<br />//<br />#define F_MODE1_BIT           Bit._7<br />#define F_MODE0_BIT           Bit._6<br />#define F_WMRK5_BIT           Bit._5<br />#define F_WMRK4_BIT           Bit._4<br />#define F_WMRK3_BIT           Bit._3<br />#define F_WMRK2_BIT           Bit._2<br />#define F_WMRK1_BIT           Bit._1<br />#define F_WMRK0_BIT           Bit._0<br />//<br />#define F_MODE01_MASK         0x40<br />#define F_MODE10_MASK         0x80<br />#define F_WMRK5_MASK          0x20<br />#define F_WMRK4_MASK          0x10<br />#define F_WMRK3_MASK          0x08<br />#define F_WMRK2_MASK          0x04<br />#define F_WMRK1_MASK          0x02<br />#define F_WMRK0_MASK          0x01<br />#define F_MODE_MASK           0xC0<br />#define F_WMRK_MASK           0x3F<br />#define F_CLEAR_MASK          0x00<br /><br />#define TIME_DELAY            0x10<br /><br />/*<br />**  SYSMOD System Mode Register<br />*/<br />#define SYSMOD_REG            0x11<br />//<br /><br />#define FGERR_BIT             Bit._6<br /><br />#define SYSMOD0_BIT           Bit._0<br />//<br /><br />#define SYSMOD_MASK           0x03<br /><br />/*<br />**  INT_SOURCE System Interrupt Status Register<br />*/<br />#define INT_SOURCE_REG        0x12<br />//<br />#define SRC_DRDY_BIT      Bit._7<br />#define SRC_FIFO_BIT      Bit._6<br />#define SRC_PW            Bit._5<br />#define SRC_TW            Bit._4<br />#define SRC_PTH           Bit._3<br />#define SRC_TTH           Bit._2<br />#define SRC_PCHG          Bit._1<br />#define SRC_TCHG          Bit._0<br />//<br />#define SRC_DRDY_MASK     0x80<br />#define SRC_FIFO_MASK     0x40<br />#define SRC_P_MASK        0x20<br />#define SRC_T_MASK        0x10<br />#define SRC_PW_MASK       0x08<br />#define SRC_TW_MASK       0x04<br />#define SRC_PCHG_MASK     0x02<br />#define SRC_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 />/*<br />**  BAR IN<br />*/<br />#define BAR_IN_MSB      0x14<br />#define BAR_IN_LSB      0x15<br /><br /><br />/*<br />**  BAR IN<br />*/<br />#define BAR_IN_MSB      0x14<br />#define BAR_IN_LSB      0x15<br /><br />/*<br />**  Pressure/Altitude Alarm Registers<br />*/<br />#define P_TGT_MSB       0x16<br />#define P_TGT_LSB       0x17<br /><br /><br />/*<br />**  Pressure/Altitude Alarm Window Registers<br />*/<br />#define P_TGT_WND_MSB   0x19<br />#define P_TGT_WND_LSB   0x1A<br /><br />/*<br />**  Temperature Alarm Register<br />*/<br />#define T_TGT           0x18<br /><br />/*<br />**  Temperature Alarm Window Register<br />*/<br />#define T_TGT_WND       0x1B<br /><br /><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 /><br />void MPL3115A2_Init_Alt(void);<br />void MPL3115A2_Init_Bar(void);<br />uint8_t MPL3115A2_Standby(void);<br />void MPL3115A2_Active(void);<br />void MPL3115A2_oblicz_P (void);<br />void MPL3115A2_oblicz_H(void);<br />void MPL3115A2_oblicz_delta_P (void);<br /><br />#endif /* MPL3115A2_H_ */[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1226">janusz17</a> — 24 lut 2017, o 13:43</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Tom277]]></name></author>
<updated>2017-02-23T20:03:46+01:00</updated>
<published>2017-02-23T20:03:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17717&amp;p=183400#p183400</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17717&amp;p=183400#p183400"/>
<title type="html"><![CDATA[MPL3115A2 błędny pomiar cziśnienia]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17717&amp;p=183400#p183400"><![CDATA[
Walczę od jakiegoś czasu (z przerwami)z czujnikiem MPL3115A2. Udało mi się z nim dogadać ale wyniki które otrzymuję sa inne od rzeczywistości, np ciśnienie jakie otrzymuję z czujnika to 972hPa tymczasem sprawdzając w internecie na kilku portalach pogodowych ciśnienie w moim mieście jest ok 998hPa. Pomijam że dane na stronie internetowej mogą być trochę nieaktualne (z przed kilku godzin) ale obawiam się, że coś jest nie tak. Wysokość która podaje mi czujnik tez mam rozjechaną, mieszkam na 110 m npm. a czujnik pokazuje mi 240m Jest to oczywiście związane z błędnym pomiarem ciśnienia. Nie rozumiem tego o co chodzi? Może w nocie pdf jest  coś na ten temat, ale jakoś niedowidzę być może dla tego, że u mnie słabo z angielskim  <img src="https://forum.atnel.pl/images/smilies/icon_redface.gif" alt=":oops:" title="Zawstydzony" /> W sumie to nie wiem gdzie może leżeć problem, sprawdzałem moduł z gotowym kodem pod płytkę Arduino i wyniki mam bardzo podobne do mojego kodu w C. Programy pod Arduino sprawdzałem różne znalezione w internecie i wszędzie jest mniej więcej tak samo więc o co chodzi. Czujniki mam dwa i oba pokazują podobnie. Nie rozumiem tego, czy to znaczy, że wynik trzeba &quot;dopasowywać&quot; przez mnożenie przez jakąś stałą czy coś innego o czym nie wiem. Szukam po rejestrach czy nie powinienem gdzieś wpisać jakiegoś offsetu, ale jedyny jaki znalazłem to rejestr 0x2B i z tego co wyczytałem dotyczy korekcji wskazań wraz ze starzeniem się czujnika.<br />Wkleję link do datasheet-a. Za wszelkie uwagi z góry dziękuję. <br />a cha, temperaturę wskazuje raczej ok. komunikacja działa poprawnie więc nie tu szukałbym problemów. <br />Data Sheet MPL3115A2<br /><a href="https://www.google.pl/url?sa=t&amp;rct=j&amp;q=&amp;esrc=s&amp;source=web&amp;cd=1&amp;cad=rja&amp;uact=8&amp;sqi=2&amp;ved=0ahUKEwi75MyM5qbSAhULWRQKHZsWC7YQFgg5MAA&amp;url=http%3A%2F%2Fwww.nxp.com%2Ffiles%2Fsensors%2Fdoc%2Fdata_sheet%2FMPL3115A2.pdf&amp;usg=AFQjCNFD00ZnZNwELp6_MlOkfQRMDEhr-w&amp;sig2=f_jZalAGOuY1I-9CaIgiHA&amp;bvm=bv.147448319,d.bGs"  class="postlink">https://www.google.pl/url?sa=t&amp;rct=j&amp;q=&amp;esrc=s&amp;source=web&amp;cd=1&amp;cad=rja&amp;uact=8&amp;sqi=2&amp;ved=0ahUKEwi75MyM5qbSAhULWRQKHZsWC7YQFgg5MAA&amp;url=http%3A%2F%2Fwww.nxp.com%2Ffiles%2Fsensors%2Fdoc%2Fdata_sheet%2FMPL3115A2.pdf&amp;usg=AFQjCNFD00ZnZNwELp6_MlOkfQRMDEhr-w&amp;sig2=f_jZalAGOuY1I-9CaIgiHA&amp;bvm=bv.147448319,d.bGs</a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=548">Tom277</a> — 23 lut 2017, o 20:03</p><hr />
]]></content>
</entry>
</feed>