Index: firmware/App/Drivers/BatteryDriver.c =================================================================== diff -u -ree67a27bd69956eb8cfd7c5986538b441b8b7aa7 -r2e75c0c69869132ff4adb46a0509aab7a04d60a3 --- firmware/App/Drivers/BatteryDriver.c (.../BatteryDriver.c) (revision ee67a27bd69956eb8cfd7c5986538b441b8b7aa7) +++ firmware/App/Drivers/BatteryDriver.c (.../BatteryDriver.c) (revision 2e75c0c69869132ff4adb46a0509aab7a04d60a3) @@ -31,17 +31,21 @@ #define BATTERY_COMM_TIME_OUT_MS 2 ///< Battery communication time out in ms. #define BATTERY_CHARGER_SLAVE_ADDRESS 0x6B ///< Battery charger controller device address. #define BATTERY_PACK_SLAVE_ADDRESS 0x0B ///< Battery pack device address. +#define BATTERY_I2C_STATUS_REGISTER_MIN 0 //ToDo +#define BATTERY_I2C_STATUS_REGISTER_MAX 2 //ToDo // ********** private data ********** static OVERRIDE_U32_T batteryI2CStatusRegister; ///< Battery I2C Interrupt Status register + /// Lookup table mapping device enum to I2C slave addresses. -const U32 device_addr[NUM_OF_BATTERY_DEVICES] = { +const U32 device_addr[MAXIMUM_DEVICE_ADDRESSES] = { 0x6B, ///< BATTERY_CHARGER_ADDRESS 0x0B, ///< BATTERY_PACK_ADDRESS }; + /// Lookup table mapping register enum to register addresses. -const U32 reg_addr[END_OF_LIST] = { +const U32 reg_addr[MAXIMUM_BATTERY_REGISTERS] = { 0x00, ///< BEGINNING_OF_LIST 0x0f, ///< BATTERY_PACK_REMAINING_CAPACITY 0x16, ///< BATTERY_PACK_BATTERY_STATUS @@ -76,7 +80,10 @@ *************************************************************************/ void initsetupI2CDriver(void) { - memset(&batteryI2CStatusRegister, 0, sizeof(OVERRIDE_U32_T)); + batteryI2CStatusRegister.data = 0; + batteryI2CStatusRegister.ovData = 0; + batteryI2CStatusRegister.ovInitData = 0; + batteryI2CStatusRegister.override = OVERRIDE_RESET; setupI2CDriver(); } @@ -184,20 +191,20 @@ * and get data based on given command. * @details \b Inputs: none * @details \b Outputs: get data from battery device - * @param devicesel battery device to communicate with. - * @param registersel register to read from batteru device. + * @param device battery device to communicate with. + * @param registers register to read from batteru device. * @param dataPtr pointer to store the register data * @return TRUE if data received successfully, otherwise FALSE *************************************************************************/ -BOOL getBatteryData( BATTERY_DEVICE_ADDRESS_ENUM_T devicesel, BATTERY_MANAGEMENT_ENUM_T registersel, U32 * dataPtr ) +BOOL getBatteryData( BATTERY_DEVICE_ADDRESS_ENUM_T deviceSel, BATTERY_MANAGEMENT_ENUM_T registerSel, U32 * dataPtr ) { BOOL result = FALSE; - if ( TRUE == startCommTx( device_addr[devicesel] ) ) + if ( TRUE == startCommTx( device_addr[deviceSel] ) ) { U16 data = (U16)( (*dataPtr) & MASK_OFF_MSW ); - if ( TRUE == getData( reg_addr[registersel], &data ) ) + if ( TRUE == getData( reg_addr[registerSel], &data ) ) { *dataPtr = data; result = TRUE; @@ -364,7 +371,7 @@ *************************************************************************/ BOOL testBatteryI2CStatusOverride( MESSAGE_T *message ) { - BOOL result = f32Override( message, (OVERRIDE_F32_T*)&batteryI2CStatusRegister ); + BOOL result = u32Override( message, &batteryI2CStatusRegister, BATTERY_I2C_STATUS_REGISTER_MIN, BATTERY_I2C_STATUS_REGISTER_MAX ); return result; }