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 FIFO setup<br />

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

SlaveAddressIIC = 0xC0<br />

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

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

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

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

/* Enable FIFO Interrupt */<br />

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

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

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

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

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

/* Set Active */<br />

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

/* Enable FIFO with a Watermark of 10 */<br />

IIC_RegWrite(SlaveAddressIIC, 0x0F, 0x4A);<br />

No<br />

Check for interrupt<br />

on pin INT2<br />

Yes<br />

/* Read INT_SOURCE */<br />

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

Service interrupt<br />

and clear<br />

No<br />

/* Is SRC_FIFO Set */<br />

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

/* Read FIFO status, this clears the INT */<br />

F_S = IIC_RegRead(SlaveAddressIIC, 0x0D);<br />

No<br />

/* Is F_WMRK_FLAG Set */<br />

(F_S & 0x40) == TRUE<br />

Yes<br />

/* Dump FIFO with a multi byte I2C read */<br />

IIC_RegReadN(SlaveAddressIIC, 0x01, 32, &fifo_data[0].Sample.BT.b_msb);<br />

Figure 6. FIFO Setup<br />

MPL3115A2<br />

Sensors<br />

Freescale Semiconductor, Inc. 13

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

Saved successfully!

Ooh no, something went wrong!