Library for the MAX44000 Ambient Light Sensor / Proximity Detector

Dependents:   LED_Demo LED_Demo2 LED_Demo

Fork of BMP180 by Kevin Gillepsie

MAX44000 Device Driver

Files at this revision

API Documentation at this revision

Comitter:
switches
Date:
Wed May 04 18:03:38 2016 +0000
Parent:
1:1a770989adcb
Child:
3:1d508b290354
Commit message:
Cleaned up documentation

Changed in this revision

MAX44000.cpp Show annotated file Show diff for this revision Revisions of this file
MAX44000.h Show annotated file Show diff for this revision Revisions of this file
--- a/MAX44000.cpp	Wed May 04 15:47:32 2016 +0000
+++ b/MAX44000.cpp	Wed May 04 18:03:38 2016 +0000
@@ -135,7 +135,7 @@
     if (data & 0x40) { // if the overflow bit is set
         return -1;
     }
-    
+
     alsData = (data << 8);
     data = REG_ALS_DATA_LOW;
     if (i2c_->write(I2C_ADDR, &data, 1, true) != 0) {
--- a/MAX44000.h	Wed May 04 15:47:32 2016 +0000
+++ b/MAX44000.h	Wed May 04 18:03:38 2016 +0000
@@ -37,7 +37,7 @@
 #include "mbed.h"
 
 /**
- * Bosch MAX44000 Digital Pressure Sensor
+ * MAX44000 Ambient Light and Infrared Proximity Sensor
  *
  * @code
  * #include <stdio.h>
@@ -88,22 +88,22 @@
      * @details Enumerated MAX44000 register addresses
      */
     typedef enum {
-        REG_STATUS,         // Interrupt Status
-        REG_MAIN_CONFIG,    // Main Configuration
-        REG_RX_CONFIG,      // Receive Configuration
-        REG_TX_CONFIG,      // Transmit Configuration
-        REG_ALS_DATA_HIGH,  // ADC High Byte (ALS)
-        REG_ALS_DATA_LOW,   // ADC Low Byte (ALS)
-        REG_ALS_UPTHR_HIGH, // ALS Upper Threshold (High Byte)
-        REG_ALS_UPTHR_LOW,  // ALS Upper Threshold (Low Byte)
-        REG_ALS_LOTHR_HIGH, // ALS Lower Threshold (High Byte)
-        REG_ALS_LOTHR_LOW,  // ALS Lower Threshold (Low Byte)
-        REG_PST,            // Threshold Persist Timer
-        REG_PRX_IND,        // PROX Threshold Indicator
-        REG_PRX_THR,        // PROX Threshold
-        REG_TRIM_GAIN_GREEN,// Digital Gain Trim of Green Channel
-        REG_TRIM_GAIN_IR = 0x0F, // Digital Gain Trim of Infrared Channel
-        REG_PRX_DATA     = 0x16  // ADC Byte (PROX)
+        REG_STATUS,         ///< Interrupt Status
+        REG_MAIN_CONFIG,    ///< Main Configuration
+        REG_RX_CONFIG,      ///< Receive Configuration
+        REG_TX_CONFIG,      ///< Transmit Configuration
+        REG_ALS_DATA_HIGH,  ///< ADC High Byte (ALS)
+        REG_ALS_DATA_LOW,   ///< ADC Low Byte (ALS)
+        REG_ALS_UPTHR_HIGH, ///< ALS Upper Threshold (High Byte)
+        REG_ALS_UPTHR_LOW,  ///< ALS Upper Threshold (Low Byte)
+        REG_ALS_LOTHR_HIGH, ///< ALS Lower Threshold (High Byte)
+        REG_ALS_LOTHR_LOW,  ///< ALS Lower Threshold (Low Byte)
+        REG_PST,            ///< Threshold Persist Timer
+        REG_PRX_IND,        ///< PROX Threshold Indicator
+        REG_PRX_THR,        ///< PROX Threshold
+        REG_TRIM_GAIN_GREEN,     ///< Digital Gain Trim of Green Channel
+        REG_TRIM_GAIN_IR = 0x0F, ///< Digital Gain Trim of Infrared Channel
+        REG_PRX_DATA     = 0x16  ///< ADC Byte (PROX)
     } registers_t;
 
 
@@ -112,14 +112,14 @@
      * @details Enumerated MAX44000 operating modes
      */
     typedef enum {
-        MODE_SHUTDOWN, // Analog circuits are shut down, but the digital register retains values
-        MODE_ALS_GMIR, // Standard ALS mode, stores difference between green and IR channels
-        MODE_ALS_G,    // ALS green channel only
-        MODE_ALS_IR,   // Infrared channel only
-        MODE_ALS_PROX, // ALS and PROX are interleaved continuously
-        MODE_PROX,     // PROX only
-        MODE_RSVD_110, // Reserved, do not use
-        MODE_RSVD_111  // Reserved, do not use
+        MODE_SHUTDOWN, ///< Analog circuits are shut down, but the digital register retains values
+        MODE_ALS_GMIR, ///< Standard ALS mode, stores difference between green and IR channels
+        MODE_ALS_G,    ///< ALS green channel only
+        MODE_ALS_IR,   ///< Infrared channel only
+        MODE_ALS_PROX, ///< ALS and PROX are interleaved continuously
+        MODE_PROX,     ///< PROX only
+        MODE_RSVD_110, ///< Reserved, do not use
+        MODE_RSVD_111  ///< Reserved, do not use
     } modes_t;
 
 
@@ -128,10 +128,10 @@
      * @details MAX44000 Ambient Light Sensor ADC Conversion Time
      */
     typedef enum {
-        ALSTIM_1X,  // 100ms, 16,384 counts, 14 bit resolution
-        ALSTIM_4X,  // 25ms,    4096 counts, 12 bit resolution
-        ALSTIM_16X, // 6.25ms,  1024 counts, 10 bit resolution
-        ALSTIM_64X  // 1.5625ms, 256 counts,  8 bit resolution
+        ALSTIM_1X,  ///< 100ms, 16,384 counts, 14 bit resolution
+        ALSTIM_4X,  ///< 25ms,    4096 counts, 12 bit resolution
+        ALSTIM_16X, ///< 6.25ms,  1024 counts, 10 bit resolution
+        ALSTIM_64X  ///< 1.5625ms, 256 counts,  8 bit resolution
     } alstim_t;
 
 
@@ -139,10 +139,10 @@
     * alspga_t - MAX44000 Ambient Light Measurement Gain
     */
     typedef enum {
-        ALSPGA_1X,  // 0.03125 lux/lsb
-        ALSPGA_4X,  // 0.125 lux/lsb
-        ALSPGA_16X, // 0.5 lux/lsb
-        ALSPGA_128X // 4 lux/lsb
+        ALSPGA_1X,  ///< 0.03125 lux/lsb
+        ALSPGA_4X,  ///< 0.125 lux/lsb
+        ALSPGA_16X, ///< 0.5 lux/lsb
+        ALSPGA_128X ///< 4 lux/lsb
     } alspga_t;
 
 
@@ -151,22 +151,22 @@
      * @details MAX44000 LED Driver Current Settings
      */
     typedef enum {
-        DRV_0,   // LED driver disabled
-        DRV_10,  // 10mA
-        DRV_20,  // 20mA
-        DRV_30,  // 30mA
-        DRV_40,  // 40mA
-        DRV_50,  // 50mA
-        DRV_60,  // 60mA
-        DRV_70,  // 70mA
-        DUP_40,  // 40mA
-        DUP_50,  // 50mA
-        DUP_60,  // 60mA
-        DUP_70,  // 70mA
-        DRV_80,  // 80mA
-        DRV_90,  // 90mA
-        DRV_100, // 100mA
-        DRV_110  // 110mA
+        DRV_0,   ///< LED driver disabled
+        DRV_10,  ///< 10mA
+        DRV_20,  ///< 20mA
+        DRV_30,  ///< 30mA
+        DRV_40,  ///< 40mA
+        DRV_50,  ///< 50mA
+        DRV_60,  ///< 60mA
+        DRV_70,  ///< 70mA
+        DUP_40,  ///< 40mA
+        DUP_50,  ///< 50mA
+        DUP_60,  ///< 60mA
+        DUP_70,  ///< 70mA
+        DRV_80,  ///< 80mA
+        DRV_90,  ///< 90mA
+        DRV_100, ///< 100mA
+        DRV_110  ///< 110mA
     } drive_t;
 
 
@@ -175,10 +175,10 @@
      * @details MAX44000 ALS/PROX Threshold Persist Timer Settings
      */
     typedef enum {
-        PST_1, // 1 trigger before interrupt
-        PST_2, // 2 consecutive triggers before interrupt
-        PST_4, // 4 consecutive triggers before interrupt
-        PST_16 // 16 consecutive triggers before interrupt
+        PST_1, ///< 1 trigger before interrupt
+        PST_2, ///< 2 consecutive triggers before interrupt
+        PST_4, ///< 4 consecutive triggers before interrupt
+        PST_16 ///< 16 consecutive triggers before interrupt
     } persist_t;
 
 
@@ -211,7 +211,7 @@
      * @param   drive LED Driver Current
      * @returns 0 if no errors, -1 if error.
      */
-    int init(MAX44000::modes_t mode, MAX44000::alstim_t alstim, MAX44000::alspga_t alspga, MAX44000::drive_t drive); 
+    int init(MAX44000::modes_t mode, MAX44000::alstim_t alstim, MAX44000::alspga_t alspga, MAX44000::drive_t drive);
 
     /**
      * @brief   Write Register