NOT FINISHED YET!!! My first try to get a self built fully working Quadrocopter based on an mbed, a self built frame and some other more or less cheap parts.

Dependencies:   mbed MODI2C

Committer:
maetugr
Date:
Fri Sep 28 13:24:03 2012 +0000
Revision:
1:5a64632b1eb9
Parent:
0:0c4fafa398b4
Child:
2:93f703d2c4d7
bevor anpassung/vorschl?ge f?r ADXL345 library

Who changed what in which revision?

UserRevisionLine numberNew contents of line
maetugr 0:0c4fafa398b4 1 #include "ADXL345.h"
maetugr 1:5a64632b1eb9 2 #include "mbed.h"
maetugr 0:0c4fafa398b4 3
maetugr 0:0c4fafa398b4 4 ADXL345::ADXL345(PinName sda, PinName scl) : i2c_(sda, scl) {
maetugr 0:0c4fafa398b4 5
maetugr 0:0c4fafa398b4 6 //400kHz, allowing us to use the fastest data rates.
maetugr 0:0c4fafa398b4 7 //there are other chips on board, sorry
maetugr 0:0c4fafa398b4 8 i2c_.frequency(400000);
maetugr 0:0c4fafa398b4 9 // initialize the BW data rate
maetugr 0:0c4fafa398b4 10 char tx[2];
maetugr 0:0c4fafa398b4 11 tx[0] = ADXL345_BW_RATE_REG;
maetugr 0:0c4fafa398b4 12 tx[1] = ADXL345_1600HZ; //value greater than or equal to 0x0A is written into the rate bits (Bit D3 through Bit D0) in the BW_RATE register
maetugr 0:0c4fafa398b4 13 i2c_.write( ADXL345_WRITE , tx, 2);
maetugr 0:0c4fafa398b4 14
maetugr 0:0c4fafa398b4 15 //Data format (for +-16g) - This is done by setting Bit D3 of the DATA_FORMAT register (Address 0x31) and writing a value of 0x03 to the range bits (Bit D1 and Bit D0) of the DATA_FORMAT register (Address 0x31).
maetugr 0:0c4fafa398b4 16
maetugr 0:0c4fafa398b4 17 char rx[2];
maetugr 0:0c4fafa398b4 18 rx[0] = ADXL345_DATA_FORMAT_REG;
maetugr 0:0c4fafa398b4 19 rx[1] = 0x0B;
maetugr 0:0c4fafa398b4 20 // full res and +_16g
maetugr 0:0c4fafa398b4 21 i2c_.write( ADXL345_WRITE , rx, 2);
maetugr 0:0c4fafa398b4 22
maetugr 0:0c4fafa398b4 23 // Set Offset - programmed into the OFSX, OFSY, and OFXZ registers, respectively, as 0xFD, 0x03 and 0xFE.
maetugr 0:0c4fafa398b4 24 char x[2];
maetugr 0:0c4fafa398b4 25 x[0] = ADXL345_OFSX_REG ;
maetugr 0:0c4fafa398b4 26 x[1] = 0xFD;
maetugr 0:0c4fafa398b4 27 i2c_.write( ADXL345_WRITE , x, 2);
maetugr 0:0c4fafa398b4 28 char y[2];
maetugr 0:0c4fafa398b4 29 y[0] = ADXL345_OFSY_REG ;
maetugr 0:0c4fafa398b4 30 y[1] = 0x03;
maetugr 0:0c4fafa398b4 31 i2c_.write( ADXL345_WRITE , y, 2);
maetugr 0:0c4fafa398b4 32 char z[2];
maetugr 0:0c4fafa398b4 33 z[0] = ADXL345_OFSZ_REG ;
maetugr 0:0c4fafa398b4 34 z[1] = 0xFE;
maetugr 0:0c4fafa398b4 35 i2c_.write( ADXL345_WRITE , z, 2);
maetugr 1:5a64632b1eb9 36
maetugr 1:5a64632b1eb9 37 // MY INITIALISATION -------------------------------------------------------
maetugr 1:5a64632b1eb9 38
maetugr 1:5a64632b1eb9 39 setPowerControl(0x00);
maetugr 1:5a64632b1eb9 40 setDataFormatControl(0x0B);
maetugr 1:5a64632b1eb9 41 setDataRate(ADXL345_3200HZ);
maetugr 1:5a64632b1eb9 42 setPowerControl(MeasurementMode);
maetugr 0:0c4fafa398b4 43 }
maetugr 0:0c4fafa398b4 44
maetugr 0:0c4fafa398b4 45
maetugr 0:0c4fafa398b4 46 char ADXL345::SingleByteRead(char address){
maetugr 0:0c4fafa398b4 47 char tx = address;
maetugr 0:0c4fafa398b4 48 char output;
maetugr 0:0c4fafa398b4 49 i2c_.write( ADXL345_WRITE , &tx, 1); //tell it what you want to read
maetugr 0:0c4fafa398b4 50 i2c_.read( ADXL345_READ , &output, 1); //tell it where to store the data
maetugr 0:0c4fafa398b4 51 return output;
maetugr 0:0c4fafa398b4 52
maetugr 0:0c4fafa398b4 53 }
maetugr 0:0c4fafa398b4 54
maetugr 0:0c4fafa398b4 55
maetugr 0:0c4fafa398b4 56 /*
maetugr 0:0c4fafa398b4 57 ***info on the i2c_.write***
maetugr 0:0c4fafa398b4 58 address 8-bit I2C slave address [ addr | 0 ]
maetugr 0:0c4fafa398b4 59 data Pointer to the byte-array data to send
maetugr 0:0c4fafa398b4 60 length Number of bytes to send
maetugr 0:0c4fafa398b4 61 repeated Repeated start, true - do not send stop at end
maetugr 0:0c4fafa398b4 62 returns 0 on success (ack), or non-0 on failure (nack)
maetugr 0:0c4fafa398b4 63 */
maetugr 0:0c4fafa398b4 64
maetugr 0:0c4fafa398b4 65 int ADXL345::SingleByteWrite(char address, char data){
maetugr 0:0c4fafa398b4 66 int ack = 0;
maetugr 0:0c4fafa398b4 67 char tx[2];
maetugr 0:0c4fafa398b4 68 tx[0] = address;
maetugr 0:0c4fafa398b4 69 tx[1] = data;
maetugr 0:0c4fafa398b4 70 return ack | i2c_.write( ADXL345_WRITE , tx, 2);
maetugr 0:0c4fafa398b4 71 }
maetugr 0:0c4fafa398b4 72
maetugr 0:0c4fafa398b4 73
maetugr 0:0c4fafa398b4 74
maetugr 0:0c4fafa398b4 75 void ADXL345::multiByteRead(char address, char* output, int size) {
maetugr 0:0c4fafa398b4 76 i2c_.write( ADXL345_WRITE, &address, 1); //tell it where to read from
maetugr 0:0c4fafa398b4 77 i2c_.read( ADXL345_READ , output, size); //tell it where to store the data read
maetugr 0:0c4fafa398b4 78 }
maetugr 0:0c4fafa398b4 79
maetugr 0:0c4fafa398b4 80
maetugr 0:0c4fafa398b4 81 int ADXL345::multiByteWrite(char address, char* ptr_data, int size) {
maetugr 0:0c4fafa398b4 82 int ack;
maetugr 0:0c4fafa398b4 83
maetugr 0:0c4fafa398b4 84 ack = i2c_.write( ADXL345_WRITE, &address, 1); //tell it where to write to
maetugr 0:0c4fafa398b4 85 return ack | i2c_.write( ADXL345_READ, ptr_data, size); //tell it what data to write
maetugr 0:0c4fafa398b4 86
maetugr 0:0c4fafa398b4 87 }
maetugr 0:0c4fafa398b4 88
maetugr 0:0c4fafa398b4 89
maetugr 0:0c4fafa398b4 90 void ADXL345::getOutput(int* readings){
maetugr 0:0c4fafa398b4 91 char buffer[6];
maetugr 0:0c4fafa398b4 92 multiByteRead(ADXL345_DATAX0_REG, buffer, 6);
maetugr 0:0c4fafa398b4 93
maetugr 0:0c4fafa398b4 94 readings[0] = (int)buffer[1] << 8 | (int)buffer[0];
maetugr 0:0c4fafa398b4 95 readings[1] = (int)buffer[3] << 8 | (int)buffer[2];
maetugr 0:0c4fafa398b4 96 readings[2] = (int)buffer[5] << 8 | (int)buffer[4];
maetugr 0:0c4fafa398b4 97
maetugr 0:0c4fafa398b4 98 }
maetugr 0:0c4fafa398b4 99
maetugr 0:0c4fafa398b4 100
maetugr 0:0c4fafa398b4 101
maetugr 0:0c4fafa398b4 102 char ADXL345::getDeviceID() {
maetugr 0:0c4fafa398b4 103 return SingleByteRead(ADXL345_DEVID_REG);
maetugr 0:0c4fafa398b4 104 }
maetugr 0:0c4fafa398b4 105 //
maetugr 0:0c4fafa398b4 106 int ADXL345::setPowerMode(char mode) {
maetugr 0:0c4fafa398b4 107
maetugr 0:0c4fafa398b4 108 //Get the current register contents, so we don't clobber the rate value.
maetugr 0:0c4fafa398b4 109 char registerContents = (mode << 4) | SingleByteRead(ADXL345_BW_RATE_REG);
maetugr 0:0c4fafa398b4 110
maetugr 0:0c4fafa398b4 111 return SingleByteWrite(ADXL345_BW_RATE_REG, registerContents);
maetugr 0:0c4fafa398b4 112
maetugr 0:0c4fafa398b4 113 }
maetugr 0:0c4fafa398b4 114
maetugr 0:0c4fafa398b4 115 char ADXL345::getPowerControl() {
maetugr 0:0c4fafa398b4 116 return SingleByteRead(ADXL345_POWER_CTL_REG);
maetugr 0:0c4fafa398b4 117 }
maetugr 0:0c4fafa398b4 118
maetugr 0:0c4fafa398b4 119 int ADXL345::setPowerControl(char settings) {
maetugr 0:0c4fafa398b4 120 return SingleByteWrite(ADXL345_POWER_CTL_REG, settings);
maetugr 0:0c4fafa398b4 121
maetugr 0:0c4fafa398b4 122 }
maetugr 0:0c4fafa398b4 123
maetugr 0:0c4fafa398b4 124
maetugr 0:0c4fafa398b4 125
maetugr 0:0c4fafa398b4 126 char ADXL345::getDataFormatControl(void){
maetugr 0:0c4fafa398b4 127
maetugr 0:0c4fafa398b4 128 return SingleByteRead(ADXL345_DATA_FORMAT_REG);
maetugr 0:0c4fafa398b4 129 }
maetugr 0:0c4fafa398b4 130
maetugr 0:0c4fafa398b4 131 int ADXL345::setDataFormatControl(char settings){
maetugr 0:0c4fafa398b4 132
maetugr 0:0c4fafa398b4 133 return SingleByteWrite(ADXL345_DATA_FORMAT_REG, settings);
maetugr 0:0c4fafa398b4 134
maetugr 0:0c4fafa398b4 135 }
maetugr 0:0c4fafa398b4 136
maetugr 0:0c4fafa398b4 137 int ADXL345::setDataRate(char rate) {
maetugr 0:0c4fafa398b4 138
maetugr 0:0c4fafa398b4 139 //Get the current register contents, so we don't clobber the power bit.
maetugr 0:0c4fafa398b4 140 char registerContents = SingleByteRead(ADXL345_BW_RATE_REG);
maetugr 0:0c4fafa398b4 141
maetugr 0:0c4fafa398b4 142 registerContents &= 0x10;
maetugr 0:0c4fafa398b4 143 registerContents |= rate;
maetugr 0:0c4fafa398b4 144
maetugr 0:0c4fafa398b4 145 return SingleByteWrite(ADXL345_BW_RATE_REG, registerContents);
maetugr 0:0c4fafa398b4 146
maetugr 0:0c4fafa398b4 147 }
maetugr 0:0c4fafa398b4 148
maetugr 0:0c4fafa398b4 149
maetugr 0:0c4fafa398b4 150 char ADXL345::getOffset(char axis) {
maetugr 0:0c4fafa398b4 151
maetugr 0:0c4fafa398b4 152 char address = 0;
maetugr 0:0c4fafa398b4 153
maetugr 0:0c4fafa398b4 154 if (axis == ADXL345_X) {
maetugr 0:0c4fafa398b4 155 address = ADXL345_OFSX_REG;
maetugr 0:0c4fafa398b4 156 } else if (axis == ADXL345_Y) {
maetugr 0:0c4fafa398b4 157 address = ADXL345_OFSY_REG;
maetugr 0:0c4fafa398b4 158 } else if (axis == ADXL345_Z) {
maetugr 0:0c4fafa398b4 159 address = ADXL345_OFSZ_REG;
maetugr 0:0c4fafa398b4 160 }
maetugr 0:0c4fafa398b4 161
maetugr 0:0c4fafa398b4 162 return SingleByteRead(address);
maetugr 0:0c4fafa398b4 163 }
maetugr 0:0c4fafa398b4 164
maetugr 0:0c4fafa398b4 165 int ADXL345::setOffset(char axis, char offset) {
maetugr 0:0c4fafa398b4 166
maetugr 0:0c4fafa398b4 167 char address = 0;
maetugr 0:0c4fafa398b4 168
maetugr 0:0c4fafa398b4 169 if (axis == ADXL345_X) {
maetugr 0:0c4fafa398b4 170 address = ADXL345_OFSX_REG;
maetugr 0:0c4fafa398b4 171 } else if (axis == ADXL345_Y) {
maetugr 0:0c4fafa398b4 172 address = ADXL345_OFSY_REG;
maetugr 0:0c4fafa398b4 173 } else if (axis == ADXL345_Z) {
maetugr 0:0c4fafa398b4 174 address = ADXL345_OFSZ_REG;
maetugr 0:0c4fafa398b4 175 }
maetugr 0:0c4fafa398b4 176
maetugr 0:0c4fafa398b4 177 return SingleByteWrite(address, offset);
maetugr 0:0c4fafa398b4 178
maetugr 0:0c4fafa398b4 179 }
maetugr 0:0c4fafa398b4 180
maetugr 0:0c4fafa398b4 181
maetugr 0:0c4fafa398b4 182 char ADXL345::getFifoControl(void){
maetugr 0:0c4fafa398b4 183
maetugr 0:0c4fafa398b4 184 return SingleByteRead(ADXL345_FIFO_CTL);
maetugr 0:0c4fafa398b4 185
maetugr 0:0c4fafa398b4 186 }
maetugr 0:0c4fafa398b4 187
maetugr 0:0c4fafa398b4 188 int ADXL345::setFifoControl(char settings){
maetugr 0:0c4fafa398b4 189 return SingleByteWrite(ADXL345_FIFO_STATUS, settings);
maetugr 0:0c4fafa398b4 190
maetugr 0:0c4fafa398b4 191 }
maetugr 0:0c4fafa398b4 192
maetugr 0:0c4fafa398b4 193 char ADXL345::getFifoStatus(void){
maetugr 0:0c4fafa398b4 194
maetugr 0:0c4fafa398b4 195 return SingleByteRead(ADXL345_FIFO_STATUS);
maetugr 0:0c4fafa398b4 196
maetugr 0:0c4fafa398b4 197 }
maetugr 0:0c4fafa398b4 198
maetugr 0:0c4fafa398b4 199
maetugr 0:0c4fafa398b4 200
maetugr 0:0c4fafa398b4 201 char ADXL345::getTapThreshold(void) {
maetugr 0:0c4fafa398b4 202
maetugr 0:0c4fafa398b4 203 return SingleByteRead(ADXL345_THRESH_TAP_REG);
maetugr 0:0c4fafa398b4 204 }
maetugr 0:0c4fafa398b4 205
maetugr 0:0c4fafa398b4 206 int ADXL345::setTapThreshold(char threshold) {
maetugr 0:0c4fafa398b4 207
maetugr 0:0c4fafa398b4 208 return SingleByteWrite(ADXL345_THRESH_TAP_REG, threshold);
maetugr 0:0c4fafa398b4 209
maetugr 0:0c4fafa398b4 210 }
maetugr 0:0c4fafa398b4 211
maetugr 0:0c4fafa398b4 212
maetugr 0:0c4fafa398b4 213 float ADXL345::getTapDuration(void) {
maetugr 0:0c4fafa398b4 214
maetugr 0:0c4fafa398b4 215 return (float)SingleByteRead(ADXL345_DUR_REG)*625;
maetugr 0:0c4fafa398b4 216 }
maetugr 0:0c4fafa398b4 217
maetugr 0:0c4fafa398b4 218 int ADXL345::setTapDuration(short int duration_us) {
maetugr 0:0c4fafa398b4 219
maetugr 0:0c4fafa398b4 220 short int tapDuration = duration_us / 625;
maetugr 0:0c4fafa398b4 221 char tapChar[2];
maetugr 0:0c4fafa398b4 222 tapChar[0] = (tapDuration & 0x00FF);
maetugr 0:0c4fafa398b4 223 tapChar[1] = (tapDuration >> 8) & 0x00FF;
maetugr 0:0c4fafa398b4 224 return multiByteWrite(ADXL345_DUR_REG, tapChar, 2);
maetugr 0:0c4fafa398b4 225
maetugr 0:0c4fafa398b4 226 }
maetugr 0:0c4fafa398b4 227
maetugr 0:0c4fafa398b4 228 float ADXL345::getTapLatency(void) {
maetugr 0:0c4fafa398b4 229
maetugr 0:0c4fafa398b4 230 return (float)SingleByteRead(ADXL345_LATENT_REG)*1.25;
maetugr 0:0c4fafa398b4 231 }
maetugr 0:0c4fafa398b4 232
maetugr 0:0c4fafa398b4 233 int ADXL345::setTapLatency(short int latency_ms) {
maetugr 0:0c4fafa398b4 234
maetugr 0:0c4fafa398b4 235 latency_ms = latency_ms / 1.25;
maetugr 0:0c4fafa398b4 236 char latChar[2];
maetugr 0:0c4fafa398b4 237 latChar[0] = (latency_ms & 0x00FF);
maetugr 0:0c4fafa398b4 238 latChar[1] = (latency_ms << 8) & 0xFF00;
maetugr 0:0c4fafa398b4 239 return multiByteWrite(ADXL345_LATENT_REG, latChar, 2);
maetugr 0:0c4fafa398b4 240
maetugr 0:0c4fafa398b4 241 }
maetugr 0:0c4fafa398b4 242
maetugr 0:0c4fafa398b4 243 float ADXL345::getWindowTime(void) {
maetugr 0:0c4fafa398b4 244
maetugr 0:0c4fafa398b4 245 return (float)SingleByteRead(ADXL345_WINDOW_REG)*1.25;
maetugr 0:0c4fafa398b4 246 }
maetugr 0:0c4fafa398b4 247
maetugr 0:0c4fafa398b4 248 int ADXL345::setWindowTime(short int window_ms) {
maetugr 0:0c4fafa398b4 249
maetugr 0:0c4fafa398b4 250 window_ms = window_ms / 1.25;
maetugr 0:0c4fafa398b4 251 char windowChar[2];
maetugr 0:0c4fafa398b4 252 windowChar[0] = (window_ms & 0x00FF);
maetugr 0:0c4fafa398b4 253 windowChar[1] = ((window_ms << 8) & 0xFF00);
maetugr 0:0c4fafa398b4 254 return multiByteWrite(ADXL345_WINDOW_REG, windowChar, 2);
maetugr 0:0c4fafa398b4 255
maetugr 0:0c4fafa398b4 256 }
maetugr 0:0c4fafa398b4 257
maetugr 0:0c4fafa398b4 258 char ADXL345::getActivityThreshold(void) {
maetugr 0:0c4fafa398b4 259
maetugr 0:0c4fafa398b4 260 return SingleByteRead(ADXL345_THRESH_ACT_REG);
maetugr 0:0c4fafa398b4 261 }
maetugr 0:0c4fafa398b4 262
maetugr 0:0c4fafa398b4 263 int ADXL345::setActivityThreshold(char threshold) {
maetugr 0:0c4fafa398b4 264 return SingleByteWrite(ADXL345_THRESH_ACT_REG, threshold);
maetugr 0:0c4fafa398b4 265
maetugr 0:0c4fafa398b4 266 }
maetugr 0:0c4fafa398b4 267
maetugr 0:0c4fafa398b4 268 char ADXL345::getInactivityThreshold(void) {
maetugr 0:0c4fafa398b4 269 return SingleByteRead(ADXL345_THRESH_INACT_REG);
maetugr 0:0c4fafa398b4 270
maetugr 0:0c4fafa398b4 271 }
maetugr 0:0c4fafa398b4 272
maetugr 0:0c4fafa398b4 273 //int FUNCTION(short int * ptr_Output)
maetugr 0:0c4fafa398b4 274 //short int FUNCTION ()
maetugr 0:0c4fafa398b4 275
maetugr 0:0c4fafa398b4 276 int ADXL345::setInactivityThreshold(char threshold) {
maetugr 0:0c4fafa398b4 277 return SingleByteWrite(ADXL345_THRESH_INACT_REG, threshold);
maetugr 0:0c4fafa398b4 278
maetugr 0:0c4fafa398b4 279 }
maetugr 0:0c4fafa398b4 280
maetugr 0:0c4fafa398b4 281 char ADXL345::getTimeInactivity(void) {
maetugr 0:0c4fafa398b4 282
maetugr 0:0c4fafa398b4 283 return SingleByteRead(ADXL345_TIME_INACT_REG);
maetugr 0:0c4fafa398b4 284
maetugr 0:0c4fafa398b4 285 }
maetugr 0:0c4fafa398b4 286
maetugr 0:0c4fafa398b4 287 int ADXL345::setTimeInactivity(char timeInactivity) {
maetugr 0:0c4fafa398b4 288 return SingleByteWrite(ADXL345_TIME_INACT_REG, timeInactivity);
maetugr 0:0c4fafa398b4 289
maetugr 0:0c4fafa398b4 290 }
maetugr 0:0c4fafa398b4 291
maetugr 0:0c4fafa398b4 292 char ADXL345::getActivityInactivityControl(void) {
maetugr 0:0c4fafa398b4 293
maetugr 0:0c4fafa398b4 294 return SingleByteRead(ADXL345_ACT_INACT_CTL_REG);
maetugr 0:0c4fafa398b4 295
maetugr 0:0c4fafa398b4 296 }
maetugr 0:0c4fafa398b4 297
maetugr 0:0c4fafa398b4 298 int ADXL345::setActivityInactivityControl(char settings) {
maetugr 0:0c4fafa398b4 299 return SingleByteWrite(ADXL345_ACT_INACT_CTL_REG, settings);
maetugr 0:0c4fafa398b4 300
maetugr 0:0c4fafa398b4 301 }
maetugr 0:0c4fafa398b4 302
maetugr 0:0c4fafa398b4 303 char ADXL345::getFreefallThreshold(void) {
maetugr 0:0c4fafa398b4 304
maetugr 0:0c4fafa398b4 305 return SingleByteRead(ADXL345_THRESH_FF_REG);
maetugr 0:0c4fafa398b4 306
maetugr 0:0c4fafa398b4 307 }
maetugr 0:0c4fafa398b4 308
maetugr 0:0c4fafa398b4 309 int ADXL345::setFreefallThreshold(char threshold) {
maetugr 0:0c4fafa398b4 310 return SingleByteWrite(ADXL345_THRESH_FF_REG, threshold);
maetugr 0:0c4fafa398b4 311
maetugr 0:0c4fafa398b4 312 }
maetugr 0:0c4fafa398b4 313
maetugr 0:0c4fafa398b4 314 char ADXL345::getFreefallTime(void) {
maetugr 0:0c4fafa398b4 315
maetugr 0:0c4fafa398b4 316 return SingleByteRead(ADXL345_TIME_FF_REG)*5;
maetugr 0:0c4fafa398b4 317
maetugr 0:0c4fafa398b4 318 }
maetugr 0:0c4fafa398b4 319
maetugr 0:0c4fafa398b4 320 int ADXL345::setFreefallTime(short int freefallTime_ms) {
maetugr 0:0c4fafa398b4 321 freefallTime_ms = freefallTime_ms / 5;
maetugr 0:0c4fafa398b4 322 char fallChar[2];
maetugr 0:0c4fafa398b4 323 fallChar[0] = (freefallTime_ms & 0x00FF);
maetugr 0:0c4fafa398b4 324 fallChar[1] = (freefallTime_ms << 8) & 0xFF00;
maetugr 0:0c4fafa398b4 325
maetugr 0:0c4fafa398b4 326 return multiByteWrite(ADXL345_TIME_FF_REG, fallChar, 2);
maetugr 0:0c4fafa398b4 327
maetugr 0:0c4fafa398b4 328 }
maetugr 0:0c4fafa398b4 329
maetugr 0:0c4fafa398b4 330 char ADXL345::getTapAxisControl(void) {
maetugr 0:0c4fafa398b4 331
maetugr 0:0c4fafa398b4 332 return SingleByteRead(ADXL345_TAP_AXES_REG);
maetugr 0:0c4fafa398b4 333
maetugr 0:0c4fafa398b4 334 }
maetugr 0:0c4fafa398b4 335
maetugr 0:0c4fafa398b4 336 int ADXL345::setTapAxisControl(char settings) {
maetugr 0:0c4fafa398b4 337 return SingleByteWrite(ADXL345_TAP_AXES_REG, settings);
maetugr 0:0c4fafa398b4 338
maetugr 0:0c4fafa398b4 339 }
maetugr 0:0c4fafa398b4 340
maetugr 0:0c4fafa398b4 341 char ADXL345::getTapSource(void) {
maetugr 0:0c4fafa398b4 342
maetugr 0:0c4fafa398b4 343 return SingleByteRead(ADXL345_ACT_TAP_STATUS_REG);
maetugr 0:0c4fafa398b4 344
maetugr 0:0c4fafa398b4 345 }
maetugr 0:0c4fafa398b4 346
maetugr 0:0c4fafa398b4 347
maetugr 0:0c4fafa398b4 348
maetugr 0:0c4fafa398b4 349 char ADXL345::getInterruptEnableControl(void) {
maetugr 0:0c4fafa398b4 350
maetugr 0:0c4fafa398b4 351 return SingleByteRead(ADXL345_INT_ENABLE_REG);
maetugr 0:0c4fafa398b4 352
maetugr 0:0c4fafa398b4 353 }
maetugr 0:0c4fafa398b4 354
maetugr 0:0c4fafa398b4 355 int ADXL345::setInterruptEnableControl(char settings) {
maetugr 0:0c4fafa398b4 356 return SingleByteWrite(ADXL345_INT_ENABLE_REG, settings);
maetugr 0:0c4fafa398b4 357
maetugr 0:0c4fafa398b4 358 }
maetugr 0:0c4fafa398b4 359
maetugr 0:0c4fafa398b4 360 char ADXL345::getInterruptMappingControl(void) {
maetugr 0:0c4fafa398b4 361
maetugr 0:0c4fafa398b4 362 return SingleByteRead(ADXL345_INT_MAP_REG);
maetugr 0:0c4fafa398b4 363
maetugr 0:0c4fafa398b4 364 }
maetugr 0:0c4fafa398b4 365
maetugr 0:0c4fafa398b4 366 int ADXL345::setInterruptMappingControl(char settings) {
maetugr 0:0c4fafa398b4 367 return SingleByteWrite(ADXL345_INT_MAP_REG, settings);
maetugr 0:0c4fafa398b4 368
maetugr 0:0c4fafa398b4 369 }
maetugr 0:0c4fafa398b4 370
maetugr 0:0c4fafa398b4 371 char ADXL345::getInterruptSource(void){
maetugr 0:0c4fafa398b4 372
maetugr 0:0c4fafa398b4 373 return SingleByteRead(ADXL345_INT_SOURCE_REG);
maetugr 0:0c4fafa398b4 374
maetugr 0:0c4fafa398b4 375 }
maetugr 0:0c4fafa398b4 376
maetugr 0:0c4fafa398b4 377
maetugr 0:0c4fafa398b4 378
maetugr 0:0c4fafa398b4 379