オムロンのMEMS熱センサー
Dependents: YOZAKURA_ARM YOZAKURA_ARM_USB YOZAKURA_ARM_USB_Keyboard
MEMS.cpp
- Committer:
- yusuke_kyo
- Date:
- 2015-03-31
- Revision:
- 0:42f5bfa6b545
- Child:
- 1:17f329471d0c
File content as of revision 0:42f5bfa6b545:
#include "MEMS.h" #include "mbed.h" MEMS::MEMS(PinName sda, PinName scl) : _mems(sda, scl) { } double MEMS::temp(double* datr) { char I2C_rd[64]; // 生データ // short datr[16]; // 16点 温度データ(10倍整数) short PTAT; // センサ内部PTAT温度データ(10倍整数) double dt[16]; // 16点 温度データ short d_PTAT; // センサ内部PTAT温度データ int i,j; int itemp; //// measure _mems.start(); _mems.write(D6T_addr); _mems.write(D6T_cmd); // Repeated Start condition _mems.read(D6T_addr,I2C_rd,35); // if(check_PEC(I2C_rd) == -1) continue; // error for(i=0,j=0;i<17;i++){ itemp = (I2C_rd[j++] & 0xff); itemp += I2C_rd[j++] * 256; if(i == 0) PTAT = itemp; else datr[i-1] = itemp; } for(i=0;i<16;i++){ dt[i] = 0.1 * datr[i]; } d_PTAT = 0.1 * PTAT; }