Example for onboard MAX17055 Fuel Gauge driver
Dependencies: MAX17055
main.cpp@0:1c8d473dbca7, 2018-05-01 (annotated)
- Committer:
- jessexm
- Date:
- Tue May 01 17:10:24 2018 +0000
- Revision:
- 0:1c8d473dbca7
Initial commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jessexm | 0:1c8d473dbca7 | 1 | #include "mbed.h" |
jessexm | 0:1c8d473dbca7 | 2 | #include "MAX17055.h" |
jessexm | 0:1c8d473dbca7 | 3 | |
jessexm | 0:1c8d473dbca7 | 4 | // I2C Master 2 |
jessexm | 0:1c8d473dbca7 | 5 | I2C i2c(I2C2_SDA, I2C2_SCL); |
jessexm | 0:1c8d473dbca7 | 6 | |
jessexm | 0:1c8d473dbca7 | 7 | MAX17055 max17055(i2c); |
jessexm | 0:1c8d473dbca7 | 8 | |
jessexm | 0:1c8d473dbca7 | 9 | int main() |
jessexm | 0:1c8d473dbca7 | 10 | { |
jessexm | 0:1c8d473dbca7 | 11 | int status; |
jessexm | 0:1c8d473dbca7 | 12 | int value, max, min; |
jessexm | 0:1c8d473dbca7 | 13 | float f_value, f_max, f_min; |
jessexm | 0:1c8d473dbca7 | 14 | |
jessexm | 0:1c8d473dbca7 | 15 | // Set sense resistor value |
jessexm | 0:1c8d473dbca7 | 16 | max17055.init(0.05f); |
jessexm | 0:1c8d473dbca7 | 17 | |
jessexm | 0:1c8d473dbca7 | 18 | // Print status |
jessexm | 0:1c8d473dbca7 | 19 | max17055.status(&status); |
jessexm | 0:1c8d473dbca7 | 20 | printf("MAX17055 status: %04X\r\n", (uint16_t)status); |
jessexm | 0:1c8d473dbca7 | 21 | |
jessexm | 0:1c8d473dbca7 | 22 | for (;;) { |
jessexm | 0:1c8d473dbca7 | 23 | // Print raw hex register contents |
jessexm | 0:1c8d473dbca7 | 24 | max17055.v_cell(&value); |
jessexm | 0:1c8d473dbca7 | 25 | printf("0x%04X ", (uint16_t)value); |
jessexm | 0:1c8d473dbca7 | 26 | max17055.avg_v_cell(&value); |
jessexm | 0:1c8d473dbca7 | 27 | printf("0x%04X ", (uint16_t)value); |
jessexm | 0:1c8d473dbca7 | 28 | max17055.max_min_volt(&max, &min); |
jessexm | 0:1c8d473dbca7 | 29 | printf("0x%02X 0x%02X\r\n", (uint8_t)max, (uint8_t)min); |
jessexm | 0:1c8d473dbca7 | 30 | |
jessexm | 0:1c8d473dbca7 | 31 | max17055.current(&value); |
jessexm | 0:1c8d473dbca7 | 32 | printf("0x%04X ", (uint16_t)value); |
jessexm | 0:1c8d473dbca7 | 33 | max17055.avg_current(&value); |
jessexm | 0:1c8d473dbca7 | 34 | printf("0x%04X ", (uint16_t)value); |
jessexm | 0:1c8d473dbca7 | 35 | max17055.max_min_curr(&max, &min); |
jessexm | 0:1c8d473dbca7 | 36 | printf("0x%02X 0x%02X\r\n", (uint8_t)max, (uint8_t)min); |
jessexm | 0:1c8d473dbca7 | 37 | |
jessexm | 0:1c8d473dbca7 | 38 | max17055.temp(&value); |
jessexm | 0:1c8d473dbca7 | 39 | printf("0x%04X ", (uint16_t)value); |
jessexm | 0:1c8d473dbca7 | 40 | max17055.avg_ta(&value); |
jessexm | 0:1c8d473dbca7 | 41 | printf("0x%04X ", (uint16_t)value); |
jessexm | 0:1c8d473dbca7 | 42 | max17055.max_min_temp(&max, &min); |
jessexm | 0:1c8d473dbca7 | 43 | printf("0x%02X 0x%02X\r\n", (uint8_t)max, (uint8_t)min); |
jessexm | 0:1c8d473dbca7 | 44 | printf("\r\n"); |
jessexm | 0:1c8d473dbca7 | 45 | |
jessexm | 0:1c8d473dbca7 | 46 | // Print formatted voltage, current and temperature values |
jessexm | 0:1c8d473dbca7 | 47 | max17055.v_cell(&f_value); |
jessexm | 0:1c8d473dbca7 | 48 | printf("%6.3fV ", f_value); |
jessexm | 0:1c8d473dbca7 | 49 | max17055.avg_v_cell(&f_value); |
jessexm | 0:1c8d473dbca7 | 50 | printf("%6.3fVavg ", f_value); |
jessexm | 0:1c8d473dbca7 | 51 | max17055.max_min_volt(&f_max, &f_min); |
jessexm | 0:1c8d473dbca7 | 52 | printf("%6.3fVmax %6.3fVmin\r\n", f_max, f_min); |
jessexm | 0:1c8d473dbca7 | 53 | |
jessexm | 0:1c8d473dbca7 | 54 | max17055.current(&f_value); |
jessexm | 0:1c8d473dbca7 | 55 | printf("%6.3fI ", f_value); |
jessexm | 0:1c8d473dbca7 | 56 | max17055.avg_current(&f_value); |
jessexm | 0:1c8d473dbca7 | 57 | printf("%6.3fIavg ", f_value); |
jessexm | 0:1c8d473dbca7 | 58 | max17055.max_min_curr(&f_max, &f_min); |
jessexm | 0:1c8d473dbca7 | 59 | printf("%6.3fImax %6.3fImin\r\n", f_max, f_min); |
jessexm | 0:1c8d473dbca7 | 60 | |
jessexm | 0:1c8d473dbca7 | 61 | max17055.temp(&f_value); |
jessexm | 0:1c8d473dbca7 | 62 | printf("%6.3fC ", f_value); |
jessexm | 0:1c8d473dbca7 | 63 | max17055.avg_ta(&f_value); |
jessexm | 0:1c8d473dbca7 | 64 | printf("%6.3fCavg ", f_value); |
jessexm | 0:1c8d473dbca7 | 65 | max17055.max_min_temp(&f_max, &f_min); |
jessexm | 0:1c8d473dbca7 | 66 | printf("%6.3fCmax %6.3fCmin\r\n", f_max, f_min); |
jessexm | 0:1c8d473dbca7 | 67 | printf("\r\n"); |
jessexm | 0:1c8d473dbca7 | 68 | |
jessexm | 0:1c8d473dbca7 | 69 | Thread::wait(3000); |
jessexm | 0:1c8d473dbca7 | 70 | } |
jessexm | 0:1c8d473dbca7 | 71 | } |