adc.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. #ifndef ADC_H_
  2. #include "ti/driverlib/dl_i2c.h"
  3. #include "ti_msp_dl_config.h"
  4. #define ADC_TARGET_BASE_ADDRESS (0x68)
  5. #define ADC_VREF_MV (2048)
  6. #define DELAY (100000) //define timeout limit
  7. //Maximum packet sizes
  8. #define I2C_TX_MAX_PACKET_SIZE (16)
  9. #define I2C_RX_MAX_PACKET_SIZE (16)
  10. //Flag for READ and WRITE
  11. extern volatile bool gRxComplete;
  12. extern volatile bool gTxComplete;
  13. extern uint8_t gTxPacket[I2C_TX_MAX_PACKET_SIZE];
  14. extern uint8_t gRxPacket[I2C_RX_MAX_PACKET_SIZE];
  15. /*Counters for Tx and Rx length and bytes sent*/
  16. extern uint32_t gTxADClen, gTxADCcount;
  17. extern uint32_t gRxADClen, gRxADCcount;
  18. typedef struct{
  19. uint8_t channel;
  20. uint8_t resolution;
  21. bool continuous;
  22. uint8_t gain;
  23. } ADC_PARAMS;
  24. uint8_t ADC_ConstructConfigBytes(ADC_PARAMS params);
  25. void ADC_SetConfigurationBytes(ADC_PARAMS params);
  26. bool ADC_CheckReadyBit(uint8_t slot_id, ADC_PARAMS params);
  27. int16_t ADC_ReadData(uint8_t slot_id, ADC_PARAMS params);
  28. void Battery_UpdateVoltage(ADC_PARAMS params);
  29. void Battery_UpdateCurrent(ADC_PARAMS params);
  30. void Battery_UpdateADCReading();
  31. #endif