i2c: all function calls are consistent. fixed some MISRA errors.
This commit is contained in:
parent
657ee06eed
commit
958b2e8e00
7 changed files with 71 additions and 68 deletions
22
ens.c
22
ens.c
|
|
@ -6,34 +6,34 @@
|
|||
static const uint8_t ENS_ACTIVATE[2] = {0x10, 0x02};
|
||||
static const uint8_t ENS_IDLE[2] = {0x10, 0x01};
|
||||
|
||||
void activateENS(void) {
|
||||
i2c_write_blocking(i2c_default, ENS_ADDR, ENS_ACTIVATE, 2, false);
|
||||
void activateENS(i2c_inst_t *i2c) {
|
||||
i2c_write_blocking(i2c, ENS_ADDR, ENS_ACTIVATE, 2, false);
|
||||
return;
|
||||
}
|
||||
void deactivateENS(void) {
|
||||
i2c_write_blocking(i2c_default, ENS_ADDR, ENS_IDLE, 2, false);
|
||||
void deactivateENS(i2c_inst_t *i2c) {
|
||||
i2c_write_blocking(i2c, ENS_ADDR, ENS_IDLE, 2, false);
|
||||
return;
|
||||
}
|
||||
uint8_t getENSData(double *t, double *h, uint8_t *AQI, uint16_t *TVOC,
|
||||
uint8_t getENSData(i2c_inst_t *i2c, double *t, double *h, uint8_t *AQI, uint16_t *TVOC,
|
||||
uint16_t *ECO2, uint16_t *ETOH) {
|
||||
uint16_t K = (uint16_t)((*t + 273.15) * 64.0); // convert to ENS format
|
||||
uint16_t RH = (uint16_t)*h * 512;
|
||||
uint16_t RH = (uint16_t)(*h * 512.0);
|
||||
uint8_t inputData[5] = {0x13, (uint8_t)(K & 0x00FF), (uint8_t)(K >> 8),
|
||||
(uint8_t)(RH & 0x00FF), (uint8_t)(RH >> 8)};
|
||||
uint8_t result[7];
|
||||
uint8_t dataReg = ENS_AQI;
|
||||
uint8_t valid;
|
||||
i2c_write_blocking(i2c_default, ENS_ADDR, inputData, 5, false);
|
||||
i2c_write_blocking(i2c, ENS_ADDR, inputData, 5, false);
|
||||
sleep_ms(100);
|
||||
i2c_write_blocking(i2c_default, ENS_ADDR, &dataReg, 1, true);
|
||||
i2c_read_blocking(i2c_default, ENS_ADDR, result, 7, false);
|
||||
i2c_write_blocking(i2c, ENS_ADDR, &dataReg, 1, true);
|
||||
i2c_read_blocking(i2c, ENS_ADDR, result, 7, false);
|
||||
*AQI = result[0];
|
||||
*TVOC = (result[2] << 8) | result[1];
|
||||
*ECO2 = (result[4] << 8) | result[3];
|
||||
*ETOH = (result[6] << 8) | result[5];
|
||||
dataReg = 0x20; // status register
|
||||
i2c_write_blocking(i2c_default, ENS_ADDR, &dataReg, 1, true);
|
||||
i2c_read_blocking(i2c_default, ENS_ADDR, result, 1, false);
|
||||
i2c_write_blocking(i2c, ENS_ADDR, &dataReg, 1, true);
|
||||
i2c_read_blocking(i2c, ENS_ADDR, result, 1, false);
|
||||
valid = (result[0] & ENS_STATUS_MASK) == 0
|
||||
? 1
|
||||
: 0; // check if we are in warm-up or normal mode
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue