Francis Lee / ROHM-DragonFly-MultiSensorShield_Interface

Dependencies:   mbed-src

Fork of YYY_DragonflyHelloWorld by Paul Jaeger

Files at this revision

API Documentation at this revision

Comitter:
sk84life85
Date:
Thu Sep 24 21:50:52 2015 +0000
Parent:
3:e2e8d92e5fcd
Commit message:
Modified basic code to configure BH1745 registers and read back what has been written.

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Wed Sep 23 23:02:58 2015 +0000
+++ b/main.cpp	Thu Sep 24 21:50:52 2015 +0000
@@ -2,12 +2,13 @@
 
 #define RPR0521_MODE_CONT_CONTENT (0xC6u) // Temperature Register
 #define RPR0521_MODE_CONT         (0x41u) // Configuration Register
-#define BH1745_SAD              (0x38u) // LM75 address
+#define BH1745_SAD              (0x38u)   // BH1745 address
+#define BH1745_SYSTEM_CONTROL   (0x40u)
 #define BH1745_MODE_CONTROL1    (0x41u)
 #define BH1745_MODE_CONTROL2    (0x42u)
 #define BH1745_MODE_CONTROL3    (0x43u)
 #define BH1745_PERSISTANT       (0x61u)
-#define BH1745_CLEAR_LSB        (0x50u)
+#define BH1745_CLEAR_LSB        (0x56u)
  
 I2C i2c(I2C_SDA, I2C_SCL);
 DigitalOut myled(LED1);
@@ -18,7 +19,7 @@
 */
 
 // LED blink rate: higher -> faster blinking
-#define LED_BLINK_RATE 8  //Hertz
+#define LED_BLINK_RATE 18  //Hertz
 
 //Define the LED pin output
 //DigitalOut data00(D0); 
@@ -61,7 +62,7 @@
     
     // Configure I2C **********************************************************
     char data_write[2];
-    char data_read[2];
+    char data_read[6];
  
     /* Configure the Temperature sensor device STLM75:
     - Thermostat mode Interrupt
@@ -79,7 +80,7 @@
     }
     
     data_write[0] = BH1745_MODE_CONTROL1;
-    data_write[1] = 0x00u; 
+    data_write[1] = 0x05u; 
     status = i2c.write(BH1745_SAD, data_write, 2, 0);
     if (status != 0) { // Error
         while (1) {
@@ -112,12 +113,17 @@
     while (1) {
         // I2C Routines *******************************************************
         // Read temperature register
-        data_write[0] = BH1745_CLEAR_LSB;
+        data_write[0] = BH1745_SYSTEM_CONTROL;
         i2c.write(BH1745_SAD, data_write, 1, 1); // no stop
-        i2c.read(BH1745_SAD, data_read, 1, 0);
+        i2c.read(BH1745_SAD, data_read, 6, 0);
     
         // Calculate temperature value in Celcius 
-        int tempval = (int)data_read[0];
+        int tempval1 = (int)data_read[0];
+        int tempval2 = (int)data_read[1];
+        int tempval3 = (int)data_read[2];
+        int tempval4 = (int)data_read[3];
+        int tempval5 = (int)data_read[4];
+        int tempval6 = (int)data_read[5];
         /*
         tempval >>= 7;
         if (tempval <= 256) {
@@ -152,8 +158,8 @@
         //*********************************************************************
  
         // UART
-        if (print_timer.read() >= 5) {  //print_timer.read() returns time in seconds
-            printf("Hello Francis %d!\n",tempval);
+        if (print_timer.read() >= 1) {  //print_timer.read() returns time in seconds
+            printf("Francis' Test: %d, %d, %d, %d. %d, %d!\n",tempval1,tempval2,tempval3,tempval4,tempval5,tempval6);
             print_timer.reset();        //Resets timer count to 0
         }