Freescale Semiconductor FRDM-FXS-MULTI Datenbogen

Seite von 42
MPL3115A2
Sensors
Freescale Semiconductor, Inc.
11
Figure 6.  FIFO Setup
Service interrupt 
and clear
/* Set to Altimeter with an  OSR = 128 */ 
IIC_RegWrite(SlaveAddressIIC, 0x26, 0xB8);
/* Set INT to Active Low Open Drain */
IIC_RegWrite(SlaveAddressIIC, 0x28,  0x11);
/* Enable Data Flags in PT_DATA_CFG */
IIC_RegWrite(SlaveAddressIIC, 0x13,  0x07);
/* I2C Address is 0xC0 */
SlaveAddressIIC =  0xC0
/*  Enable FIFO with a Watermark of 10 */
IIC_RegWrite(SlaveAddressIIC, 0x0F,  0x4A);
/* Dump FIFO with a multi byte I2C read */ 
IIC _RegReadN(SlaveAddressIIC,  0x01, 32, &fifo_data[0].Sample.BT.b_msb);
Check for interrupt 
on pin INT2
/* Is SRC_FIFO Set */
(INT_S & 0x40) == TRUE
Yes
No
/* Enable FIFO Interrupt */
IIC _RegWrite(SlaveAddressIIC, 0x29, 0x40);
/* Set Active */
IIC_RegWrite(SlaveAddressIIC, 0x26, 0xB9);
/* Read INT_SOURCE */ 
INT_S = IIC_RegRead(SlaveAddressIIC, 0x12);
/* Set INT to Active Low Open Drain */
IIC _RegWrite(SlaveAddressIIC, 0x28,  0x11);
No
/* Read FIFO status,  this clears the INT */
F_S = IIC _RegRead(SlaveAddressIIC,  0x0D);
/* Is F_WMRK_FLAG Set */
(F_S & 0x40) == TRUE
Yes
No