Example for onboard MAX17055 Fuel Gauge driver
Dependencies: MAX17055
main.cpp
00001 #include "mbed.h" 00002 #include "MAX17055.h" 00003 00004 // I2C Master 2 00005 I2C i2c(I2C2_SDA, I2C2_SCL); 00006 00007 MAX17055 max17055(i2c); 00008 00009 int main() 00010 { 00011 int status; 00012 int value, max, min; 00013 float f_value, f_max, f_min; 00014 00015 // Set sense resistor value 00016 max17055.init(0.05f); 00017 00018 // Print status 00019 max17055.status(&status); 00020 printf("MAX17055 status: %04X\r\n", (uint16_t)status); 00021 00022 for (;;) { 00023 // Print raw hex register contents 00024 max17055.v_cell(&value); 00025 printf("0x%04X ", (uint16_t)value); 00026 max17055.avg_v_cell(&value); 00027 printf("0x%04X ", (uint16_t)value); 00028 max17055.max_min_volt(&max, &min); 00029 printf("0x%02X 0x%02X\r\n", (uint8_t)max, (uint8_t)min); 00030 00031 max17055.current(&value); 00032 printf("0x%04X ", (uint16_t)value); 00033 max17055.avg_current(&value); 00034 printf("0x%04X ", (uint16_t)value); 00035 max17055.max_min_curr(&max, &min); 00036 printf("0x%02X 0x%02X\r\n", (uint8_t)max, (uint8_t)min); 00037 00038 max17055.temp(&value); 00039 printf("0x%04X ", (uint16_t)value); 00040 max17055.avg_ta(&value); 00041 printf("0x%04X ", (uint16_t)value); 00042 max17055.max_min_temp(&max, &min); 00043 printf("0x%02X 0x%02X\r\n", (uint8_t)max, (uint8_t)min); 00044 printf("\r\n"); 00045 00046 // Print formatted voltage, current and temperature values 00047 max17055.v_cell(&f_value); 00048 printf("%6.3fV ", f_value); 00049 max17055.avg_v_cell(&f_value); 00050 printf("%6.3fVavg ", f_value); 00051 max17055.max_min_volt(&f_max, &f_min); 00052 printf("%6.3fVmax %6.3fVmin\r\n", f_max, f_min); 00053 00054 max17055.current(&f_value); 00055 printf("%6.3fI ", f_value); 00056 max17055.avg_current(&f_value); 00057 printf("%6.3fIavg ", f_value); 00058 max17055.max_min_curr(&f_max, &f_min); 00059 printf("%6.3fImax %6.3fImin\r\n", f_max, f_min); 00060 00061 max17055.temp(&f_value); 00062 printf("%6.3fC ", f_value); 00063 max17055.avg_ta(&f_value); 00064 printf("%6.3fCavg ", f_value); 00065 max17055.max_min_temp(&f_max, &f_min); 00066 printf("%6.3fCmax %6.3fCmin\r\n", f_max, f_min); 00067 printf("\r\n"); 00068 00069 Thread::wait(3000); 00070 } 00071 }
Generated on Thu Jul 14 2022 04:31:18 by 1.7.2