uint16_t pac1720_getBatteryVoltage(void) { uint16_t val; if(!I2C_read16(PAC1720_ADDRESS, PAC1720_CH2_VSOURCE_HIGH, &val)) return 0; // PAC1720 not available (maybe Vcc too low) return (val >> 5) * 20000 / 0x400; }
int TMP006_readAmbientTemperature(void) { /* Specify slave address for TMP006 */ I2C_setslave(TMP006_SLAVE_ADDRESS); return I2C_read16(TMP006_P_TABT); }
int TMP006_readObjectVoltage(void) { /* Specify slave address for TMP006 */ I2C_setslave(TMP006_SLAVE_ADDRESS); return I2C_read16(TMP006_P_VOBJ); }
int TMP006_readDeviceId(void) { /* Specify slave address for TMP006 */ I2C_setslave(TMP006_SLAVE_ADDRESS); return I2C_read16(TMP006_P_DEVICE_ID); }
int16_t pac1720_getPowerCharge(void) { int32_t fsp = FSV * FSC; uint16_t val; if(I2C_read16(PAC1720_ADDRESS, PAC1720_CH1_PWR_RAT_HIGH, &val)) return val * fsp / 65536; else return 0; // PAC1720 not available (maybe Vcc too low) }
uint16_t gps_bytes_avail(void) { uint16_t val; if(I2C_read16(UBLOX_MAX_ADDRESS, 0xFD, &val)) return val; else return 0x00; }