Arm control program for Yozakura

Dependencies:   mbed

Committer:
masasin
Date:
Fri Apr 24 01:55:32 2015 +0000
Revision:
0:6b3497b2f2ec
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew 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 }