lora sensnode

Dependencies:   libmDot mbed-rtos mbed

Fork of mDot_LoRa_Sensornode by Adrian Mitevski

Committer:
mitea1
Date:
Wed Jul 06 20:40:36 2016 +0000
Revision:
0:f2815503561f
initial commit;

Who changed what in which revision?

UserRevisionLine numberNew 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