ChargeControl

Dependencies:   mbed PowerControl SDFileSystem

Fork of ChargeControl by 智也 大野

Committer:
tomoya123
Date:
Fri Dec 09 05:04:37 2016 +0000
Revision:
0:0842f00470eb
Charge control

Who changed what in which revision?

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