sinyuu masahito
/
yozakura_arm
Arm control program for Yozakura
MEMS/MEMS.cpp@0:6b3497b2f2ec, 2015-04-24 (annotated)
- Committer:
- masasin
- Date:
- Fri Apr 24 01:55:32 2015 +0000
- Revision:
- 0:6b3497b2f2ec
Initial commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
masasin | 0:6b3497b2f2ec | 1 | #include "MEMS.h" |
masasin | 0:6b3497b2f2ec | 2 | #include "mbed.h" |
masasin | 0:6b3497b2f2ec | 3 | |
masasin | 0:6b3497b2f2ec | 4 | MEMS::MEMS(PinName sda, PinName scl) |
masasin | 0:6b3497b2f2ec | 5 | : _mems(sda, scl) { |
masasin | 0:6b3497b2f2ec | 6 | |
masasin | 0:6b3497b2f2ec | 7 | } |
masasin | 0:6b3497b2f2ec | 8 | |
masasin | 0:6b3497b2f2ec | 9 | void MEMS::temp(float* dt) { |
masasin | 0:6b3497b2f2ec | 10 | |
masasin | 0:6b3497b2f2ec | 11 | char I2C_rd[64]; // 生データ |
masasin | 0:6b3497b2f2ec | 12 | short datr[16]; // 16点 温度データ(10倍整数) |
masasin | 0:6b3497b2f2ec | 13 | short PTAT; // センサ内部PTAT温度データ(10倍整数) |
masasin | 0:6b3497b2f2ec | 14 | // double dt[16]; // 16点 温度データ |
masasin | 0:6b3497b2f2ec | 15 | short d_PTAT; // センサ内部PTAT温度データ |
masasin | 0:6b3497b2f2ec | 16 | int i,j; |
masasin | 0:6b3497b2f2ec | 17 | int itemp; |
masasin | 0:6b3497b2f2ec | 18 | |
masasin | 0:6b3497b2f2ec | 19 | //// measure |
masasin | 0:6b3497b2f2ec | 20 | _mems.start(); |
masasin | 0:6b3497b2f2ec | 21 | _mems.write(D6T_addr); |
masasin | 0:6b3497b2f2ec | 22 | _mems.write(D6T_cmd); |
masasin | 0:6b3497b2f2ec | 23 | // Repeated Start condition |
masasin | 0:6b3497b2f2ec | 24 | _mems.read(D6T_addr,I2C_rd,35); |
masasin | 0:6b3497b2f2ec | 25 | // if(check_PEC(I2C_rd) == -1) continue; // error |
masasin | 0:6b3497b2f2ec | 26 | for(i=0,j=0;i<17;i++){ |
masasin | 0:6b3497b2f2ec | 27 | itemp = (I2C_rd[j++] & 0xff); |
masasin | 0:6b3497b2f2ec | 28 | itemp += I2C_rd[j++] * 256; |
masasin | 0:6b3497b2f2ec | 29 | if(i == 0) PTAT = itemp; |
masasin | 0:6b3497b2f2ec | 30 | else datr[i-1] = itemp; |
masasin | 0:6b3497b2f2ec | 31 | } |
masasin | 0:6b3497b2f2ec | 32 | for(i=0;i<16;i++){ |
masasin | 0:6b3497b2f2ec | 33 | dt[i] = 0.1 * datr[i]; |
masasin | 0:6b3497b2f2ec | 34 | } |
masasin | 0:6b3497b2f2ec | 35 | d_PTAT = 0.1 * PTAT; |
masasin | 0:6b3497b2f2ec | 36 | } |