esp-idf-lib/components/apds9930/apds9930.c

changeset 21
df8564c9701e
parent 17
1599e696d947
child 37
50dbb626fbab
--- a/esp-idf-lib/components/apds9930/apds9930.c	Thu Apr 06 22:01:08 2023 +0200
+++ b/esp-idf-lib/components/apds9930/apds9930.c	Fri Apr 07 14:31:17 2023 +0200
@@ -118,17 +118,6 @@
     return i2c_dev_write_reg(&dev->i2c_dev, reg, &data, 1);
 }
 
-static esp_err_t read_reg_8(apds9930_t *dev, uint8_t reg, uint8_t *data)
-{
-    I2C_DEV_TAKE_MUTEX(&dev->i2c_dev);
-    I2C_DEV_CHECK(&dev->i2c_dev, read_reg_8_nolock(dev, reg, data));
-    I2C_DEV_GIVE_MUTEX(&dev->i2c_dev);
-
-    return ESP_OK;
-}
-
-
-
 
 inline static esp_err_t write_register8(i2c_dev_t *dev, uint8_t addr, uint8_t value)
 {
@@ -235,13 +224,9 @@
 {
     uint8_t reg_val;
 
-//    CHECK_ARG(dev);
+    CHECK_ARG(dev);
     /* Read current ENABLE register */
-    I2C_DEV_TAKE_MUTEX(&dev->i2c_dev);
-    I2C_DEV_CHECK(&dev->i2c_dev, read_reg_8_nolock(dev, APDS9930_ENABLE | APDS9930_AUTO_INCREMENT, &reg_val));
-//    i2c_dev_read_reg(&dev->i2c_dev, (uint8_t)APDS9930_ENABLE, &reg_val, 1);
-    I2C_DEV_GIVE_MUTEX(&dev->i2c_dev);
-    ESP_LOGI(TAG, "apds9930_setMode(%d, %d) get=%02x", mode, enable, reg_val);
+    reg_val = apds9930_getMode(dev);
 
     /* Change bit(s) in ENABLE register */
     enable = enable & 0x01;
@@ -259,15 +244,11 @@
         }
     }
 
-    ESP_LOGI(TAG, "apds9930_setMode write %02x", reg_val);
     /* Write value back to ENABLE register */
     I2C_DEV_TAKE_MUTEX(&dev->i2c_dev);
     I2C_DEV_CHECK(&dev->i2c_dev, write_reg_8_nolock(dev, APDS9930_ENABLE | APDS9930_AUTO_INCREMENT, reg_val));
-//    CHECK_LOGE(dev, write_register8(&dev->i2c_dev, APDS9930_ENABLE, reg_val), "Enable register");
-//    CHECK_LOGE(dev, i2c_dev_write_reg(&dev->i2c_dev, (uint8_t)APDS9930_ENABLE, &reg_val, 1), "Enable register");
     I2C_DEV_GIVE_MUTEX(&dev->i2c_dev);
 
-//vTaskDelay(12 / portTICK_PERIOD_MS);
     return ESP_OK;
 }
 
@@ -410,7 +391,6 @@
 
 esp_err_t apds9930_readCh0Light(apds9930_t *dev, uint16_t *val)
 {
-    uint8_t val_byte;
     uint16_t val_word;
     *val = 0;
 
@@ -418,17 +398,9 @@
 
     I2C_DEV_TAKE_MUTEX(&dev->i2c_dev);
     /* Read value from channel 0 */
-    CHECK_LOGE(dev, i2c_dev_read_reg(&dev->i2c_dev, (uint8_t)APDS9930_Ch0DATAL | APDS9930_AUTO_INCREMENT, &val_byte, 1), "Read ch0 low");
-    ESP_LOGI(TAG, "l %02x", val_byte);
-    *val = val_byte;
-    CHECK_LOGE(dev, i2c_dev_read_reg(&dev->i2c_dev, (uint8_t)APDS9930_Ch0DATAH | APDS9930_AUTO_INCREMENT, &val_byte, 1), "Read ch0 high");
-    ESP_LOGI(TAG, "h %02x", val_byte);
-    *val += ((uint16_t)val_byte << 8);
+    CHECK_LOGE(dev, i2c_dev_read_reg(&dev->i2c_dev, (uint8_t)APDS9930_Ch0DATAL | APDS9930_AUTO_INCREMENT, &val_word, 2), "Read ch0");
     I2C_DEV_GIVE_MUTEX(&dev->i2c_dev);
-    ESP_LOGI(TAG, "val %04x", *val);
-
-    CHECK_LOGE(dev, i2c_dev_read_reg(&dev->i2c_dev, (uint8_t)APDS9930_Ch0DATAL | APDS9930_AUTO_INCREMENT, &val_word, 2), "Read ch0 16");
-    ESP_LOGI(TAG, "16 %04x", val_word);
+    *val = val_word;
 
     return ESP_OK;
 }
@@ -436,16 +408,14 @@
 
 esp_err_t apds9930_readCh1Light(apds9930_t *dev, uint16_t *val)
 {
-    uint8_t val_byte;
+    uint16_t val_word;
     *val = 0;
 
     I2C_DEV_TAKE_MUTEX(&dev->i2c_dev);
     /* Read value from channel 1 */
-    CHECK_LOGE(dev, i2c_dev_read_reg(&dev->i2c_dev, APDS9930_Ch1DATAL | APDS9930_AUTO_INCREMENT, &val_byte, 1), "Read ch1 low");
-    *val = val_byte;
-    CHECK_LOGE(dev, i2c_dev_read_reg(&dev->i2c_dev, APDS9930_Ch1DATAH | APDS9930_AUTO_INCREMENT, &val_byte, 1), "Read ch1 high");
-    *val += ((uint16_t)val_byte << 8);
+    CHECK_LOGE(dev, i2c_dev_read_reg(&dev->i2c_dev, (uint8_t)APDS9930_Ch1DATAL | APDS9930_AUTO_INCREMENT, &val_word, 2), "Read ch1");
     I2C_DEV_GIVE_MUTEX(&dev->i2c_dev);
+    *val = val_word;
 
     return ESP_OK;
 }

mercurial