31.12.2013 Views

I C Precision Altimeter - Farnell

I C Precision Altimeter - Farnell

I C Precision Altimeter - Farnell

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Flow chart for Polling or Interrupt - No FIFO<br />

/* I2C Address is 0xC0 */<br />

SlaveAddressIIC = 0xC0<br />

/* Set to <strong>Altimeter</strong> with an OSR = 128 */<br />

IIC_RegWrite(SlaveAddressIIC, 0x26, 0xB8);<br />

/* Set INT to Active Low Open Drain */<br />

IIC_RegWrite(SlaveAddressIIC, 0x28, 0x11);<br />

/* Enable Data Flags in PT_DATA_CFG */<br />

IIC_RegWrite(SlaveAddressIIC, 0x13, 0x07);<br />

/* Enable DRDY Interrupt */<br />

IIC_RegWrite(SlaveAddressIIC, 0x29, 0x80);<br />

/* Set Active */<br />

IIC_RegWrite(SlaveAddressIIC, 0x26, 0xB9);<br />

Poll data or use<br />

interrupt INT2<br />

Interrupt<br />

Check for interrupt<br />

on pin INT2<br />

No<br />

Polling<br />

Service interrupt<br />

and clear<br />

Yes<br />

/* Set Active */<br />

IIC_RegWrite(SlaveAddressIIC, 0x26, 0xB9);<br />

/* Read INT_SOURCE */<br />

INT_S = IIC_RegRead(SlaveAddressIIC, 0x12);<br />

/* Read STATUS Register */<br />

STA = IIC_RegRead(SlaveAddressIIC, 0x00);<br />

/* Is Data Ready */<br />

(STA & 0x08) == TRUE<br />

No<br />

No<br />

/* Is SRC_DRDY Set */<br />

(INT_S & 0x80) == TRUE<br />

Yes<br />

Yes<br />

/* Read OUT_P and OUT_T */<br />

/* This clears the DRDY Interrupt */<br />

OUT_P_MSB = IIC_RegRead(SlaveAddressIIC, 0x01);<br />

OUT_P_CSB = IIC_RegRead(SlaveAddressIIC, 0x02);<br />

OUT_P_LSB = IIC_RegRead(SlaveAddressIIC, 0x03);<br />

OUT_T_MSB = IIC_RegRead(SlaveAddressIIC, 0x04);<br />

OUT_T_LSB = IIC_RegRead(SlaveAddressIIC, 0x05);<br />

/* Read OUT_P and OUT_T */<br />

/* This clears the DRDY Interrupt */<br />

OUT_P_MSB = IIC_RegRead(SlaveAddressIIC, 0x01);<br />

OUT_P_CSB = IIC_RegRead(SlaveAddressIIC, 0x02);<br />

OUT_P_LSB = IIC_RegRead(SlaveAddressIIC, 0x03);<br />

OUT_T_MSB = IIC_RegRead(SlaveAddressIIC, 0x04);<br />

OUT_T_LSB = IIC_RegRead(SlaveAddressIIC, 0x05);<br />

Clear Interrupt<br />

Figure 5. Polling or Interrupt - No FIFO<br />

MPL3115A2<br />

Sensors<br />

12 Freescale Semiconductor, Inc.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!