MPL3115A2
Fork of SPI_HelloWorld_Mbed by
Mit dem XTRINSIC-SENSE Board von element14 wird der Sensor MPL3115 ausgelesen.
mbed | XTRINSIC-SENSE Board |
---|---|
VOUT 3.3v | CN2->3.3v (1) |
GND | CN2->SCL (3) |
pin9 sda | CN3->SDA (3) |
pin10 scl | CN3->SCL (5) |
Datenblatt Board: /media/uploads/ODEM/xtrinsic-sense_user_manual_v0_5.pdf
Datenblatt Sensor: /media/uploads/ODEM/mpl3115a2.pdf
main.cpp
- Committer:
- ODEM
- Date:
- 2017-06-14
- Revision:
- 2:29e536aabd5b
- Parent:
- 1:a5921d978d61
- Child:
- 3:3da5bf0df3ab
File content as of revision 2:29e536aabd5b:
// Read from I2C slave at address 0x62 #include "mbed.h" I2C i2c(p9, p10); int SlaveAddress = 0xc0; //set to Altimeter int SetA1 = 0x26; int SetA2 = 0xB8; //enable data flag int flag1 = 0x13; int flag2 = 0x07; //Set Active int active1 = 0x26; int active2 = 0xB9; //read status register int status1 = 0x00; // int OUT_P_MSB=0; char data_OUT_P_MSB[1]; char STA; /******************************main**********************************/ int main() { char data_OUT_P_MSB[1]; data_OUT_P_MSB[0] = 0x01; //cmd = 0x60; char data[2]; data[0]=SetA1; data[1]=SetA2; char flags[2]; flags[0]=flag1; flags[1]=flag2; char active[2]; active[0]=active1; active[1]=active2; char status [1]; status[0]=status1; char cmd[2]; const int addr = 0xc1; // wait(0.1); //WRITE //set to Altimeter i2c.write(SlaveAddress, data, 2); //enable data flag i2c.write(SlaveAddress, flags, 2); //Set Active i2c.write(SlaveAddress, active, 2); while(1) { /*//READ //read status register STA=i2c.read(SlaveAddress, status, 2,false); if (STA&&0x08==1) { OUT_P_MSB=i2c.read(SlaveAddress, data_OUT_P_MSB, 1); } printf("data= %04X\n", OUT_P_MSB); printf("data= %d\n", STA);*/ cmd[0] = 0x01; cmd[1] = 0x00; i2c.write(addr, cmd, 2); wait(0.5); cmd[0] = 0x00; i2c.write(addr, cmd, 1); i2c.read(addr, cmd, 2); printf("Temp = %d\n", cmd); float tmp = (float((cmd[0]<<8)|cmd[1]) / 256.0); printf("Temp = %.2f\n", tmp); } }