First draft HMC5883 magnetometer sensor using physical quantities, outputting via serial port using std::cout on mbed os 5

Revision:
7:5d14da0b4c95
Parent:
3:2834be4e10ef
Child:
8:c5dc1ce10722
--- a/hmc5883.cpp	Thu Mar 26 01:58:30 2020 +0000
+++ b/hmc5883.cpp	Thu Mar 26 12:27:43 2020 +0000
@@ -1,10 +1,12 @@
 
 
 #include "mbed.h"
+
 #include <iostream>
 #include <quan/out/magnetic_flux_density.hpp>
 #include <quan/three_d/out/vect.hpp>
 
+#include "resourceManager.h"
 /*
 
    MySensor sensor;
@@ -50,7 +52,10 @@
     12 Identification Register C      R
     */
     
-    I2C i2c(I2C_SDA, I2C_SCL );
+   // I2C i2c(I2C_SDA, I2C_SCL );
+   
+    I2C& i2c = resource::i2c1;
+   
     constexpr uint8_t i2c_addr = 0x3D;
     constexpr char cfg_regA = 0;
     constexpr char cfg_regB = 1;
@@ -58,15 +63,13 @@
     constexpr char dout_reg = 3;
     constexpr char status_reg = 9;
     constexpr char id_regA = 10U;
-
+    
     // Set reg index to idx_in
     // return true if successful
     bool mag_set_reg_idx(uint8_t idx_in)
     {
         char const idx = static_cast<char>(idx_in);
-        i2c.lock();
         bool const result = i2c.write(i2c_addr,&idx,1) == 0;
-        i2c.unlock();
         if(result) {
             return true;
         } else {
@@ -80,9 +83,7 @@
     bool mag_write_reg(uint8_t idx, uint8_t val)
     {
         char ar[2] = {idx,val};
-        i2c.lock();
         bool const result = i2c.write(i2c_addr,ar,2) == 0;
-        i2c.unlock();
         if(result) {
             return true;
         } else {
@@ -97,9 +98,7 @@
     {
         if ( mag_set_reg_idx(idx_in)) {
             char temp_result = 0;
-            i2c.lock();
             bool const success = i2c.read(i2c_addr,&temp_result,1) == 0;
-            i2c.unlock();
             if (success) {
                 result = temp_result;
                 return true;
@@ -134,9 +133,7 @@
 {
     if ( mag_set_reg_idx(id_regA) ) {
         char id_input[4];
-        i2c.lock();
         bool success = i2c.read(i2c_addr,id_input,3) == 0;
-        i2c.unlock();
         if(success) {
             id_input[3] = '\0';
             bool const is_hmc = (strcmp(id_input,"H43") == 0);