]> jspc29.x-matter.uni-frankfurt.de Git - avr.git/commitdiff
Magn Sens: macro for chip version
authorPhilipp Klaus <philipp.klaus@gmail.com>
Thu, 11 Jan 2018 12:20:10 +0000 (13:20 +0100)
committerPhilipp Klaus <philipp.klaus@gmail.com>
Thu, 11 Jan 2018 12:20:10 +0000 (13:20 +0100)
sensors/MagneticFieldSensor/MagnetSensor.c

index ec3522c39e007f9d5755200f9c193ade7de0a204..3beddbe91de2d4a88e1125c6fe6f47560a3e3d2c 100644 (file)
@@ -1,4 +1,5 @@
 #include "MagnetSensor.h"
+//#define CHIP_OLD 1
 
 uint8_t InitMagSensor(uint8_t Addr, uint16_t* Tref, float* SensX, float* SensY, float* SensZ)
 {
@@ -127,7 +128,9 @@ float SensitivityXY(uint8_t Gain, uint8_t Res){
        sprintf(s,"LOG: %f",Sens);
        uputsnl(s);
   }*/
-  
+
+
+#ifdef CHIP_OLD
    switch(Gain) {
        case 0: Sens=0.805; break;
        case 1: Sens=0.644; break;
@@ -138,6 +141,19 @@ float SensitivityXY(uint8_t Gain, uint8_t Res){
        case 6: Sens=0.215; break;
        default: Sens=0.161; break;
    }
+#else
+   switch(Gain) {
+       case 0: Sens=0.751; break;
+       case 1: Sens=0.601; break;
+       case 2: Sens=0.451; break;
+       case 3: Sens=0.376; break;
+       case 4: Sens=0.3002; break;
+       case 5: Sens=0.250; break;
+       case 6: Sens=0.200; break;
+       default: Sens=0.150; break;
+   }
+
+#endif
 
 
   return Sens*(float)pow(2,Res);
@@ -145,6 +161,7 @@ float SensitivityXY(uint8_t Gain, uint8_t Res){
 
 float SensitivityZ(uint8_t Gain, uint8_t Res){
   float Sens =0.805;
+#ifdef CHIP_OLD
    switch(Gain) {
        case 0: Sens=1.468; break;
        case 1: Sens=1.174; break;
@@ -155,6 +172,18 @@ float SensitivityZ(uint8_t Gain, uint8_t Res){
        case 6: Sens=0.391; break;
        default: Sens=0.294; break;
    }
+#else
+   switch(Gain) {
+       case 0: Sens=1.210; break;
+       case 1: Sens=0.968; break;
+       case 2: Sens=0.726; break;
+       case 3: Sens=0.605; break;
+       case 4: Sens=0.484; break;
+       case 5: Sens=0.403; break;
+       case 6: Sens=0.323; break;
+       default: Sens=0.242; break;
+   }
+#endif
 
 
   return Sens*(float)pow(2,Res);