Hepta_template_program

Dependencies:   mbed PowerControl SDFileSystem

Fork of Hepta_UplinkData by HEPTA-Sat Hands-On

Committer:
MEXT1
Date:
Fri Sep 22 06:27:51 2017 +0000
Revision:
5:862413879d84
Parent:
0:b96079b7d167
Hepta_template

Who changed what in which revision?

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