Battery

Dependencies:   mbed PowerControl SDFileSystem

Fork of HeptaBattery by 智也 大野

Committer:
tomoya123
Date:
Tue Dec 13 06:37:27 2016 +0000
Revision:
1:166ddf929155
Parent:
0:d53e9c6fc771
HeptaBattery

Who changed what in which revision?

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