#ifndef ADC_H_ #include "ti/driverlib/dl_i2c.h" #include "ti_msp_dl_config.h" #define ADC_TARGET_BASE_ADDRESS (0x68) #define ADC_VREF_MV (2048) //Maximum packet sizes #define I2C_TX_MAX_PACKET_SIZE (16) #define I2C_RX_MAX_PACKET_SIZE (16) //Flag for READ and WRITE extern volatile bool gRxComplete; extern volatile bool gTxComplete; extern uint8_t gTxPacket[I2C_TX_MAX_PACKET_SIZE]; extern uint8_t gRxPacket[I2C_RX_MAX_PACKET_SIZE]; /*Counters for Tx and Rx length and bytes sent*/ extern uint32_t gTxADClen, gTxADCcount; extern uint32_t gRxADClen, gRxADCcount; typedef struct{ uint8_t channel; uint8_t resolution; bool continuous; uint8_t gain; } ADC_PARAMS; uint8_t ADC_ConstructConfigBytes(ADC_PARAMS params); void ADC_SetConfigurationBytes(ADC_PARAMS params); int16_t ADC_ReadData(uint8_t slot_id, ADC_PARAMS params); uint16_t ADC_ConvertToVoltage(int16_t adc_value, ADC_PARAMS params); void Battery_UpdateCurrentVoltage(ADC_PARAMS params); #endif