Xbee CountUp

Dependencies:   mbed

Fork of HeptaXbee_CountUp by 智也 大野

Committer:
tomoya123
Date:
Fri Dec 09 04:58:00 2016 +0000
Revision:
0:0a7fa0911e6c
Xbee CountUP

Who changed what in which revision?

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