diff --git a/examples/ccs811/ccs811_one_sensor/ccs811_one_sensor.c b/examples/ccs811/ccs811_one_sensor/ccs811_one_sensor.c index a53b8a6..df71104 100644 --- a/examples/ccs811/ccs811_one_sensor/ccs811_one_sensor.c +++ b/examples/ccs811/ccs811_one_sensor/ccs811_one_sensor.c @@ -174,5 +174,7 @@ void user_init(void) // start periodic measurement with one measurement per second ccs811_set_mode (sensor, ccs811_mode_1s); } + else + printf("Could not initialize the CCS811 sensor\n"); } diff --git a/extras/ccs811/README.md b/extras/ccs811/README.md index fa660ae..3d39ae5 100644 --- a/extras/ccs811/README.md +++ b/extras/ccs811/README.md @@ -305,12 +305,14 @@ ccs811_set_mode (sensor, ccs811_mode_1s); ... ``` -Last, the user task that uses the sensor has to be created. +Finally, a user task that uses the sensor has to be created. ``` xTaskCreate(user_task, "user_task", 256, NULL, 2, 0); ``` +**Please note:** To avoid concurrency situations when driver functions are used to access the sensor, for example to read data, the user task must not be created until the sensor configuration is completed. + The user task can use different approaches to fetch new data. Either new data are fetched periodically or the interrupt signal *nINT* is used when new data are available or eCO2 value exceeds defined thresholds. If new data are fetched **periodically** the implementation of the user task is quite simply and could look like following. @@ -564,6 +566,8 @@ void user_init(void) // start periodic measurement with one measurement per second ccs811_set_mode (sensor, ccs811_mode_1s); } + else + printf("Could not initialize CCS811 sensor\n"); } ``` diff --git a/extras/ccs811/ccs811.c b/extras/ccs811/ccs811.c index 2087b2a..5bf60d8 100644 --- a/extras/ccs811/ccs811.c +++ b/extras/ccs811/ccs811.c @@ -494,7 +494,8 @@ static bool ccs811_reg_read(ccs811_sensor_t* dev, uint8_t reg, uint8_t *data, ui } # ifdef CCS811_DEBUG_LEVEL_2 - printf("CCS811 %s: Read following bytes: ", __FUNCTION__); + printf("CCS811 %s: bus %d, addr %02x - Read following bytes: ", + __FUNCTION__, dev->bus, dev->addr); printf("%0x: ", reg); for (int i=0; i < len; i++) printf("%0x ", data[i]); @@ -514,7 +515,8 @@ static bool ccs811_reg_write(ccs811_sensor_t* dev, uint8_t reg, uint8_t *data, u # ifdef CCS811_DEBUG_LEVEL_2 if (data && len) { - printf("CCS811 %s: Write following bytes starting at reg addr %02x: ", __FUNCTION__, reg); + printf("CCS811 %s: bus %d, addr %02x - Write following bytes: ", + __FUNCTION__, dev->bus, dev->addr); for (int i=0; i < len; i++) printf("%02x ", data[i]); printf("\n");