Xbee Uplink

Dependencies:   mbed PowerControl SDFileSystem

Fork of HeptaXbee_Uplink by 智也 大野

Committer:
MEXT1
Date:
Wed Dec 14 16:09:56 2016 +0000
Revision:
3:15a7f7fa174a
Parent:
0:9a52d95a79f7
Xbee Uplink

Who changed what in which revision?

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