lora sensnode
Dependencies: libmDot mbed-rtos mbed
Fork of mDot_LoRa_Sensornode by
app/MPU9250Config.cpp@1:e67174cc4953, 2016-08-10 (annotated)
- Committer:
- socie123
- Date:
- Wed Aug 10 12:54:10 2016 +0000
- Revision:
- 1:e67174cc4953
- Parent:
- 0:f2815503561f
lora sensnode
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mitea1 | 0:f2815503561f | 1 | /* |
mitea1 | 0:f2815503561f | 2 | * MPU9250Config.cpp |
mitea1 | 0:f2815503561f | 3 | * |
mitea1 | 0:f2815503561f | 4 | * Created on: 23.05.2016 |
mitea1 | 0:f2815503561f | 5 | * Author: Adrian |
mitea1 | 0:f2815503561f | 6 | */ |
mitea1 | 0:f2815503561f | 7 | |
mitea1 | 0:f2815503561f | 8 | #include "MPU9250Config.h" |
mitea1 | 0:f2815503561f | 9 | |
mitea1 | 0:f2815503561f | 10 | MPU9250Config::MPU9250Config() { |
mitea1 | 0:f2815503561f | 11 | // TODO Auto-generated constructor stub |
mitea1 | 0:f2815503561f | 12 | |
mitea1 | 0:f2815503561f | 13 | } |
mitea1 | 0:f2815503561f | 14 | |
mitea1 | 0:f2815503561f | 15 | MPU9250Config::~MPU9250Config() { |
mitea1 | 0:f2815503561f | 16 | // TODO Auto-generated destructor stub |
mitea1 | 0:f2815503561f | 17 | } |
mitea1 | 0:f2815503561f | 18 | |
mitea1 | 0:f2815503561f | 19 | void MPU9250Config::build(MPU9250_MODE desiredMode){ |
mitea1 | 0:f2815503561f | 20 | switch(desiredMode){ |
mitea1 | 0:f2815503561f | 21 | case MPU9250_MODE_1: |
mitea1 | 0:f2815503561f | 22 | setAccelerometerScale(MPU9250_FULL_SCALE_2G); |
mitea1 | 0:f2815503561f | 23 | setGyroscopeScale(MPU9250_GYRO_FULL_SCALE_250DPS); |
mitea1 | 0:f2815503561f | 24 | setMagnetometerBitResolution(MPU9250_MAG_16_BIT); |
mitea1 | 0:f2815503561f | 25 | setMagnetometerMeasureMode(MPU9250_MAG_CONTINUOUS_MEASUREMENT_1); |
mitea1 | 0:f2815503561f | 26 | break; |
mitea1 | 0:f2815503561f | 27 | case MPU9250_MODE_2: |
mitea1 | 0:f2815503561f | 28 | setAccelerometerScale(MPU9250_FULL_SCALE_4G); |
mitea1 | 0:f2815503561f | 29 | setGyroscopeScale(MPU9250_GYRO_FULL_SCALE_500DPS); |
mitea1 | 0:f2815503561f | 30 | setMagnetometerBitResolution(MPU9250_MAG_16_BIT); |
mitea1 | 0:f2815503561f | 31 | setMagnetometerMeasureMode(MPU9250_MAG_CONTINUOUS_MEASUREMENT_1); |
mitea1 | 0:f2815503561f | 32 | break; |
mitea1 | 0:f2815503561f | 33 | case MPU9250_MODE_3: |
mitea1 | 0:f2815503561f | 34 | setAccelerometerScale(MPU9250_FULL_SCALE_8G); |
mitea1 | 0:f2815503561f | 35 | setGyroscopeScale(MPU9250_GYRO_FULL_SCALE_1000DPS); |
mitea1 | 0:f2815503561f | 36 | setMagnetometerBitResolution(MPU9250_MAG_16_BIT); |
mitea1 | 0:f2815503561f | 37 | setMagnetometerMeasureMode(MPU9250_MAG_CONTINUOUS_MEASUREMENT_1); |
mitea1 | 0:f2815503561f | 38 | break; |
mitea1 | 0:f2815503561f | 39 | case MPU9250_MODE_4: |
mitea1 | 0:f2815503561f | 40 | setAccelerometerScale(MPU9250_FULL_SCALE_2G); |
mitea1 | 0:f2815503561f | 41 | setGyroscopeScale(MPU9250_GYRO_FULL_SCALE_250DPS); |
mitea1 | 0:f2815503561f | 42 | setMagnetometerBitResolution(MPU9250_MAG_16_BIT); |
mitea1 | 0:f2815503561f | 43 | setMagnetometerMeasureMode(MPU9250_MAG_CONTINUOUS_MEASUREMENT_1); |
mitea1 | 0:f2815503561f | 44 | setInterruptPinConfiguration(MPU9250_INT_ANYRD_2CLEAR_MASK| |
mitea1 | 0:f2815503561f | 45 | MPU9250_LATCH_INT_EN_MASK); |
mitea1 | 0:f2815503561f | 46 | setWakeOnMotionThreshold(MPU9250_WOM_THRESHOLD_1020_MG); |
mitea1 | 0:f2815503561f | 47 | break; |
mitea1 | 0:f2815503561f | 48 | } |
mitea1 | 0:f2815503561f | 49 | } |
mitea1 | 0:f2815503561f | 50 | |
mitea1 | 0:f2815503561f | 51 | void MPU9250Config::setAccelerometerScale(uint8_t accelerometerScale){ |
mitea1 | 0:f2815503561f | 52 | this->accelerometerScale = accelerometerScale; |
mitea1 | 0:f2815503561f | 53 | } |
mitea1 | 0:f2815503561f | 54 | |
mitea1 | 0:f2815503561f | 55 | void MPU9250Config::setGyroscopeScale(uint8_t gyroscopeScale){ |
mitea1 | 0:f2815503561f | 56 | this->gyroscopeScale = gyroscopeScale; |
mitea1 | 0:f2815503561f | 57 | } |
mitea1 | 0:f2815503561f | 58 | |
mitea1 | 0:f2815503561f | 59 | void MPU9250Config::setMagnetometerBitResolution(uint8_t magnetometerBitResolution){ |
mitea1 | 0:f2815503561f | 60 | this->magnetometerBitResolution = magnetometerBitResolution; |
mitea1 | 0:f2815503561f | 61 | } |
mitea1 | 0:f2815503561f | 62 | |
mitea1 | 0:f2815503561f | 63 | void MPU9250Config::setMagnetometerMeasureMode(uint8_t magnetometermeasureMode){ |
mitea1 | 0:f2815503561f | 64 | this->magnetometerMeasureMode = magnetometermeasureMode; |
mitea1 | 0:f2815503561f | 65 | } |
mitea1 | 0:f2815503561f | 66 | |
mitea1 | 0:f2815503561f | 67 | void MPU9250Config::setInterruptPinConfiguration(uint8_t interruptPinConfiguration){ |
mitea1 | 0:f2815503561f | 68 | this->interruptPinConfiguration = interruptPinConfiguration; |
mitea1 | 0:f2815503561f | 69 | } |
mitea1 | 0:f2815503561f | 70 | |
mitea1 | 0:f2815503561f | 71 | void MPU9250Config::setInterruptEnableConfiguration(uint8_t interruptEnbaleConfiguration){ |
mitea1 | 0:f2815503561f | 72 | this->interruptEnableConfiguration = interruptEnableConfiguration; |
mitea1 | 0:f2815503561f | 73 | } |
mitea1 | 0:f2815503561f | 74 | |
mitea1 | 0:f2815503561f | 75 | void MPU9250Config::setWakeOnMotionThreshold(uint8_t wakeOnMotionThreshold){ |
mitea1 | 0:f2815503561f | 76 | this->wakeOnMotionThreshold; |
mitea1 | 0:f2815503561f | 77 | } |
mitea1 | 0:f2815503561f | 78 | |
mitea1 | 0:f2815503561f | 79 | uint8_t MPU9250Config::getAccelerometerScale(){ |
mitea1 | 0:f2815503561f | 80 | return accelerometerScale; |
mitea1 | 0:f2815503561f | 81 | } |
mitea1 | 0:f2815503561f | 82 | |
mitea1 | 0:f2815503561f | 83 | uint8_t MPU9250Config::getGyroscopeScale(){ |
mitea1 | 0:f2815503561f | 84 | return gyroscopeScale; |
mitea1 | 0:f2815503561f | 85 | } |
mitea1 | 0:f2815503561f | 86 | |
mitea1 | 0:f2815503561f | 87 | uint8_t MPU9250Config::getMagnetometerBitResolution(){ |
mitea1 | 0:f2815503561f | 88 | return magnetometerBitResolution; |
mitea1 | 0:f2815503561f | 89 | } |
mitea1 | 0:f2815503561f | 90 | |
mitea1 | 0:f2815503561f | 91 | uint8_t MPU9250Config::getMagnetometerMeasureMode(){ |
mitea1 | 0:f2815503561f | 92 | return magnetometerMeasureMode; |
mitea1 | 0:f2815503561f | 93 | } |
mitea1 | 0:f2815503561f | 94 | float MPU9250Config::getAccelerationDivider(){ |
mitea1 | 0:f2815503561f | 95 | float divider; |
mitea1 | 0:f2815503561f | 96 | |
mitea1 | 0:f2815503561f | 97 | switch(accelerometerScale){ |
mitea1 | 0:f2815503561f | 98 | case MPU9250_FULL_SCALE_2G: |
mitea1 | 0:f2815503561f | 99 | divider = 32768/2; |
mitea1 | 0:f2815503561f | 100 | break; |
mitea1 | 0:f2815503561f | 101 | case MPU9250_FULL_SCALE_4G: |
mitea1 | 0:f2815503561f | 102 | divider = 32768/4; |
mitea1 | 0:f2815503561f | 103 | break; |
mitea1 | 0:f2815503561f | 104 | case MPU9250_FULL_SCALE_8G: |
mitea1 | 0:f2815503561f | 105 | divider = 32768/8; |
mitea1 | 0:f2815503561f | 106 | break; |
mitea1 | 0:f2815503561f | 107 | case MPU9250_FULL_SCALE_16G: |
mitea1 | 0:f2815503561f | 108 | divider = 32768/16; |
mitea1 | 0:f2815503561f | 109 | break; |
mitea1 | 0:f2815503561f | 110 | default: |
mitea1 | 0:f2815503561f | 111 | divider = 1; |
mitea1 | 0:f2815503561f | 112 | break; |
mitea1 | 0:f2815503561f | 113 | } |
mitea1 | 0:f2815503561f | 114 | |
mitea1 | 0:f2815503561f | 115 | return divider; |
mitea1 | 0:f2815503561f | 116 | } |
mitea1 | 0:f2815503561f | 117 | |
mitea1 | 0:f2815503561f | 118 | float MPU9250Config::getGyroDivider(){ |
mitea1 | 0:f2815503561f | 119 | float divider; |
mitea1 | 0:f2815503561f | 120 | |
mitea1 | 0:f2815503561f | 121 | switch(accelerometerScale){ |
mitea1 | 0:f2815503561f | 122 | case MPU9250_GYRO_FULL_SCALE_250DPS: |
mitea1 | 0:f2815503561f | 123 | divider = 32768/250; |
mitea1 | 0:f2815503561f | 124 | break; |
mitea1 | 0:f2815503561f | 125 | case MPU9250_GYRO_FULL_SCALE_500DPS: |
mitea1 | 0:f2815503561f | 126 | divider = 32768/500; |
mitea1 | 0:f2815503561f | 127 | break; |
mitea1 | 0:f2815503561f | 128 | case MPU9250_GYRO_FULL_SCALE_1000DPS: |
mitea1 | 0:f2815503561f | 129 | divider = 32768/1000; |
mitea1 | 0:f2815503561f | 130 | break; |
mitea1 | 0:f2815503561f | 131 | case MPU9250_GYRO_FULL_SCALE_2000DPS: |
mitea1 | 0:f2815503561f | 132 | divider = 32768/2000; |
mitea1 | 0:f2815503561f | 133 | break; |
mitea1 | 0:f2815503561f | 134 | default: |
mitea1 | 0:f2815503561f | 135 | divider = 1; |
mitea1 | 0:f2815503561f | 136 | break; |
mitea1 | 0:f2815503561f | 137 | } |
mitea1 | 0:f2815503561f | 138 | |
mitea1 | 0:f2815503561f | 139 | return divider; |
mitea1 | 0:f2815503561f | 140 | } |
mitea1 | 0:f2815503561f | 141 | |
mitea1 | 0:f2815503561f | 142 | float MPU9250Config::getTeslaDivider(){ |
mitea1 | 0:f2815503561f | 143 | float divider; |
mitea1 | 0:f2815503561f | 144 | |
mitea1 | 0:f2815503561f | 145 | switch(magnetometerBitResolution){ |
mitea1 | 0:f2815503561f | 146 | case MPU9250_MAG_14_BIT: |
mitea1 | 0:f2815503561f | 147 | divider = 8190/4192; |
mitea1 | 0:f2815503561f | 148 | break; |
mitea1 | 0:f2815503561f | 149 | case MPU9250_MAG_16_BIT: |
mitea1 | 0:f2815503561f | 150 | divider = 32768/4192; |
mitea1 | 0:f2815503561f | 151 | break; |
mitea1 | 0:f2815503561f | 152 | default: |
mitea1 | 0:f2815503561f | 153 | divider = 1; |
mitea1 | 0:f2815503561f | 154 | break; |
mitea1 | 0:f2815503561f | 155 | } |
mitea1 | 0:f2815503561f | 156 | |
mitea1 | 0:f2815503561f | 157 | return divider; |
mitea1 | 0:f2815503561f | 158 | } |
mitea1 | 0:f2815503561f | 159 | |
mitea1 | 0:f2815503561f | 160 | uint8_t MPU9250Config::getInterruptPinConfiguration(){ |
mitea1 | 0:f2815503561f | 161 | return interruptPinConfiguration; |
mitea1 | 0:f2815503561f | 162 | } |
mitea1 | 0:f2815503561f | 163 | |
mitea1 | 0:f2815503561f | 164 | uint8_t MPU9250Config::getInterruptEnableConfiguration(){ |
mitea1 | 0:f2815503561f | 165 | return interruptEnableConfiguration; |
mitea1 | 0:f2815503561f | 166 | } |
mitea1 | 0:f2815503561f | 167 | |
mitea1 | 0:f2815503561f | 168 | uint8_t MPU9250Config::getWakeOnMotionThreshold(){ |
mitea1 | 0:f2815503561f | 169 | return wakeOnMotionThreshold; |
mitea1 | 0:f2815503561f | 170 | } |
mitea1 | 0:f2815503561f | 171 | |
mitea1 | 0:f2815503561f | 172 | |
mitea1 | 0:f2815503561f | 173 |