| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- #ifndef ADC_H_
- #include "ti/driverlib/dl_i2c.h"
- #include "ti_msp_dl_config.h"
- #include "battery.h"
- #define ADC_TARGET_BASE_ADDRESS (0x68)
- #define ADC_VREF_MV (2048)
- #define DELAY (100000) //define timeout limit
- //defining the configurations
- //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;
- //ADC states
- typedef enum{
- ADC_STATE_CONFIGURE,
- ADC_STATE_WAIT,
- ADC_STATE_READ,
- ADC_STATE_DONE
- }ADC_MeasurementState;
- 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);
- bool ADC_CheckReadyBit(uint8_t slot_id, ADC_PARAMS params);
- int16_t ADC_ReadData(uint8_t slot_id, ADC_PARAMS params);
- void Battery_UpdateVoltage(ADC_PARAMS params);
- void Battery_UpdateCurrent(ADC_PARAMS params);
- void Battery_UpdateADCReading(uint8_t slot, uint8_t channel);
- #endif
|