Accel

Dependencies:   mbed PowerControl SDFileSystem

Fork of HeptaAccel by 智也 大野

Committer:
tomoya123
Date:
Fri Dec 09 03:40:15 2016 +0000
Revision:
0:d721efd58e4e
test

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tomoya123 0:d721efd58e4e 1 #include "HeptaGyro.h"
tomoya123 0:d721efd58e4e 2 #include "mbed.h"
tomoya123 0:d721efd58e4e 3
tomoya123 0:d721efd58e4e 4 HeptaGyro::HeptaGyro(PinName sda, PinName scl, int aaddr ) : gyro(sda,scl),addr(aaddr)
tomoya123 0:d721efd58e4e 5 {
tomoya123 0:d721efd58e4e 6 _cmd[0] = 0x20;
tomoya123 0:d721efd58e4e 7 _cmd[1] = 0x0F;
tomoya123 0:d721efd58e4e 8 gyro.frequency(100000);
tomoya123 0:d721efd58e4e 9 gyro.write(addr, _cmd, 2);
tomoya123 0:d721efd58e4e 10 gyro.start();
tomoya123 0:d721efd58e4e 11 gyro.write(addr);
tomoya123 0:d721efd58e4e 12 gyro.stop();
tomoya123 0:d721efd58e4e 13 }
tomoya123 0:d721efd58e4e 14
tomoya123 0:d721efd58e4e 15 void HeptaGyro::setup()
tomoya123 0:d721efd58e4e 16 {
tomoya123 0:d721efd58e4e 17 _cmd[0] = 0x20;
tomoya123 0:d721efd58e4e 18 _cmd[1] = 0x0F;
tomoya123 0:d721efd58e4e 19 gyro.frequency(100000);
tomoya123 0:d721efd58e4e 20 gyro.write(addr, _cmd, 2);
tomoya123 0:d721efd58e4e 21 gyro.start();
tomoya123 0:d721efd58e4e 22 gyro.write(addr);
tomoya123 0:d721efd58e4e 23 gyro.stop();
tomoya123 0:d721efd58e4e 24 }
tomoya123 0:d721efd58e4e 25
tomoya123 0:d721efd58e4e 26 void HeptaGyro::sensing(float *gx,float *gy,float *gz)
tomoya123 0:d721efd58e4e 27 {
tomoya123 0:d721efd58e4e 28 gyro.start();
tomoya123 0:d721efd58e4e 29 gyro.write(addr);
tomoya123 0:d721efd58e4e 30 gyro.write(0x28);
tomoya123 0:d721efd58e4e 31 gyro.start();
tomoya123 0:d721efd58e4e 32 gyro.write(addr|0x01);
tomoya123 0:d721efd58e4e 33 _xl = gyro.read(0);
tomoya123 0:d721efd58e4e 34 gyro.stop();
tomoya123 0:d721efd58e4e 35 gyro.start();
tomoya123 0:d721efd58e4e 36 gyro.write(addr);
tomoya123 0:d721efd58e4e 37 gyro.write(0x29);
tomoya123 0:d721efd58e4e 38 gyro.start();
tomoya123 0:d721efd58e4e 39 gyro.write(addr|0x01);
tomoya123 0:d721efd58e4e 40 _xh = gyro.read(0);
tomoya123 0:d721efd58e4e 41 gyro.stop();
tomoya123 0:d721efd58e4e 42 *gx = (short((_xh<<8)|_xl)*0.00875);
tomoya123 0:d721efd58e4e 43
tomoya123 0:d721efd58e4e 44 gyro.start();
tomoya123 0:d721efd58e4e 45 gyro.write(addr);
tomoya123 0:d721efd58e4e 46 gyro.write(0x2A);
tomoya123 0:d721efd58e4e 47 gyro.start();
tomoya123 0:d721efd58e4e 48 gyro.write(addr|0x01);
tomoya123 0:d721efd58e4e 49 _yl = gyro.read(0);
tomoya123 0:d721efd58e4e 50 gyro.stop();
tomoya123 0:d721efd58e4e 51 gyro.start();
tomoya123 0:d721efd58e4e 52 gyro.write(addr);
tomoya123 0:d721efd58e4e 53 gyro.write(0x2B);
tomoya123 0:d721efd58e4e 54 gyro.start();
tomoya123 0:d721efd58e4e 55 gyro.write(addr|0x01);
tomoya123 0:d721efd58e4e 56 _yh = gyro.read(0);
tomoya123 0:d721efd58e4e 57 gyro.stop();
tomoya123 0:d721efd58e4e 58 *gy = (short((_yh<<8)|_yl)*0.00875);
tomoya123 0:d721efd58e4e 59
tomoya123 0:d721efd58e4e 60 gyro.start();
tomoya123 0:d721efd58e4e 61 gyro.write(addr);
tomoya123 0:d721efd58e4e 62 gyro.write(0x2C);
tomoya123 0:d721efd58e4e 63 gyro.start();
tomoya123 0:d721efd58e4e 64 gyro.write(addr|0x01);
tomoya123 0:d721efd58e4e 65 _zl = gyro.read(0);
tomoya123 0:d721efd58e4e 66 gyro.stop();
tomoya123 0:d721efd58e4e 67 gyro.start();
tomoya123 0:d721efd58e4e 68 gyro.write(addr);
tomoya123 0:d721efd58e4e 69 gyro.write(0x2D);
tomoya123 0:d721efd58e4e 70 gyro.start();
tomoya123 0:d721efd58e4e 71 gyro.write(addr|0x01);
tomoya123 0:d721efd58e4e 72 _zh = gyro.read(0);
tomoya123 0:d721efd58e4e 73 gyro.stop();
tomoya123 0:d721efd58e4e 74 *gz = (short((_zh<<8)|_zl)*0.00875);
tomoya123 0:d721efd58e4e 75 }
tomoya123 0:d721efd58e4e 76
tomoya123 0:d721efd58e4e 77 float HeptaGyro::x()
tomoya123 0:d721efd58e4e 78 {
tomoya123 0:d721efd58e4e 79
tomoya123 0:d721efd58e4e 80 gyro.start();
tomoya123 0:d721efd58e4e 81 gyro.write(addr);
tomoya123 0:d721efd58e4e 82 gyro.write(0x28);
tomoya123 0:d721efd58e4e 83 gyro.start();
tomoya123 0:d721efd58e4e 84 gyro.write(addr|0x01);
tomoya123 0:d721efd58e4e 85 _xl = gyro.read(0);
tomoya123 0:d721efd58e4e 86 gyro.stop();
tomoya123 0:d721efd58e4e 87 gyro.start();
tomoya123 0:d721efd58e4e 88 gyro.write(addr);
tomoya123 0:d721efd58e4e 89 gyro.write(0x29);
tomoya123 0:d721efd58e4e 90 gyro.start();
tomoya123 0:d721efd58e4e 91 gyro.write(addr|0x01);
tomoya123 0:d721efd58e4e 92 _xh = gyro.read(0);
tomoya123 0:d721efd58e4e 93 gyro.stop();
tomoya123 0:d721efd58e4e 94 return(short((_xh<<8)|_xl)*0.00875);
tomoya123 0:d721efd58e4e 95 }
tomoya123 0:d721efd58e4e 96
tomoya123 0:d721efd58e4e 97 float HeptaGyro::y()
tomoya123 0:d721efd58e4e 98 {
tomoya123 0:d721efd58e4e 99 gyro.start();
tomoya123 0:d721efd58e4e 100 gyro.write(addr);
tomoya123 0:d721efd58e4e 101 gyro.write(0x2A);
tomoya123 0:d721efd58e4e 102 gyro.start();
tomoya123 0:d721efd58e4e 103 gyro.write(addr|0x01);
tomoya123 0:d721efd58e4e 104 _yl = gyro.read(0);
tomoya123 0:d721efd58e4e 105 gyro.stop();
tomoya123 0:d721efd58e4e 106 gyro.start();
tomoya123 0:d721efd58e4e 107 gyro.write(addr);
tomoya123 0:d721efd58e4e 108 gyro.write(0x2B);
tomoya123 0:d721efd58e4e 109 gyro.start();
tomoya123 0:d721efd58e4e 110 gyro.write(addr|0x01);
tomoya123 0:d721efd58e4e 111 _yh = gyro.read(0);
tomoya123 0:d721efd58e4e 112 gyro.stop();
tomoya123 0:d721efd58e4e 113 return(short((_yh<<8)|_yl)*0.00875);
tomoya123 0:d721efd58e4e 114 }
tomoya123 0:d721efd58e4e 115
tomoya123 0:d721efd58e4e 116 float HeptaGyro::z()
tomoya123 0:d721efd58e4e 117 {
tomoya123 0:d721efd58e4e 118 gyro.start();
tomoya123 0:d721efd58e4e 119 gyro.write(addr);
tomoya123 0:d721efd58e4e 120 gyro.write(0x2C);
tomoya123 0:d721efd58e4e 121 gyro.start();
tomoya123 0:d721efd58e4e 122 gyro.write(addr|0x01);
tomoya123 0:d721efd58e4e 123 _zl = gyro.read(0);
tomoya123 0:d721efd58e4e 124 gyro.stop();
tomoya123 0:d721efd58e4e 125 gyro.start();
tomoya123 0:d721efd58e4e 126 gyro.write(addr);
tomoya123 0:d721efd58e4e 127 gyro.write(0x2D);
tomoya123 0:d721efd58e4e 128 gyro.start();
tomoya123 0:d721efd58e4e 129 gyro.write(addr|0x01);
tomoya123 0:d721efd58e4e 130 _zh = gyro.read(0);
tomoya123 0:d721efd58e4e 131 gyro.stop();
tomoya123 0:d721efd58e4e 132 return(short((_zh<<8)|_zl)*0.00875);
tomoya123 0:d721efd58e4e 133 }
tomoya123 0:d721efd58e4e 134
tomoya123 0:d721efd58e4e 135 void HeptaGyro::sensing_u16(char* gx_u16,char* gy_u16,char* gz_u16, int *dsize)
tomoya123 0:d721efd58e4e 136 {
tomoya123 0:d721efd58e4e 137 char g1[8]={0x00},g2[8]={0x00};
tomoya123 0:d721efd58e4e 138 gyro.start();
tomoya123 0:d721efd58e4e 139 gyro.write(addr);
tomoya123 0:d721efd58e4e 140 gyro.write(0x28);
tomoya123 0:d721efd58e4e 141 gyro.start();
tomoya123 0:d721efd58e4e 142 gyro.write(addr|0x01);
tomoya123 0:d721efd58e4e 143 _xl = gyro.read(0);
tomoya123 0:d721efd58e4e 144 gyro.stop();
tomoya123 0:d721efd58e4e 145 gyro.start();
tomoya123 0:d721efd58e4e 146 gyro.write(addr);
tomoya123 0:d721efd58e4e 147 gyro.write(0x29);
tomoya123 0:d721efd58e4e 148 gyro.start();
tomoya123 0:d721efd58e4e 149 gyro.write(addr|0x01);
tomoya123 0:d721efd58e4e 150 _xh = gyro.read(0);
tomoya123 0:d721efd58e4e 151 gyro.stop();
tomoya123 0:d721efd58e4e 152 sprintf( g1, "%02X", ((_xh)) & 0xFF);
tomoya123 0:d721efd58e4e 153 sprintf( g2, "%02X", ((_xl)) & 0xFF);
tomoya123 0:d721efd58e4e 154 gx_u16[0]=g1[0];
tomoya123 0:d721efd58e4e 155 gx_u16[1]=g1[1];
tomoya123 0:d721efd58e4e 156 gx_u16[2]=g2[0];
tomoya123 0:d721efd58e4e 157 gx_u16[3]=g2[1];
tomoya123 0:d721efd58e4e 158
tomoya123 0:d721efd58e4e 159 gyro.start();
tomoya123 0:d721efd58e4e 160 gyro.write(addr);
tomoya123 0:d721efd58e4e 161 gyro.write(0x2A);
tomoya123 0:d721efd58e4e 162 gyro.start();
tomoya123 0:d721efd58e4e 163 gyro.write(addr|0x01);
tomoya123 0:d721efd58e4e 164 _yl = gyro.read(0);
tomoya123 0:d721efd58e4e 165 gyro.stop();
tomoya123 0:d721efd58e4e 166 gyro.start();
tomoya123 0:d721efd58e4e 167 gyro.write(addr);
tomoya123 0:d721efd58e4e 168 gyro.write(0x2B);
tomoya123 0:d721efd58e4e 169 gyro.start();
tomoya123 0:d721efd58e4e 170 gyro.write(addr|0x01);
tomoya123 0:d721efd58e4e 171 _yh = gyro.read(0);
tomoya123 0:d721efd58e4e 172 gyro.stop();
tomoya123 0:d721efd58e4e 173 sprintf( g1, "%02X", ((_yh)) & 0xFF);
tomoya123 0:d721efd58e4e 174 sprintf( g2, "%02X", ((_yl)) & 0xFF);
tomoya123 0:d721efd58e4e 175 gy_u16[0]=g1[0];
tomoya123 0:d721efd58e4e 176 gy_u16[1]=g1[1];
tomoya123 0:d721efd58e4e 177 gy_u16[2]=g2[0];
tomoya123 0:d721efd58e4e 178 gy_u16[3]=g2[1];
tomoya123 0:d721efd58e4e 179
tomoya123 0:d721efd58e4e 180 gyro.start();
tomoya123 0:d721efd58e4e 181 gyro.write(addr);
tomoya123 0:d721efd58e4e 182 gyro.write(0x2C);
tomoya123 0:d721efd58e4e 183 gyro.start();
tomoya123 0:d721efd58e4e 184 gyro.write(addr|0x01);
tomoya123 0:d721efd58e4e 185 _zl = gyro.read(0);
tomoya123 0:d721efd58e4e 186 gyro.stop();
tomoya123 0:d721efd58e4e 187 gyro.start();
tomoya123 0:d721efd58e4e 188 gyro.write(addr);
tomoya123 0:d721efd58e4e 189 gyro.write(0x2D);
tomoya123 0:d721efd58e4e 190 gyro.start();
tomoya123 0:d721efd58e4e 191 gyro.write(addr|0x01);
tomoya123 0:d721efd58e4e 192 _zh = gyro.read(0);
tomoya123 0:d721efd58e4e 193 gyro.stop();
tomoya123 0:d721efd58e4e 194 sprintf( g1, "%02X", ((_zh)) & 0xFF);
tomoya123 0:d721efd58e4e 195 sprintf( g2, "%02X", ((_zl)) & 0xFF);
tomoya123 0:d721efd58e4e 196 gz_u16[0]=g1[0];
tomoya123 0:d721efd58e4e 197 gz_u16[1]=g1[1];
tomoya123 0:d721efd58e4e 198 gz_u16[2]=g2[0];
tomoya123 0:d721efd58e4e 199 gz_u16[3]=g2[1];
tomoya123 0:d721efd58e4e 200 *dsize = 4;
tomoya123 0:d721efd58e4e 201 }
tomoya123 0:d721efd58e4e 202
tomoya123 0:d721efd58e4e 203 void HeptaGyro::x_u16(char* g_u16, int *dsize)
tomoya123 0:d721efd58e4e 204 {
tomoya123 0:d721efd58e4e 205 char g1[8]={0x00},g2[8]={0x00};
tomoya123 0:d721efd58e4e 206 gyro.start();
tomoya123 0:d721efd58e4e 207 gyro.write(addr);
tomoya123 0:d721efd58e4e 208 gyro.write(0x28);
tomoya123 0:d721efd58e4e 209 gyro.start();
tomoya123 0:d721efd58e4e 210 gyro.write(addr|0x01);
tomoya123 0:d721efd58e4e 211 _xl = gyro.read(0);
tomoya123 0:d721efd58e4e 212 gyro.stop();
tomoya123 0:d721efd58e4e 213 gyro.start();
tomoya123 0:d721efd58e4e 214 gyro.write(addr);
tomoya123 0:d721efd58e4e 215 gyro.write(0x29);
tomoya123 0:d721efd58e4e 216 gyro.start();
tomoya123 0:d721efd58e4e 217 gyro.write(addr|0x01);
tomoya123 0:d721efd58e4e 218 _xh = gyro.read(0);
tomoya123 0:d721efd58e4e 219 gyro.stop();
tomoya123 0:d721efd58e4e 220 sprintf( g1, "%02X", ((_xh)) & 0xFF);
tomoya123 0:d721efd58e4e 221 sprintf( g2, "%02X", ((_xl)) & 0xFF);
tomoya123 0:d721efd58e4e 222 g_u16[0]=g1[0];
tomoya123 0:d721efd58e4e 223 g_u16[1]=g1[1];
tomoya123 0:d721efd58e4e 224 g_u16[2]=g2[0];
tomoya123 0:d721efd58e4e 225 g_u16[3]=g2[1];
tomoya123 0:d721efd58e4e 226 *dsize = 4;
tomoya123 0:d721efd58e4e 227 }
tomoya123 0:d721efd58e4e 228
tomoya123 0:d721efd58e4e 229 void HeptaGyro::y_u16(char* g_u16, int *dsize)
tomoya123 0:d721efd58e4e 230 {
tomoya123 0:d721efd58e4e 231 char g1[8]={0x00},g2[8]={0x00};
tomoya123 0:d721efd58e4e 232 gyro.start();
tomoya123 0:d721efd58e4e 233 gyro.write(addr);
tomoya123 0:d721efd58e4e 234 gyro.write(0x2A);
tomoya123 0:d721efd58e4e 235 gyro.start();
tomoya123 0:d721efd58e4e 236 gyro.write(addr|0x01);
tomoya123 0:d721efd58e4e 237 _yl = gyro.read(0);
tomoya123 0:d721efd58e4e 238 gyro.stop();
tomoya123 0:d721efd58e4e 239 gyro.start();
tomoya123 0:d721efd58e4e 240 gyro.write(addr);
tomoya123 0:d721efd58e4e 241 gyro.write(0x2B);
tomoya123 0:d721efd58e4e 242 gyro.start();
tomoya123 0:d721efd58e4e 243 gyro.write(addr|0x01);
tomoya123 0:d721efd58e4e 244 _yh = gyro.read(0);
tomoya123 0:d721efd58e4e 245 gyro.stop();
tomoya123 0:d721efd58e4e 246 sprintf( g1, "%02X", ((_yh)) & 0xFF);
tomoya123 0:d721efd58e4e 247 sprintf( g2, "%02X", ((_yl)) & 0xFF);
tomoya123 0:d721efd58e4e 248 g_u16[0]=g1[0];
tomoya123 0:d721efd58e4e 249 g_u16[1]=g1[1];
tomoya123 0:d721efd58e4e 250 g_u16[2]=g2[0];
tomoya123 0:d721efd58e4e 251 g_u16[3]=g2[1];
tomoya123 0:d721efd58e4e 252 *dsize = 4;
tomoya123 0:d721efd58e4e 253 }
tomoya123 0:d721efd58e4e 254
tomoya123 0:d721efd58e4e 255 void HeptaGyro::z_u16(char* g_u16, int *dsize)
tomoya123 0:d721efd58e4e 256 {
tomoya123 0:d721efd58e4e 257 char g1[8]={0x00},g2[8]={0x00};
tomoya123 0:d721efd58e4e 258 gyro.start();
tomoya123 0:d721efd58e4e 259 gyro.write(addr);
tomoya123 0:d721efd58e4e 260 gyro.write(0x2C);
tomoya123 0:d721efd58e4e 261 gyro.start();
tomoya123 0:d721efd58e4e 262 gyro.write(addr|0x01);
tomoya123 0:d721efd58e4e 263 _zl = gyro.read(0);
tomoya123 0:d721efd58e4e 264 gyro.stop();
tomoya123 0:d721efd58e4e 265 gyro.start();
tomoya123 0:d721efd58e4e 266 gyro.write(addr);
tomoya123 0:d721efd58e4e 267 gyro.write(0x2D);
tomoya123 0:d721efd58e4e 268 gyro.start();
tomoya123 0:d721efd58e4e 269 gyro.write(addr|0x01);
tomoya123 0:d721efd58e4e 270 _zh = gyro.read(0);
tomoya123 0:d721efd58e4e 271 gyro.stop();
tomoya123 0:d721efd58e4e 272 sprintf( g1, "%02X", ((_zh)) & 0xFF);
tomoya123 0:d721efd58e4e 273 sprintf( g2, "%02X", ((_zl)) & 0xFF);
tomoya123 0:d721efd58e4e 274 g_u16[0]=g1[0];
tomoya123 0:d721efd58e4e 275 g_u16[1]=g1[1];
tomoya123 0:d721efd58e4e 276 g_u16[2]=g2[0];
tomoya123 0:d721efd58e4e 277 g_u16[3]=g2[1];
tomoya123 0:d721efd58e4e 278 *dsize = 4;
tomoya123 0:d721efd58e4e 279 }