Example for onboard MAX17055 Fuel Gauge driver
Dependencies: MAX17055
main.cpp
- Committer:
- jessexm
- Date:
- 2018-05-01
- Revision:
- 0:1c8d473dbca7
File content as of revision 0:1c8d473dbca7:
#include "mbed.h" #include "MAX17055.h" // I2C Master 2 I2C i2c(I2C2_SDA, I2C2_SCL); MAX17055 max17055(i2c); int main() { int status; int value, max, min; float f_value, f_max, f_min; // Set sense resistor value max17055.init(0.05f); // Print status max17055.status(&status); printf("MAX17055 status: %04X\r\n", (uint16_t)status); for (;;) { // Print raw hex register contents max17055.v_cell(&value); printf("0x%04X ", (uint16_t)value); max17055.avg_v_cell(&value); printf("0x%04X ", (uint16_t)value); max17055.max_min_volt(&max, &min); printf("0x%02X 0x%02X\r\n", (uint8_t)max, (uint8_t)min); max17055.current(&value); printf("0x%04X ", (uint16_t)value); max17055.avg_current(&value); printf("0x%04X ", (uint16_t)value); max17055.max_min_curr(&max, &min); printf("0x%02X 0x%02X\r\n", (uint8_t)max, (uint8_t)min); max17055.temp(&value); printf("0x%04X ", (uint16_t)value); max17055.avg_ta(&value); printf("0x%04X ", (uint16_t)value); max17055.max_min_temp(&max, &min); printf("0x%02X 0x%02X\r\n", (uint8_t)max, (uint8_t)min); printf("\r\n"); // Print formatted voltage, current and temperature values max17055.v_cell(&f_value); printf("%6.3fV ", f_value); max17055.avg_v_cell(&f_value); printf("%6.3fVavg ", f_value); max17055.max_min_volt(&f_max, &f_min); printf("%6.3fVmax %6.3fVmin\r\n", f_max, f_min); max17055.current(&f_value); printf("%6.3fI ", f_value); max17055.avg_current(&f_value); printf("%6.3fIavg ", f_value); max17055.max_min_curr(&f_max, &f_min); printf("%6.3fImax %6.3fImin\r\n", f_max, f_min); max17055.temp(&f_value); printf("%6.3fC ", f_value); max17055.avg_ta(&f_value); printf("%6.3fCavg ", f_value); max17055.max_min_temp(&f_max, &f_min); printf("%6.3fCmax %6.3fCmin\r\n", f_max, f_min); printf("\r\n"); Thread::wait(3000); } }